VirtualBox

Changeset 10087 in vbox for trunk/include/VBox/types.h


Ignore:
Timestamp:
Jul 2, 2008 9:27:32 AM (16 years ago)
Author:
vboxsync
Message:

Fixed SELMR3GetSelectorInfo for 64 bits mode.
Got rid of obsolete VBOXDESC.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/types.h

    r9765 r10087  
    393393        (  ((uint32_t)((desc).Gen.u16OffsetHigh) << 16) \
    394394         | (           (desc).Gen.u16OffsetLow        ) )
    395 
    396 /** @defgroup grp_types_desc    Descriptor Table Entry.
    397  * @ingroup grp_types
    398  * @{ */
    399 
    400 #pragma pack(1)
    401 /**
    402  * Memory descriptor.
    403  */
    404 typedef struct VBOXDESCGENERIC
    405 {
    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 out
    428      * of the intel manual yourself.  */
    429     unsigned    u1DefBig : 1;
    430     /** 55    - Granularity of the limit. If set 4KB granularity is used, if
    431      * 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 VBOXDESC
    445 {
    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 
    464395
    465396#pragma pack(1)
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette