VirtualBox

Changeset 17136 in vbox


Ignore:
Timestamp:
Feb 25, 2009 4:10:32 PM (16 years ago)
Author:
vboxsync
Message:

VBOXTSS offsets.

Location:
trunk
Files:
2 edited

Legend:

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

    r12632 r17136  
    446446
    447447/**
    448  * Task Segment
     448 * 32-bit Task Segment used in raw mode.
     449 * @todo Move this to SELM! Use X86TSS32 instead.
    449450 */
    450451#pragma pack(1)
    451452typedef struct VBOXTSS
    452453{
    453     /** Back link to previous task. (static) */
     454    /** 0x00 - Back link to previous task. (static) */
    454455    RTSEL       selPrev;
    455456    uint16_t    padding1;
    456     /** Ring-0 stack pointer. (static) */
     457    /** 0x04 - Ring-0 stack pointer. (static) */
    457458    uint32_t    esp0;
    458     /** Ring-0 stack segment. (static) */
     459    /** 0x08 - Ring-0 stack segment. (static) */
    459460    RTSEL       ss0;
    460461    uint16_t    padding_ss0;
    461     /** Ring-1 stack pointer. (static) */
     462    /** 0x0c - Ring-1 stack pointer. (static) */
    462463    uint32_t    esp1;
    463     /** Ring-1 stack segment. (static) */
     464    /** 0x10 - Ring-1 stack segment. (static) */
    464465    RTSEL       ss1;
    465466    uint16_t    padding_ss1;
    466     /** Ring-2 stack pointer. (static) */
     467    /** 0x14 - Ring-2 stack pointer. (static) */
    467468    uint32_t    esp2;
    468     /** Ring-2 stack segment. (static) */
     469    /** 0x18 - Ring-2 stack segment. (static) */
    469470    RTSEL       ss2;
    470471    uint16_t    padding_ss2;
    471     /** Page directory for the task. (static) */
     472    /** 0x1c - Page directory for the task. (static) */
    472473    uint32_t    cr3;
    473     /** EIP before task switch. */
     474    /** 0x20 - EIP before task switch. */
    474475    uint32_t    eip;
    475     /** EFLAGS before task switch. */
     476    /** 0x24 - EFLAGS before task switch. */
    476477    uint32_t    eflags;
    477     /** EAX before task switch. */
     478    /** 0x28 - EAX before task switch. */
    478479    uint32_t    eax;
    479     /** ECX before task switch. */
     480    /** 0x2c - ECX before task switch. */
    480481    uint32_t    ecx;
    481     /** EDX before task switch. */
     482    /** 0x30 - EDX before task switch. */
    482483    uint32_t    edx;
    483     /** EBX before task switch. */
     484    /** 0x34 - EBX before task switch. */
    484485    uint32_t    ebx;
    485     /** ESP before task switch. */
     486    /** 0x38 - ESP before task switch. */
    486487    uint32_t    esp;
    487     /** EBP before task switch. */
     488    /** 0x3c - EBP before task switch. */
    488489    uint32_t    ebp;
    489     /** ESI before task switch. */
     490    /** 0x40 - ESI before task switch. */
    490491    uint32_t    esi;
    491     /** EDI before task switch. */
     492    /** 0x44 - EDI before task switch. */
    492493    uint32_t    edi;
    493     /** ES before task switch. */
     494    /** 0x48 - ES before task switch. */
    494495    RTSEL       es;
    495496    uint16_t    padding_es;
    496     /** CS before task switch. */
     497    /** 0x4c - CS before task switch. */
    497498    RTSEL       cs;
    498499    uint16_t    padding_cs;
    499     /** SS before task switch. */
     500    /** 0x50 - SS before task switch. */
    500501    RTSEL       ss;
    501502    uint16_t    padding_ss;
    502     /** DS before task switch. */
     503    /** 0x54 - DS before task switch. */
    503504    RTSEL       ds;
    504505    uint16_t    padding_ds;
    505     /** FS before task switch. */
     506    /** 0x58 - FS before task switch. */
    506507    RTSEL       fs;
    507508    uint16_t    padding_fs;
    508     /** GS before task switch. */
     509    /** 0x5c - GS before task switch. */
    509510    RTSEL       gs;
    510511    uint16_t    padding_gs;
    511     /** LDTR before task switch. */
     512    /** 0x60 - LDTR before task switch. */
    512513    RTSEL       selLdt;
    513514    uint16_t    padding_ldt;
    514     /** Debug trap flag */
     515    /** 0x64 - Debug trap flag */
    515516    uint16_t    fDebugTrap;
    516     /** Offset relative to the TSS of the start of the I/O Bitmap
     517    /** 0x66 -  Offset relative to the TSS of the start of the I/O Bitmap
    517518     * and the end of the interrupt redirection bitmap. */
    518519    uint16_t    offIoBitmap;
    519     /** 32 bytes for the virtual interrupt redirection bitmap. (VME) */
     520    /** 0x68 -  32 bytes for the virtual interrupt redirection bitmap. (VME) */
    520521    uint8_t     IntRedirBitmap[32];
    521522} VBOXTSS;
  • trunk/src/VBox/VMM/VMMAll/IOMAll.cpp

    r14075 r17136  
    736736
    737737        if (    !fCanHaveIOBitmap
    738             ||  cbTss <= sizeof(VBOXTSS))
     738            ||  cbTss <= sizeof(VBOXTSS)) /** @todo r=bird: Should this really include the interrupt redirection bitmap? */
    739739        {
    740740            Log(("iomInterpretCheckPortIOAccess: Port=%RTiop cb=%d cbTss=%#x fCanHaveIOBitmap=%RTbool -> #GP(0)\n",
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