VirtualBox

Ignore:
Timestamp:
Jun 20, 2016 9:56:30 PM (8 years ago)
Author:
vboxsync
Message:

hm: more on this later

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/HMInternal.h

    r61703 r61775  
    335335/** Pointer to HMTPRPATCH. */
    336336typedef HMTPRPATCH *PHMTPRPATCH;
     337
     338
     339/**
     340 * Makes a HMEXITSTAT::uKey value from a program counter and an exit code.
     341 *
     342 * @returns 64-bit key
     343 * @param   a_uPC           The RIP + CS.BASE value of the exit.
     344 * @param   a_uExit         The exit code.
     345 * @todo    Add CPL?
     346 */
     347#define HMEXITSTAT_MAKE_KEY(a_uPC, a_uExit) (((a_uPC) & UINT64_C(0x0000ffffffffffff)) | (uint64_t)(a_uExit) << 48)
     348
     349typedef struct HMEXITINFO
     350{
     351    /** See HMEXITSTAT_MAKE_KEY(). */
     352    uint64_t                uKey;
     353    /** Number of recent hits (depreciates with time). */
     354    uint32_t volatile       cHits;
     355    /** The age + lock. */
     356    uint16_t volatile       uAge;
     357    /** Action or action table index. */
     358    uint16_t                iAction;
     359} HMEXITINFO;
     360AssertCompileSize(HMEXITINFO, 16); /* Lots of these guys, so don't add any unnecessary stuff! */
     361
     362typedef struct HMEXITHISTORY
     363{
     364    /** The exit timestamp. */
     365    uint64_t                uTscExit;
     366    /** The index of the corresponding HMEXITINFO entry.
     367     * UINT32_MAX if none (too many collisions, race, whatever). */
     368    uint32_t                iExitInfo;
     369    /** Figure out later, needed for padding now. */
     370    uint32_t                uSomeClueOrSomething;
     371} HMEXITHISTORY;
    337372
    338373/**
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