VirtualBox

Changeset 64734 in vbox


Ignore:
Timestamp:
Nov 22, 2016 9:13:39 AM (8 years ago)
Author:
vboxsync
Message:

bs3kit: Bs3PagingQueryAddressInfo

Location:
trunk/src/VBox/ValidationKit/bootsectors/bs3kit
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/Makefile.kmk

    r64694 r64734  
    8989       bs3-cmn-PagingAlias.c \
    9090       bs3-cmn-PagingProtect.c \
     91       bs3-cmn-PagingQueryAddressInfo.c \
    9192       bs3-cmn-PagingSetupCanonicalTraps.c \
    9293       bs3-cmn-pic-data.c \
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-autostubs.kmk

    r64710 r64734  
    4141$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingInitRootForPAE)
    4242$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingInitRootForPP)
     43$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingProtect)
    4344$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingProtectPtr)
    44 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingProtect)
     45$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingQueryAddressInfo)
    4546$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingUnalias)
    4647$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SwitchFromV86To16BitAndCallC)
     
    6566$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3MemMove)
    6667$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3MemPCpy)
    67 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingGetPde)
    6868$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingGetPte)
    6969$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingSetupCanonicalTraps)
     70$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabAlloc)
    7071$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabAllocEx)
    71 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabAlloc)
     72$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabListAlloc)
    7273$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabListAllocEx)
    73 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabListAlloc)
    7474$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3MemFree)
    7575$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3MemGuardedTestPageFree)
     
    105105$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestSubV)
    106106$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestTerm)
     107$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16Init)
    107108$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16InitEx)
    108 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16Init)
    109109$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16SetGate)
    110110$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap32Init)
     
    115115$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapPrintFrame)
    116116$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapReInit)
     117$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86Init)
    117118$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86InitEx)
    118 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86Init)
    119119$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86SetGate)
    120120$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapSetHandlerEx)
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-mangling-code-define.h

    r64710 r64734  
    5151#define bs3PagingGetLegacyPte BS3_CMN_MANGLER(bs3PagingGetLegacyPte)
    5252#define bs3PagingGetPaePte BS3_CMN_MANGLER(bs3PagingGetPaePte)
    53 #define Bs3PagingGetPde BS3_CMN_MANGLER(Bs3PagingGetPde)
    5453#define Bs3PagingGetPte BS3_CMN_MANGLER(Bs3PagingGetPte)
    5554#define Bs3PagingInitRootForLM BS3_CMN_MANGLER(Bs3PagingInitRootForLM)
     
    5857#define Bs3PagingProtect BS3_CMN_MANGLER(Bs3PagingProtect)
    5958#define Bs3PagingProtectPtr BS3_CMN_MANGLER(Bs3PagingProtectPtr)
     59#define Bs3PagingQueryAddressInfo BS3_CMN_MANGLER(Bs3PagingQueryAddressInfo)
    6060#define Bs3PagingSetupCanonicalTraps BS3_CMN_MANGLER(Bs3PagingSetupCanonicalTraps)
    6161#define Bs3PagingUnalias BS3_CMN_MANGLER(Bs3PagingUnalias)
     
    146146#define Bs3TrapSetHandler BS3_CMN_MANGLER(Bs3TrapSetHandler)
    147147#define Bs3TrapSetHandlerEx BS3_CMN_MANGLER(Bs3TrapSetHandlerEx)
     148#define Bs3TrapSetJmp BS3_CMN_MANGLER(Bs3TrapSetJmp)
    148149#define Bs3TrapSetJmpAndRestore BS3_CMN_MANGLER(Bs3TrapSetJmpAndRestore)
    149 #define Bs3TrapSetJmp BS3_CMN_MANGLER(Bs3TrapSetJmp)
    150150#define Bs3TrapUnsetJmp BS3_CMN_MANGLER(Bs3TrapUnsetJmp)
    151151#define Bs3UInt32Div BS3_CMN_MANGLER(Bs3UInt32Div)
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-mangling-code-undef.h

    r64710 r64734  
    5151#undef bs3PagingGetLegacyPte
    5252#undef bs3PagingGetPaePte
    53 #undef Bs3PagingGetPde
    5453#undef Bs3PagingGetPte
    5554#undef Bs3PagingInitRootForLM
     
    5857#undef Bs3PagingProtect
    5958#undef Bs3PagingProtectPtr
     59#undef Bs3PagingQueryAddressInfo
    6060#undef Bs3PagingSetupCanonicalTraps
    6161#undef Bs3PagingUnalias
     
    146146#undef Bs3TrapSetHandler
    147147#undef Bs3TrapSetHandlerEx
     148#undef Bs3TrapSetJmp
    148149#undef Bs3TrapSetJmpAndRestore
    149 #undef Bs3TrapSetJmp
    150150#undef Bs3TrapUnsetJmp
    151151#undef Bs3UInt32Div
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h

    r64703 r64734  
    22122212
    22132213/**
    2214  * Get the pointer to the PDE for the given address.
    2215  *
    2216  * @returns Pointer to the PDE.
    2217  * @param   uFlat               The flat address of the page which PDE we want.
    2218  */
    2219 BS3_CMN_PROTO_STUB(void BS3_FAR *, Bs3PagingGetPde,(uint64_t uFlat));
     2214 * Paging information for an address.
     2215 */
     2216typedef struct BS3PAGINGINFO4ADDR
     2217{
     2218    /** The depth of the system's paging mode.
     2219     * This is always 2 for legacy, 3 for PAE and 4 for long mode. */
     2220    uint8_t             cEntries;
     2221    /** The size of the page structures (the entires). */
     2222    uint8_t             cbEntry;
     2223    /** Flags defined for future fun, currently zero. */
     2224    uint16_t            fFlags;
     2225    /** Union display different view on the entry pointers. */
     2226    union
     2227    {
     2228        /** Pointer to the page structure entries, starting with the PTE as 0.
     2229         * If large pages are involved, the first entry will be NULL (first two if 1GB
     2230         * page).  Same if the address is invalid on a higher level. */
     2231        uint8_t BS3_FAR    *apbEntries[4];
     2232        /** Alternative view for legacy mode. */
     2233        struct
     2234        {
     2235            X86PTE BS3_FAR *pPte;
     2236            X86PDE BS3_FAR *pPde;
     2237            void           *pvUnused2;
     2238            void           *pvUnused3;
     2239        } Legacy;
     2240        /** Alternative view for PAE and Long mode. */
     2241        struct
     2242        {
     2243            X86PTEPAE BS3_FAR *pPte;
     2244            X86PDEPAE BS3_FAR *pPde;
     2245            X86PDPE   BS3_FAR *pPdpe;
     2246            X86PML4E  BS3_FAR *pPml4e;
     2247        } Pae;
     2248    } u;
     2249} BS3PAGINGINFO4ADDR;
     2250/** Pointer to paging information for and address.   */
     2251typedef BS3PAGINGINFO4ADDR BS3_FAR *PBS3PAGINGINFO4ADDR;
     2252
     2253/**
     2254 * Queries paging information about the given virtual address.
     2255 *
     2256 * @returns VBox status code.
     2257 * @param   uFlat               The flat address to query information about.
     2258 * @param   pPgInfo             Where to return the information.
     2259 */
     2260BS3_CMN_PROTO_STUB(int, Bs3PagingQueryAddressInfo,(uint64_t uFlat, PBS3PAGINGINFO4ADDR pPgInfo));
    22202261
    22212262
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