Changeset 10087 in vbox for trunk/include/VBox/types.h
- Timestamp:
- Jul 2, 2008 9:27:32 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/types.h
r9765 r10087 393 393 ( ((uint32_t)((desc).Gen.u16OffsetHigh) << 16) \ 394 394 | ( (desc).Gen.u16OffsetLow ) ) 395 396 /** @defgroup grp_types_desc Descriptor Table Entry.397 * @ingroup grp_types398 * @{ */399 400 #pragma pack(1)401 /**402 * Memory descriptor.403 */404 typedef struct VBOXDESCGENERIC405 {406 /** 0-15 - Limit - Low word. */407 unsigned u16LimitLow : 16;408 /** 16-31 - Base address - lowe word.409 * Don't try set this to 24 because MSC is doing studing things then. */410 unsigned u16BaseLow : 16;411 /** 32-39 - Base address - first 8 bits of high word. */412 unsigned u8BaseHigh1 : 8;413 /** 40-43 - Segment Type. */414 unsigned u4Type : 4;415 /** 44 - Descriptor Type. System(=0) or code/data selector */416 unsigned u1DescType : 1;417 /** 45-46 - Descriptor Privelege level. */418 unsigned u2Dpl : 2;419 /** 47 - Flags selector present(=1) or not. */420 unsigned u1Present : 1;421 /** 48-51 - Segment limit 16-19. */422 unsigned u4LimitHigh : 4;423 /** 52 - Available for system software. */424 unsigned u1Available : 1;425 /** 53 - 32 bits mode: Reserved - 0, long mode: Long Attribute Bit. */426 unsigned u1Long : 1;427 /** 54 - This flags meaning depends on the segment type. Try make sense out428 * of the intel manual yourself. */429 unsigned u1DefBig : 1;430 /** 55 - Granularity of the limit. If set 4KB granularity is used, if431 * clear byte. */432 unsigned u1Granularity : 1;433 /** 56-63 - Base address - highest 8 bits. */434 unsigned u8BaseHigh2 : 8;435 } VBOXDESCGENERIC;436 #pragma pack()437 /** Pointer to a generic descriptor entry. */438 typedef VBOXDESCGENERIC *PVBOXDESCGENERIC;439 440 #pragma pack(1)441 /**442 * Descriptor table entry.443 */444 typedef union VBOXDESC445 {446 /** Generic descriptor view. */447 VBOXDESCGENERIC Gen;448 /** IDT view. */449 VBOXIDTE Idt;450 451 /** 8 bit unsigned interger view. */452 uint8_t au8[8];453 /** 16 bit unsigned interger view. */454 uint16_t au16[4];455 /** 32 bit unsigned interger view. */456 uint32_t au32[2];457 } VBOXDESC;458 #pragma pack()459 /** Pointer to descriptor table entry. */460 typedef VBOXDESC *PVBOXDESC;461 /** Pointer to const descriptor table entry. */462 typedef VBOXDESC const *PCVBOXDESC;463 464 395 465 396 #pragma pack(1)
Note:
See TracChangeset
for help on using the changeset viewer.