Changeset e2ec980f in mainline for arch/ia64/include
- Timestamp:
- 2005-11-09T01:21:46Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b183865e
- Parents:
- 0b5ac364
- Location:
- arch/ia64/include
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia64/include/asm.h
r0b5ac364 re2ec980f 49 49 } 50 50 51 /** Read IVA (Interruption Vector Address). 52 * 53 * @return Return location of interruption vector table. 54 */ 55 static inline __u64 iva_read(void) 56 { 57 __u64 v; 58 59 __asm__ volatile ("mov %0 = cr.iva\n" : "=r" (v)); 60 61 return v; 62 } 63 64 /** Write IVA (Interruption Vector Address) register. 65 * 66 * @param New location of interruption vector table. 67 */ 68 static inline void iva_write(__u64 v) 69 { 70 __asm__ volatile ("mov cr.iva = %0\n" : : "r" (v)); 71 } 72 73 51 74 /** Read IVR (External Interrupt Vector Register). 52 75 * … … 219 242 } 220 243 221 #define set_shadow_register(reg,val) {__u64 v = val; __asm__ volatile("mov r15 = %0;;\n""bsw.0;;\n""mov " #reg " = r15;;\n""bsw.1;;\n" : : "r" (v) : "r15" ); }222 #define get_shadow_register(reg,val) {__u64 v ; __asm__ volatile("bsw.0;;\n" "mov r15 = r" #reg ";;\n" "bsw.1;;\n" "mov %0 = r15;;\n" : "=r" (v) : : "r15" ); val=v; }223 224 #define get_control_register(reg,val) {__u64 v ; __asm__ volatile("mov r15 = cr" #reg ";;\n" "mov %0 = r15;;\n" : "=r" (v) : : "r15" ); val=v; }225 #define get_aplication_register(reg,val) {__u64 v ; __asm__ volatile("mov r15 = ar" #reg ";;\n" "mov %0 = r15;;\n" : "=r" (v) : : "r15" ); val=v; }226 #define get_psr(val) {__u64 v ; __asm__ volatile("mov r15 = psr;;\n" "mov %0 = r15;;\n" : "=r" (v) : : "r15" ); val=v; }227 228 244 extern void cpu_halt(void); 229 245 extern void cpu_sleep(void); -
arch/ia64/include/interrupt.h
r0b5ac364 re2ec980f 30 30 #define __ia64_INTERRUPT_H__ 31 31 32 #include <arch/types.h> 33 34 /** External interrupt vectors. */ 32 35 #define INTERRUPT_TIMER 0 33 36 #define INTERRUPT_SPURIOUS 15 … … 35 38 #define EOI 0 /**< The actual value doesn't matter. */ 36 39 37 extern void external_interrupt(void); 40 struct exception_regdump { 41 __address ar_bsp; 42 __address ar_bspstore; 43 __u64 ar_rnat; 44 __u64 ar_ifs; 45 __u64 ar_pfs; 46 __u64 ar_rsc; 47 __address cr_ifa; 48 __u64 cr_isr; 49 __address cr_iipa; 50 __u64 cr_ips; 51 __address cr_iip; 52 __u64 pr; 53 } __attribute__ ((packed)); 54 55 extern void *ivt; 56 57 extern void general_exception(__u64 vector, struct exception_regdump *pstate); 58 extern void break_instruction(__u64 vector, struct exception_regdump *pstate); 59 extern void universal_handler(__u64 vector, struct exception_regdump *pstate); 60 extern void external_interrupt(__u64 vector, struct exception_regdump *pstate); 38 61 39 62 #endif -
arch/ia64/include/register.h
r0b5ac364 re2ec980f 34 34 #define CR_IVR_MASK 0xf 35 35 #define PSR_I_MASK 0x4000 36 37 /** Application registers. */ 38 #define AR_KR0 0 39 #define AR_KR1 1 40 #define AR_KR2 2 41 #define AR_KR3 3 42 #define AR_KR4 4 43 #define AR_KR5 5 44 #define AR_KR6 6 45 #define AR_KR7 7 46 /* AR 8-15 reserved */ 47 #define AR_RSC 16 48 #define AR_BSP 17 49 #define AR_BSPSTORE 18 50 #define AR_RNAT 19 51 /* AR 20 reserved */ 52 #define AR_FCR 21 53 /* AR 22-23 reserved */ 54 #define AR_EFLAG 24 55 #define AR_CSD 25 56 #define AR_SSD 26 57 #define AR_CFLG 27 58 #define AR_FSR 28 59 #define AR_FIR 29 60 #define AR_FDR 30 61 /* AR 31 reserved */ 62 #define AR_CCV 32 63 /* AR 33-35 reserved */ 64 #define AR_UNAT 36 65 /* AR 37-39 reserved */ 66 #define AR_FPSR 40 67 /* AR 41-43 reserved */ 68 #define AR_ITC 44 69 /* AR 45-47 reserved */ 70 /* AR 48-63 ignored */ 71 #define AR_PFS 64 72 #define AR_LC 65 73 #define AR_EC 66 74 /* AR 67-111 reserved */ 75 /* AR 112-127 ignored */ 76 77 /** Control registers. */ 78 #define CR_DCR 0 79 #define CR_ITM 1 80 #define CR_IVA 2 81 /* CR3-CR7 reserved */ 82 #define CR_PTA 8 83 /* CR9-CR15 reserved */ 84 #define CR_IPSR 16 85 #define CR_ISR 17 86 /* CR18 reserved */ 87 #define CR_IIP 19 88 #define CR_IFA 20 89 #define CR_ITIR 21 90 #define CR_IIPA 22 91 #define CR_IFS 23 92 #define CR_IIM 24 93 #define CR_IHA 25 94 /* CR26-CR63 reserved */ 95 #define CR_LID 64 96 #define CR_IVR 65 97 #define CR_TPR 66 98 #define CR_EOI 67 99 #define CR_IRR0 68 100 #define CR_IRR1 69 101 #define CR_IRR2 70 102 #define CR_IRR3 71 103 #define CR_ITV 72 104 #define CR_PMV 73 105 #define CR_CMCV 74 106 /* CR75-CR79 reserved */ 107 #define CR_LRR0 80 108 #define CR_LRR1 81 109 /* CR82-CR127 reserved */ 36 110 37 111 /** External Interrupt Vector Register */
Note:
See TracChangeset
for help on using the changeset viewer.