VirtualBox

Changeset 95376 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jun 26, 2022 9:30:55 PM (3 years ago)
Author:
vboxsync
Message:

ValKit/bs3kit: More work on extended CPU/FPU state management and checking during testing. bugref:9898

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

Legend:

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

    r95372 r95376  
    149149       bs3-cmn-ExtCtxGetMxCsr.c \
    150150       bs3-cmn-ExtCtxSetMxCsr.c \
     151       bs3-cmn-ExtCtxGetMm.c \
     152       bs3-cmn-ExtCtxSetMm.c \
    151153       bs3-cmn-ExtCtxGetYmm.c \
    152154       bs3-cmn-ExtCtxSetYmm.c \
     
    201203        bs3-cmn-TestIsVmmDevTestingPresent.asm \
    202204        bs3-cmn-TestCheckRegCtxEx.c \
     205        bs3-cmn-TestCheckExtCtx.c \
    203206        bs3-cmn-TestQueryCfgU8.asm \
    204207        bs3-cmn-TestQueryCfgU32.asm \
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-autostubs.kmk

    r95372 r95376  
    3737$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,Bs3SelFar32ToFlat32NoClobber,6)
    3838$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,Bs3RegCtxSaveEx,8)
     39$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3ExtCtxSetMm)
    3940$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3ExtCtxSetYmm)
     41$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestCheckExtCtx)
    4042$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestCheckRegCtxEx)
    4143$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestFailed)
     
    7779$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SelProtFar32ToFlat32)
    7880$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestQueryCfgU32)
     81$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3ExtCtxGetMm)
    7982$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestNow)
    8083$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestQueryCfgU8)
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-mangling-code-define.h

    r95372 r95376  
    3434#define Bs3ExtCtxCopy BS3_CMN_MANGLER(Bs3ExtCtxCopy)
    3535#define Bs3ExtCtxFree BS3_CMN_MANGLER(Bs3ExtCtxFree)
     36#define Bs3ExtCtxGetMm BS3_CMN_MANGLER(Bs3ExtCtxGetMm)
    3637#define Bs3ExtCtxGetMxCsr BS3_CMN_MANGLER(Bs3ExtCtxGetMxCsr)
    3738#define Bs3ExtCtxGetSize BS3_CMN_MANGLER(Bs3ExtCtxGetSize)
     
    4041#define Bs3ExtCtxRestore BS3_CMN_MANGLER(Bs3ExtCtxRestore)
    4142#define Bs3ExtCtxSave BS3_CMN_MANGLER(Bs3ExtCtxSave)
     43#define Bs3ExtCtxSetMm BS3_CMN_MANGLER(Bs3ExtCtxSetMm)
    4244#define Bs3ExtCtxSetMxCsr BS3_CMN_MANGLER(Bs3ExtCtxSetMxCsr)
    4345#define Bs3ExtCtxSetYmm BS3_CMN_MANGLER(Bs3ExtCtxSetYmm)
     
    161163#define Bs3StrPrintfV BS3_CMN_MANGLER(Bs3StrPrintfV)
    162164#define Bs3SwitchFromV86To16BitAndCallC BS3_CMN_MANGLER(Bs3SwitchFromV86To16BitAndCallC)
     165#define Bs3TestCheckExtCtx BS3_CMN_MANGLER(Bs3TestCheckExtCtx)
    163166#define Bs3TestCheckRegCtxEx BS3_CMN_MANGLER(Bs3TestCheckRegCtxEx)
    164167#define Bs3TestFailed BS3_CMN_MANGLER(Bs3TestFailed)
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-mangling-code-undef.h

    r95372 r95376  
    3434#undef Bs3ExtCtxCopy
    3535#undef Bs3ExtCtxFree
     36#undef Bs3ExtCtxGetMm
    3637#undef Bs3ExtCtxGetMxCsr
    3738#undef Bs3ExtCtxGetSize
     
    4041#undef Bs3ExtCtxRestore
    4142#undef Bs3ExtCtxSave
     43#undef Bs3ExtCtxSetMm
    4244#undef Bs3ExtCtxSetMxCsr
    4345#undef Bs3ExtCtxSetYmm
     
    161163#undef Bs3StrPrintfV
    162164#undef Bs3SwitchFromV86To16BitAndCallC
     165#undef Bs3TestCheckExtCtx
    163166#undef Bs3TestCheckRegCtxEx
    164167#undef Bs3TestFailed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h

    r95372 r95376  
    28972897
    28982898/**
     2899 * Gets the value of MM register number @a iReg from @a pExtCtx.
     2900 *
     2901 * @returns The MM register value.
     2902 * @param   pExtCtx         The extended CPU context.
     2903 * @param   iReg            The register to get (0 thru 7).
     2904 */
     2905BS3_CMN_PROTO_STUB(uint64_t, Bs3ExtCtxGetMm,(PCBS3EXTCTX pExtCtx, uint8_t iReg));
     2906
     2907/**
     2908 * Sets the value of YMM register number @a iReg in @a pExtCtx to @a pValue.
     2909 *
     2910 * @returns True if set, false if not.
     2911 * @param   pExtCtx         The extended CPU context.
     2912 * @param   iReg            The register to set.
     2913 * @param   uValue          The new register value.
     2914 */
     2915BS3_CMN_PROTO_STUB(bool, Bs3ExtCtxSetMm,(PBS3EXTCTX pExtCtx, uint8_t iReg, uint64_t uValue));
     2916
     2917/**
    28992918 * Gets the value of YMM register number @a iReg from @a pExtCtx.
    29002919 *
    2901  * @returns MXCSR value, 0 if not part of context.
     2920 * @returns pValue
    29022921 * @param   pExtCtx         The extended CPU context.
    29032922 * @param   iReg            The register to get.
     
    34283447                                               int16_t cbSpAdjust, uint32_t fExtraEfl,
    34293448                                               const char BS3_FAR *pszMode, uint16_t idTestStep));
     3449
     3450/**
     3451 * Compares two extended register contexts.
     3452 *
     3453 * Differences will be reported as test failures.
     3454 *
     3455 * @returns true if equal, false if not.
     3456 * @param   pActualExtCtx   The actual register context.
     3457 * @param   pExpectedExtCtx Expected register context.
     3458 * @param   fFlags          Reserved, pass 0.
     3459 * @param   pszMode         CPU mode or some other helpful text.
     3460 * @param   idTestStep      Test step identifier.
     3461 */
     3462BS3_CMN_PROTO_STUB(bool, Bs3TestCheckExtCtx,(PCBS3EXTCTX pActualExtCtx, PCBS3EXTCTX pExpectedExtCtx, uint16_t fFlags,
     3463                                             const char BS3_FAR *pszMode, uint16_t idTestStep));
    34303464
    34313465/**
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