Changeset 7f1c620 in mainline for arch/ia32/include/smp/apic.h
- Timestamp:
- 2006-07-04T17:17:56Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0ffa3ef5
- Parents:
- 991779c5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/include/smp/apic.h
r991779c5 r7f1c620 106 106 107 107 /** Interrupt Command Register. */ 108 #define ICRlo (0x300/sizeof( __u32))109 #define ICRhi (0x310/sizeof( __u32))108 #define ICRlo (0x300/sizeof(uint32_t)) 109 #define ICRhi (0x310/sizeof(uint32_t)) 110 110 struct icr { 111 111 union { 112 __u32lo;112 uint32_t lo; 113 113 struct { 114 __u8vector; /**< Interrupt Vector. */114 uint8_t vector; /**< Interrupt Vector. */ 115 115 unsigned delmod : 3; /**< Delivery Mode. */ 116 116 unsigned destmod : 1; /**< Destination Mode. */ … … 125 125 }; 126 126 union { 127 __u32hi;127 uint32_t hi; 128 128 struct { 129 129 unsigned : 24; /**< Reserved. */ 130 __u8dest; /**< Destination field. */130 uint8_t dest; /**< Destination field. */ 131 131 } __attribute__ ((packed)); 132 132 }; … … 135 135 136 136 /* End Of Interrupt. */ 137 #define EOI (0x0b0/sizeof( __u32))137 #define EOI (0x0b0/sizeof(uint32_t)) 138 138 139 139 /** Error Status Register. */ 140 #define ESR (0x280/sizeof( __u32))140 #define ESR (0x280/sizeof(uint32_t)) 141 141 union esr { 142 __u32value;143 __u8err_bitmap;142 uint32_t value; 143 uint8_t err_bitmap; 144 144 struct { 145 145 unsigned send_checksum_error : 1; … … 157 157 158 158 /* Task Priority Register */ 159 #define TPR (0x080/sizeof( __u32))159 #define TPR (0x080/sizeof(uint32_t)) 160 160 union tpr { 161 __u32value;161 uint32_t value; 162 162 struct { 163 163 unsigned pri_sc : 4; /**< Task Priority Sub-Class. */ … … 168 168 169 169 /** Spurious-Interrupt Vector Register. */ 170 #define SVR (0x0f0/sizeof( __u32))170 #define SVR (0x0f0/sizeof(uint32_t)) 171 171 union svr { 172 __u32value;173 struct { 174 __u8vector; /**< Spurious Vector. */172 uint32_t value; 173 struct { 174 uint8_t vector; /**< Spurious Vector. */ 175 175 unsigned lapic_enabled : 1; /**< APIC Software Enable/Disable. */ 176 176 unsigned focus_checking : 1; /**< Focus Processor Checking. */ … … 181 181 182 182 /** Time Divide Configuration Register. */ 183 #define TDCR (0x3e0/sizeof( __u32))183 #define TDCR (0x3e0/sizeof(uint32_t)) 184 184 union tdcr { 185 __u32value;185 uint32_t value; 186 186 struct { 187 187 unsigned div_value : 4; /**< Divide Value, bit 2 is always 0. */ … … 192 192 193 193 /* Initial Count Register for Timer */ 194 #define ICRT (0x380/sizeof( __u32))194 #define ICRT (0x380/sizeof(uint32_t)) 195 195 196 196 /* Current Count Register for Timer */ 197 #define CCRT (0x390/sizeof( __u32))197 #define CCRT (0x390/sizeof(uint32_t)) 198 198 199 199 /** LVT Timer register. */ 200 #define LVT_Tm (0x320/sizeof( __u32))200 #define LVT_Tm (0x320/sizeof(uint32_t)) 201 201 union lvt_tm { 202 __u32value;203 struct { 204 __u8vector; /**< Local Timer Interrupt vector. */202 uint32_t value; 203 struct { 204 uint8_t vector; /**< Local Timer Interrupt vector. */ 205 205 unsigned : 4; /**< Reserved. */ 206 206 unsigned delivs : 1; /**< Delivery status (RO). */ … … 214 214 215 215 /** LVT LINT registers. */ 216 #define LVT_LINT0 (0x350/sizeof( __u32))217 #define LVT_LINT1 (0x360/sizeof( __u32))216 #define LVT_LINT0 (0x350/sizeof(uint32_t)) 217 #define LVT_LINT1 (0x360/sizeof(uint32_t)) 218 218 union lvt_lint { 219 __u32value;220 struct { 221 __u8vector; /**< LINT Interrupt vector. */219 uint32_t value; 220 struct { 221 uint8_t vector; /**< LINT Interrupt vector. */ 222 222 unsigned delmod : 3; /**< Delivery Mode. */ 223 223 unsigned : 1; /**< Reserved. */ … … 233 233 234 234 /** LVT Error register. */ 235 #define LVT_Err (0x370/sizeof( __u32))235 #define LVT_Err (0x370/sizeof(uint32_t)) 236 236 union lvt_error { 237 __u32value;238 struct { 239 __u8vector; /**< Local Timer Interrupt vector. */237 uint32_t value; 238 struct { 239 uint8_t vector; /**< Local Timer Interrupt vector. */ 240 240 unsigned : 4; /**< Reserved. */ 241 241 unsigned delivs : 1; /**< Delivery status (RO). */ … … 248 248 249 249 /** Local APIC ID Register. */ 250 #define L_APIC_ID (0x020/sizeof( __u32))250 #define L_APIC_ID (0x020/sizeof(uint32_t)) 251 251 union l_apic_id { 252 __u32value;252 uint32_t value; 253 253 struct { 254 254 unsigned : 24; /**< Reserved. */ 255 __u8apic_id; /**< Local APIC ID. */255 uint8_t apic_id; /**< Local APIC ID. */ 256 256 } __attribute__ ((packed)); 257 257 }; … … 259 259 260 260 /** Local APIC Version Register */ 261 #define LAVR (0x030/sizeof( __u32))261 #define LAVR (0x030/sizeof(uint32_t)) 262 262 #define LAVR_Mask 0xff 263 263 #define is_local_apic(x) (((x)&LAVR_Mask&0xf0)==0x1) … … 266 266 267 267 /** Logical Destination Register. */ 268 #define LDR (0x0d0/sizeof( __u32))268 #define LDR (0x0d0/sizeof(uint32_t)) 269 269 union ldr { 270 __u32value;270 uint32_t value; 271 271 struct { 272 272 unsigned : 24; /**< Reserved. */ 273 __u8id; /**< Logical APIC ID. */273 uint8_t id; /**< Logical APIC ID. */ 274 274 } __attribute__ ((packed)); 275 275 }; … … 277 277 278 278 /** Destination Format Register. */ 279 #define DFR (0x0e0/sizeof( __u32))279 #define DFR (0x0e0/sizeof(uint32_t)) 280 280 union dfr { 281 __u32value;281 uint32_t value; 282 282 struct { 283 283 unsigned : 28; /**< Reserved, all ones. */ … … 288 288 289 289 /* IO APIC */ 290 #define IOREGSEL (0x00/sizeof( __u32))291 #define IOWIN (0x10/sizeof( __u32))290 #define IOREGSEL (0x00/sizeof(uint32_t)) 291 #define IOWIN (0x10/sizeof(uint32_t)) 292 292 293 293 #define IOAPICID 0x00 … … 298 298 /** I/O Register Select Register. */ 299 299 union io_regsel { 300 __u32value;301 struct { 302 __u8reg_addr; /**< APIC Register Address. */300 uint32_t value; 301 struct { 302 uint8_t reg_addr; /**< APIC Register Address. */ 303 303 unsigned : 24; /**< Reserved. */ 304 304 } __attribute__ ((packed)); … … 309 309 struct io_redirection_reg { 310 310 union { 311 __u32lo;311 uint32_t lo; 312 312 struct { 313 __u8intvec; /**< Interrupt Vector. */313 uint8_t intvec; /**< Interrupt Vector. */ 314 314 unsigned delmod : 3; /**< Delivery Mode. */ 315 315 unsigned destmod : 1; /**< Destination mode. */ … … 323 323 }; 324 324 union { 325 __u32hi;325 uint32_t hi; 326 326 struct { 327 327 unsigned : 24; /**< Reserved. */ 328 __u8dest : 8; /**< Destination Field. */328 uint8_t dest : 8; /**< Destination Field. */ 329 329 } __attribute__ ((packed)); 330 330 }; … … 336 336 /** IO APIC Identification Register. */ 337 337 union io_apic_id { 338 __u32value;338 uint32_t value; 339 339 struct { 340 340 unsigned : 24; /**< Reserved. */ … … 345 345 typedef union io_apic_id io_apic_id_t; 346 346 347 extern volatile __u32*l_apic;348 extern volatile __u32*io_apic;349 350 extern __u32apic_id_mask;347 extern volatile uint32_t *l_apic; 348 extern volatile uint32_t *io_apic; 349 350 extern uint32_t apic_id_mask; 351 351 352 352 extern void apic_init(void); … … 354 354 extern void l_apic_init(void); 355 355 extern void l_apic_eoi(void); 356 extern int l_apic_broadcast_custom_ipi( __u8vector);357 extern int l_apic_send_init_ipi( __u8apicid);356 extern int l_apic_broadcast_custom_ipi(uint8_t vector); 357 extern int l_apic_send_init_ipi(uint8_t apicid); 358 358 extern void l_apic_debug(void); 359 extern __u8l_apic_id(void);360 361 extern __u32 io_apic_read(__u8address);362 extern void io_apic_write( __u8 address , __u32x);363 extern void io_apic_change_ioredtbl(int pin, int dest, __u8v, int flags);364 extern void io_apic_disable_irqs( __u16irqmask);365 extern void io_apic_enable_irqs( __u16irqmask);359 extern uint8_t l_apic_id(void); 360 361 extern uint32_t io_apic_read(uint8_t address); 362 extern void io_apic_write(uint8_t address , uint32_t x); 363 extern void io_apic_change_ioredtbl(int pin, int dest, uint8_t v, int flags); 364 extern void io_apic_disable_irqs(uint16_t irqmask); 365 extern void io_apic_enable_irqs(uint16_t irqmask); 366 366 367 367 #endif
Note:
See TracChangeset
for help on using the changeset viewer.