VirtualBox

Changeset 28404 in vbox


Ignore:
Timestamp:
Apr 16, 2010 10:19:51 AM (15 years ago)
Author:
vboxsync
Message:

Shared pages updates

Location:
trunk/include/VBox
Files:
2 edited

Legend:

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

    r28402 r28404  
    550550/** @} */
    551551
     552/** @name Page sharing
     553 * @{ */
     554VBGLR3DECL(int)     VbglR3RegisterSharedModule(char *pszModuleName, char *pszVersion, RTGCPTR  GCBaseAddr, uint32_t cbModule, unsigned cRegions, VMMDevSharedModuleRegion *pRegions);
     555VBGLR3DECL(int)     VbglR3UnregisterSharedModule(char *pszModuleName, char *pszVersion, RTGCPTR  GCBaseAddr, uint32_t cbModule);
     556VBGLR3DECL(int)     VbglR3CheckSharedModules();
     557/** @} */
     558
    552559#endif /* IN_RING3 */
    553560/** @} */
  • trunk/include/VBox/VMMDev.h

    r28264 r28404  
    174174    VMMDevReq_GetCpuHotPlugRequest       = 210,
    175175    VMMDevReq_SetCpuHotPlugStatus        = 211,
     176#ifdef VBOX_WITH_PAGE_SHARING
     177    VMMDevReq_RegisterSharedModule       = 212,
     178    VMMDevReq_UnregisterSharedModule     = 213,
     179    VMMDevReq_CheckSharedModules         = 214,
     180#endif
    176181    VMMDevReq_SizeHack                   = 0x7fffffff
    177182} VMMDevRequestType;
     
    10611066} VMMDevGetCpuHotPlugRequest;
    10621067AssertCompileSize(VMMDevGetCpuHotPlugRequest, 24+4+4+4);
     1068
     1069
     1070/**
     1071 * Shared region description
     1072 */
     1073typedef struct
     1074{
     1075    RTGCPTR             GCRegionAddr;
     1076    uint32_t            cbRegion;
     1077    uint32_t            u32Alignment;
     1078} VMMDevSharedModuleRegion;
     1079AssertCompileSize(VMMDevSharedModuleRegion, 16);
     1080
     1081/**
     1082 * Shared module registration
     1083 */
     1084typedef struct
     1085{
     1086    /** Header. */
     1087    VMMDevRequestHeader         header;
     1088    /** Shared module size. */
     1089    uint32_t                    cbModule;
     1090    /** Number of included region descriptors */
     1091    uint32_t                    cRegions;
     1092    /** Base address of the shared module. */
     1093    RTGCPTR                     GCBaseAddr;
     1094    /** Module name */
     1095    char                        szName[128];
     1096    /** Module version */
     1097    char                        szVersion[16];
     1098    /** Shared region descriptor(s). */
     1099    VMMDevSharedModuleRegion    aRegions[1];
     1100} VMMDevSharedModuleRegistrationRequest;
     1101AssertCompileSize(VMMDevSharedModuleRegistrationRequest, 24+4+4+8+128+16+16);
     1102
     1103
     1104/**
     1105 * Shared module unregistration
     1106 */
     1107typedef struct
     1108{
     1109    /** Header. */
     1110    VMMDevRequestHeader         header;
     1111    /** Shared module size. */
     1112    uint32_t                    cbModule;
     1113    /** Align at 8 byte boundary. */
     1114    uint32_t                    u32Alignment;
     1115    /** Base address of the shared module. */
     1116    RTGCPTR                     GCBaseAddr;
     1117    /** Module name */
     1118    char                        szName[128];
     1119    /** Module version */
     1120    char                        szVersion[16];
     1121} VMMDevSharedModuleUnregistrationRequest;
     1122AssertCompileSize(VMMDevSharedModuleUnregistrationRequest, 24+4+4+8+128+16);
     1123
     1124
     1125/**
     1126 * Shared module periodic check
     1127 */
     1128typedef struct
     1129{
     1130    /** Header. */
     1131    VMMDevRequestHeader         header;
     1132} VMMDevSharedModuleCheckRequest;
     1133AssertCompileSize(VMMDevSharedModuleCheckRequest, 24);
    10631134
    10641135#pragma pack()
     
    15621633        case VMMDevReq_SetCpuHotPlugStatus:
    15631634            return sizeof(VMMDevCpuHotPlugStatusRequest);
     1635#ifdef VBOX_WITH_PAGE_SHARING
     1636        case VMMDevReq_RegisterSharedModule:
     1637            return sizeof(VMMDevSharedModuleRegistrationRequest);
     1638        case VMMDevReq_UnregisterSharedModule:
     1639            return sizeof(VMMDevSharedModuleUnregistrationRequest);
     1640        case VMMDevReq_CheckSharedModules:
     1641            return sizeof(VMMDevSharedModuleCheckRequest);
     1642#endif
     1643
    15641644        default:
    15651645            return 0;
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