Changeset 25891 in vbox for trunk/include/VBox
- Timestamp:
- Jan 18, 2010 1:07:21 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 56701
- Location:
- trunk/include/VBox
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/include/VBox/pdmcommon.h ¶
r25477 r25891 49 49 /** The attach/detach command is not a hotplug event. */ 50 50 #define PDM_TACH_FLAGS_NOT_HOT_PLUG RT_BIT_32(0) 51 /** Indicates that no attach or detach callbacks should be made. 52 * This is mostly for internal use. */ 53 #define PDM_TACH_FLAGS_NO_CALLBACKS RT_BIT_32(1) 51 54 /* @} */ 52 55 -
TabularUnified trunk/include/VBox/pdmdev.h ¶
r25741 r25891 3259 3259 uint32_t u32Version; 3260 3260 /** Device instance number. */ 3261 RTUINTiInstance;3261 uint32_t iInstance; 3262 3262 3263 3263 /** Pointer the GC PDM Device API. */ -
TabularUnified trunk/include/VBox/pdmdrv.h ¶
r25647 r25891 4 4 5 5 /* 6 * Copyright (C) 2006-20 07Sun Microsystems, Inc.6 * Copyright (C) 2006-2010 Sun Microsystems, Inc. 7 7 * 8 8 * This file is part of VirtualBox Open Source Edition (OSE), as … … 55 55 * @{ 56 56 */ 57 58 /** Pointer const PDM Driver API, ring-3. */ 59 typedef R3PTRTYPE(struct PDMDRVHLPR3 const *) PCPDMDRVHLPR3; 60 /** Pointer const PDM Driver API, ring-0. */ 61 typedef R0PTRTYPE(struct PDMDRVHLPR0 const *) PCPDMDRVHLPR0; 62 /** Pointer const PDM Driver API, raw-mode context. */ 63 typedef RCPTRTYPE(struct PDMDRVHLPRC const *) PCPDMDRVHLPRC; 64 57 65 58 66 /** … … 242 250 243 251 /** Current DRVREG version number. */ 244 #define PDM_DRVREG_VERSION 0x80020000252 #define PDM_DRVREG_VERSION UINT32_C(0x80030000) 245 253 246 254 /** PDM Driver Flags. … … 249 257 * The bit count for the current host. */ 250 258 #if HC_ARCH_BITS == 32 251 # define PDM_DRVREG_FLAGS_HOST_BITS_DEFAULT 0x000000001259 # define PDM_DRVREG_FLAGS_HOST_BITS_DEFAULT UINT32_C(0x00000001) 252 260 #elif HC_ARCH_BITS == 64 253 # define PDM_DRVREG_FLAGS_HOST_BITS_DEFAULT 0x000000002261 # define PDM_DRVREG_FLAGS_HOST_BITS_DEFAULT UINT32_C(0x00000002) 254 262 #else 255 263 # error Unsupported HC_ARCH_BITS value. 256 264 #endif 257 265 /** The host bit count mask. */ 258 #define PDM_DRVREG_FLAGS_HOST_BITS_MASK 0x000000003 266 #define PDM_DRVREG_FLAGS_HOST_BITS_MASK UINT32_C(0x00000003) 267 /** This flag is used to indicate that the driver has a RC component. */ 268 #define PDM_DRVREG_FLAGS_RC UINT32_C(0x00000010) 269 /** This flag is used to indicate that the driver has a R0 component. */ 270 #define PDM_DRVREG_FLAGS_R0 UINT32_C(0x00000020) 259 271 260 272 /** @} */ … … 299 311 300 312 /** 313 * PDM Driver Instance. 314 */ 315 typedef struct PDMDRVINS 316 { 317 /** Structure version. PDM_DRVINS_VERSION defines the current version. */ 318 uint32_t u32Version; 319 /** Driver instance number. */ 320 uint32_t iInstance; 321 322 /** Pointer the PDM Driver API. */ 323 RCPTRTYPE(PCPDMDRVHLPRC) pDrvHlpRC; 324 /** Pointer to driver instance data. */ 325 RCPTRTYPE(void *) pvInstanceDataRC; 326 327 /** Pointer the PDM Driver API. */ 328 R0PTRTYPE(PCPDMDRVHLPR0) pDrvHlpR0; 329 /** Pointer to driver instance data. */ 330 R0PTRTYPE(void *) pvInstanceDataR0; 331 332 /** Pointer the PDM Driver API. */ 333 R3PTRTYPE(PCPDMDRVHLPR3) pDrvHlpR3; 334 /** Pointer to driver instance data. */ 335 R3PTRTYPE(void *) pvInstanceDataR3; 336 337 /** Pointer to driver registration structure. */ 338 R3PTRTYPE(PCPDMDRVREG) pDrvReg; 339 /** Configuration handle. */ 340 R3PTRTYPE(PCFGMNODE) pCfgHandle; 341 342 /** Pointer to the base interface of the device/driver instance above. */ 343 R3PTRTYPE(PPDMIBASE) pUpBase; 344 /** Pointer to the base interface of the driver instance below. */ 345 R3PTRTYPE(PPDMIBASE) pDownBase; 346 347 /** The base interface of the driver. 348 * The driver constructor initializes this. */ 349 PDMIBASE IBase; 350 /** Align the internal data more naturally. */ 351 RTR3PTR R3PtrPadding; 352 353 /** Internal data. */ 354 union 355 { 356 #ifdef PDMDRVINSINT_DECLARED 357 PDMDRVINSINT s; 358 #endif 359 uint8_t padding[HC_ARCH_BITS == 32 ? 40 + 32 : 72 + 24]; 360 } Internal; 361 362 /** Driver instance data. The size of this area is defined 363 * in the PDMDRVREG::cbInstanceData field. */ 364 char achInstanceData[4]; 365 } PDMDRVINS; 366 367 /** Current DRVREG version number. */ 368 #define PDM_DRVINS_VERSION UINT32_C(0xa0020000) 369 370 /** Converts a pointer to the PDMDRVINS::IBase to a pointer to PDMDRVINS. */ 371 #define PDMIBASE_2_PDMDRV(pInterface) ( (PPDMDRVINS)((char *)(pInterface) - RT_OFFSETOF(PDMDRVINS, IBase)) ) 372 373 374 375 376 /** 301 377 * USB hub registration structure. 302 378 */ … … 339 415 340 416 /** Current PDMUSBHUBREG version number. */ 341 #define PDM_USBHUBREG_VERSION 0xeb010000417 #define PDM_USBHUBREG_VERSION UINT32_C(0xeb010000) 342 418 343 419 … … 362 438 363 439 /** Current PDMUSBHUBHLP version number. */ 364 #define PDM_USBHUBHLP_VERSION 0xea010000 365 366 367 368 /** 369 * Poller callback. 370 * 371 * @param pDrvIns The driver instance. 372 */ 373 typedef DECLCALLBACK(void) FNPDMDRVPOLLER(PPDMDRVINS pDrvIns); 374 /** Pointer to a FNPDMDRVPOLLER function. */ 375 typedef FNPDMDRVPOLLER *PFNPDMDRVPOLLER; 440 #define PDM_USBHUBHLP_VERSION UINT32_C(0xea010000) 441 376 442 377 443 #ifdef IN_RING3 … … 379 445 * PDM Driver API. 380 446 */ 381 typedef struct PDMDRVHLP 447 typedef struct PDMDRVHLPR3 382 448 { 383 449 /** Structure version. PDM_DRVHLP_VERSION defines the current version. */ … … 761 827 /** Just a safety precaution. */ 762 828 uint32_t u32TheEnd; 763 } PDMDRVHLP; 764 /** Pointer PDM Driver API. */ 765 typedef PDMDRVHLP *PPDMDRVHLP; 766 /** Pointer const PDM Driver API. */ 767 typedef const PDMDRVHLP *PCPDMDRVHLP; 768 829 } PDMDRVHLPR3; 769 830 /** Current DRVHLP version number. */ 770 #define PDM_DRVHLP_VERSION 0x90050000 771 772 773 774 /** 775 * PDM Driver Instance. 776 */ 777 typedef struct PDMDRVINS 778 { 779 /** Structure version. PDM_DRVINS_VERSION defines the current version. */ 780 uint32_t u32Version; 781 782 /** Internal data. */ 783 union 784 { 785 #ifdef PDMDRVINSINT_DECLARED 786 PDMDRVINSINT s; 787 #endif 788 uint8_t padding[HC_ARCH_BITS == 32 ? 32 : 64]; 789 } Internal; 790 791 /** Pointer the PDM Driver API. */ 792 R3PTRTYPE(PCPDMDRVHLP) pDrvHlp; 793 /** Pointer to driver registration structure. */ 794 R3PTRTYPE(PCPDMDRVREG) pDrvReg; 795 /** Configuration handle. */ 796 R3PTRTYPE(PCFGMNODE) pCfgHandle; 797 /** Driver instance number. */ 798 RTUINT iInstance; 799 /** Pointer to the base interface of the device/driver instance above. */ 800 R3PTRTYPE(PPDMIBASE) pUpBase; 801 /** Pointer to the base interface of the driver instance below. */ 802 R3PTRTYPE(PPDMIBASE) pDownBase; 803 /** The base interface of the driver. 804 * The driver constructor initializes this. */ 805 PDMIBASE IBase; 806 /* padding to make achInstanceData aligned at 16 byte boundrary. */ 807 uint32_t au32Padding[HC_ARCH_BITS == 32 ? 3 : 1]; 808 /** Pointer to driver instance data. */ 809 R3PTRTYPE(void *) pvInstanceData; 810 /** Driver instance data. The size of this area is defined 811 * in the PDMDRVREG::cbInstanceData field. */ 812 char achInstanceData[4]; 813 } PDMDRVINS; 814 815 /** Current DRVREG version number. */ 816 #define PDM_DRVINS_VERSION 0xa0010000 817 818 /** Converts a pointer to the PDMDRVINS::IBase to a pointer to PDMDRVINS. */ 819 #define PDMIBASE_2_PDMDRV(pInterface) ( (PPDMDRVINS)((char *)(pInterface) - RT_OFFSETOF(PDMDRVINS, IBase)) ) 831 #define PDM_DRVHLPR3_VERSION UINT32_C(0x90050000) 832 820 833 821 834 /** … … 826 839 va_list va; 827 840 va_start(va, pszFormat); 828 pDrvIns-> pDrvHlp->pfnVMSetErrorV(pDrvIns, rc, RT_SRC_POS_ARGS, pszFormat, va);841 pDrvIns->CTX_SUFF(pDrvHlp)->pfnVMSetErrorV(pDrvIns, rc, RT_SRC_POS_ARGS, pszFormat, va); 829 842 va_end(va); 830 843 return rc; … … 836 849 #define PDMDRV_SET_ERROR(pDrvIns, rc, pszError) \ 837 850 PDMDrvHlpVMSetError(pDrvIns, rc, RT_SRC_POS, "%s", pszError) 851 852 /** 853 * @copydoc PDMDRVHLP::pfnVMSetErrorV 854 */ 855 DECLINLINE(int) PDMDrvHlpVMSetErrorV(PPDMDRVINS pDrvIns, const int rc, RT_SRC_POS_DECL, const char *pszFormat, va_list va) 856 { 857 return pDrvIns->CTX_SUFF(pDrvHlp)->pfnVMSetErrorV(pDrvIns, rc, RT_SRC_POS_ARGS, pszFormat, va); 858 } 859 838 860 839 861 /** … … 845 867 int rc; 846 868 va_start(va, pszFormat); 847 rc = pDrvIns-> pDrvHlp->pfnVMSetRuntimeErrorV(pDrvIns, fFlags, pszErrorId, pszFormat, va);869 rc = pDrvIns->CTX_SUFF(pDrvHlp)->pfnVMSetRuntimeErrorV(pDrvIns, fFlags, pszErrorId, pszFormat, va); 848 870 va_end(va); 849 871 return rc; … … 856 878 PDMDrvHlpVMSetRuntimeError(pDrvIns, fFlags, pszErrorId, "%s", pszError) 857 879 880 /** 881 * @copydoc PDMDRVHLP::pfnVMSetRuntimeErrorV 882 */ 883 DECLINLINE(int) PDMDrvHlpVMSetRuntimeErrorV(PPDMDRVINS pDrvIns, uint32_t fFlags, const char *pszErrorId, const char *pszFormat, va_list va) 884 { 885 return pDrvIns->CTX_SUFF(pDrvHlp)->pfnVMSetRuntimeErrorV(pDrvIns, fFlags, pszErrorId, pszFormat, va); 886 } 887 858 888 #endif /* IN_RING3 */ 859 889 … … 863 893 */ 864 894 #ifdef VBOX_STRICT 865 # define PDMDRV_ASSERT_EMT(pDrvIns) pDrvIns-> pDrvHlp->pfnAssertEMT(pDrvIns, __FILE__, __LINE__, __FUNCTION__)895 # define PDMDRV_ASSERT_EMT(pDrvIns) pDrvIns->CTX_SUFF(pDrvHlp)->pfnAssertEMT(pDrvIns, __FILE__, __LINE__, __FUNCTION__) 866 896 #else 867 897 # define PDMDRV_ASSERT_EMT(pDrvIns) do { } while (0) … … 872 902 */ 873 903 #ifdef VBOX_STRICT 874 # define PDMDRV_ASSERT_OTHER(pDrvIns) pDrvIns-> pDrvHlp->pfnAssertOther(pDrvIns, __FILE__, __LINE__, __FUNCTION__)904 # define PDMDRV_ASSERT_OTHER(pDrvIns) pDrvIns->CTX_SUFF(pDrvHlp)->pfnAssertOther(pDrvIns, __FILE__, __LINE__, __FUNCTION__) 875 905 #else 876 906 # define PDMDRV_ASSERT_OTHER(pDrvIns) do { } while (0) … … 885 915 DECLINLINE(int) PDMDrvHlpAttach(PPDMDRVINS pDrvIns, uint32_t fFlags, PPDMIBASE *ppBaseInterface) 886 916 { 887 return pDrvIns->pDrvHlp ->pfnAttach(pDrvIns, fFlags, ppBaseInterface);917 return pDrvIns->pDrvHlpR3->pfnAttach(pDrvIns, fFlags, ppBaseInterface); 888 918 } 889 919 … … 896 926 DECLINLINE(int) PDMDrvHlpNoAttach(PPDMDRVINS pDrvIns) 897 927 { 898 return pDrvIns->pDrvHlp ->pfnAttach(pDrvIns, 0, NULL);928 return pDrvIns->pDrvHlpR3->pfnAttach(pDrvIns, 0, NULL); 899 929 } 900 930 … … 904 934 DECLINLINE(int) PDMDrvHlpDetach(PPDMDRVINS pDrvIns, uint32_t fFlags) 905 935 { 906 return pDrvIns->pDrvHlp ->pfnDetach(pDrvIns, fFlags);936 return pDrvIns->pDrvHlpR3->pfnDetach(pDrvIns, fFlags); 907 937 } 908 938 … … 912 942 DECLINLINE(int) PDMDrvHlpDetachSelf(PPDMDRVINS pDrvIns, uint32_t fFlags) 913 943 { 914 return pDrvIns->pDrvHlp->pfnDetachSelf(pDrvIns, fFlags); 944 return pDrvIns->pDrvHlpR3->pfnDetachSelf(pDrvIns, fFlags); 945 } 946 947 /** 948 * @copydoc PDMDRVHLP::pfnMountPrepare 949 */ 950 DECLINLINE(int) PDMDrvHlpMountPrepare(PPDMDRVINS pDrvIns, const char *pszFilename, const char *pszCoreDriver) 951 { 952 return pDrvIns->pDrvHlpR3->pfnMountPrepare(pDrvIns, pszFilename, pszCoreDriver); 915 953 } 916 954 … … 920 958 DECLINLINE(VMSTATE) PDMDrvHlpVMState(PPDMDRVINS pDrvIns) 921 959 { 922 return pDrvIns-> pDrvHlp->pfnVMState(pDrvIns);960 return pDrvIns->CTX_SUFF(pDrvHlp)->pfnVMState(pDrvIns); 923 961 } 924 962 … … 928 966 DECLINLINE(bool) PDMDrvHlpVMTeleportedAndNotFullyResumedYet(PPDMDRVINS pDrvIns) 929 967 { 930 return pDrvIns->pDrvHlp ->pfnVMTeleportedAndNotFullyResumedYet(pDrvIns);968 return pDrvIns->pDrvHlpR3->pfnVMTeleportedAndNotFullyResumedYet(pDrvIns); 931 969 } 932 970 … … 937 975 PFNPDMQUEUEDRV pfnCallback, const char *pszName, PPDMQUEUE *ppQueue) 938 976 { 939 return pDrvIns->pDrvHlp ->pfnPDMQueueCreate(pDrvIns, cbItem, cItems, cMilliesInterval, pfnCallback, pszName, ppQueue);977 return pDrvIns->pDrvHlpR3->pfnPDMQueueCreate(pDrvIns, cbItem, cItems, cMilliesInterval, pfnCallback, pszName, ppQueue); 940 978 } 941 979 … … 945 983 DECLINLINE(uint64_t) PDMDrvHlpTMGetVirtualFreq(PPDMDRVINS pDrvIns) 946 984 { 947 return pDrvIns->pDrvHlp ->pfnTMGetVirtualFreq(pDrvIns);985 return pDrvIns->pDrvHlpR3->pfnTMGetVirtualFreq(pDrvIns); 948 986 } 949 987 … … 953 991 DECLINLINE(uint64_t) PDMDrvHlpTMGetVirtualTime(PPDMDRVINS pDrvIns) 954 992 { 955 return pDrvIns->pDrvHlp ->pfnTMGetVirtualTime(pDrvIns);993 return pDrvIns->pDrvHlpR3->pfnTMGetVirtualTime(pDrvIns); 956 994 } 957 995 … … 961 999 DECLINLINE(int) PDMDrvHlpTMTimerCreate(PPDMDRVINS pDrvIns, TMCLOCK enmClock, PFNTMTIMERDRV pfnCallback, void *pvUser, uint32_t fFlags, const char *pszDesc, PPTMTIMERR3 ppTimer) 962 1000 { 963 return pDrvIns->pDrvHlp ->pfnTMTimerCreate(pDrvIns, enmClock, pfnCallback, pvUser, fFlags, pszDesc, ppTimer);1001 return pDrvIns->pDrvHlpR3->pfnTMTimerCreate(pDrvIns, enmClock, pfnCallback, pvUser, fFlags, pszDesc, ppTimer); 964 1002 } 965 1003 … … 978 1016 PFNSSMDRVSAVEEXEC pfnSaveExec, PFNSSMDRVLOADEXEC pfnLoadExec) 979 1017 { 980 return pDrvIns->pDrvHlp ->pfnSSMRegister(pDrvIns, uVersion, cbGuess,981 NULL /*pfnLivePrep*/, NULL /*pfnLiveExec*/, NULL /*pfnLiveVote*/,982 NULL /*pfnSavePrep*/, pfnSaveExec, NULL /*pfnSaveDone*/,983 NULL /*pfnLoadPrep*/, pfnLoadExec, NULL /*pfnLoadDone*/);1018 return pDrvIns->pDrvHlpR3->pfnSSMRegister(pDrvIns, uVersion, cbGuess, 1019 NULL /*pfnLivePrep*/, NULL /*pfnLiveExec*/, NULL /*pfnLiveVote*/, 1020 NULL /*pfnSavePrep*/, pfnSaveExec, NULL /*pfnSaveDone*/, 1021 NULL /*pfnLoadPrep*/, pfnLoadExec, NULL /*pfnLoadDone*/); 984 1022 } 985 1023 … … 992 1030 PFNSSMDRVLOADPREP pfnLoadPrep, PFNSSMDRVLOADEXEC pfnLoadExec, PFNSSMDRVLOADDONE pfnLoadDone) 993 1031 { 994 return pDrvIns->pDrvHlp ->pfnSSMRegister(pDrvIns, uVersion, cbGuess,995 pfnLivePrep, pfnLiveExec, pfnLiveVote,996 pfnSavePrep, pfnSaveExec, pfnSaveDone,997 pfnLoadPrep, pfnLoadExec, pfnLoadDone);1032 return pDrvIns->pDrvHlpR3->pfnSSMRegister(pDrvIns, uVersion, cbGuess, 1033 pfnLivePrep, pfnLiveExec, pfnLiveVote, 1034 pfnSavePrep, pfnSaveExec, pfnSaveDone, 1035 pfnLoadPrep, pfnLoadExec, pfnLoadDone); 998 1036 } 999 1037 … … 1007 1045 DECLINLINE(int) PDMDrvHlpSSMRegisterLoadDone(PPDMDRVINS pDrvIns, PFNSSMDRVLOADDONE pfnLoadDone) 1008 1046 { 1009 return pDrvIns->pDrvHlp ->pfnSSMRegister(pDrvIns, 0 /*uVersion*/, 0 /*cbGuess*/,1010 NULL /*pfnLivePrep*/, NULL /*pfnLiveExec*/, NULL /*pfnLiveVote*/,1011 NULL /*pfnSavePrep*/, NULL /*pfnSaveExec*/, NULL /*pfnSaveDone*/,1012 NULL /*pfnLoadPrep*/, NULL /*pfnLoadExec*/, pfnLoadDone);1047 return pDrvIns->pDrvHlpR3->pfnSSMRegister(pDrvIns, 0 /*uVersion*/, 0 /*cbGuess*/, 1048 NULL /*pfnLivePrep*/, NULL /*pfnLiveExec*/, NULL /*pfnLiveVote*/, 1049 NULL /*pfnSavePrep*/, NULL /*pfnSaveExec*/, NULL /*pfnSaveDone*/, 1050 NULL /*pfnLoadPrep*/, NULL /*pfnLoadExec*/, pfnLoadDone); 1013 1051 } 1014 1052 … … 1018 1056 DECLINLINE(void) PDMDrvHlpSTAMRegister(PPDMDRVINS pDrvIns, void *pvSample, STAMTYPE enmType, const char *pszName, STAMUNIT enmUnit, const char *pszDesc) 1019 1057 { 1020 pDrvIns->pDrvHlp ->pfnSTAMRegister(pDrvIns, pvSample, enmType, pszName, enmUnit, pszDesc);1058 pDrvIns->pDrvHlpR3->pfnSTAMRegister(pDrvIns, pvSample, enmType, pszName, enmUnit, pszDesc); 1021 1059 } 1022 1060 … … 1029 1067 va_list va; 1030 1068 va_start(va, pszName); 1031 pDrvIns->pDrvHlp ->pfnSTAMRegisterV(pDrvIns, pvSample, enmType, enmVisibility, enmUnit, pszDesc, pszName, va);1069 pDrvIns->pDrvHlpR3->pfnSTAMRegisterV(pDrvIns, pvSample, enmType, enmVisibility, enmUnit, pszDesc, pszName, va); 1032 1070 va_end(va); 1033 1071 } … … 1038 1076 DECLINLINE(int) PDMDrvHlpSTAMDeregister(PPDMDRVINS pDrvIns, void *pvSample) 1039 1077 { 1040 return pDrvIns->pDrvHlp->pfnSTAMDeregister(pDrvIns, pvSample); 1078 return pDrvIns->pDrvHlpR3->pfnSTAMDeregister(pDrvIns, pvSample); 1079 } 1080 1081 /** 1082 * @copydoc PDMDRVHLP::pfnSUPCallVMMR0Ex 1083 */ 1084 DECLINLINE(int) PDMDrvHlpSUPCallVMMR0Ex(PPDMDRVINS pDrvIns, unsigned uOperation, void *pvArg, unsigned cbArg) 1085 { 1086 return pDrvIns->pDrvHlpR3->pfnSUPCallVMMR0Ex(pDrvIns, uOperation, pvArg, cbArg); 1041 1087 } 1042 1088 … … 1046 1092 DECLINLINE(int) PDMDrvHlpUSBRegisterHub(PPDMDRVINS pDrvIns, uint32_t fVersions, uint32_t cPorts, PCPDMUSBHUBREG pUsbHubReg, PPCPDMUSBHUBHLP ppUsbHubHlp) 1047 1093 { 1048 return pDrvIns->pDrvHlp ->pfnUSBRegisterHub(pDrvIns, fVersions, cPorts, pUsbHubReg, ppUsbHubHlp);1094 return pDrvIns->pDrvHlpR3->pfnUSBRegisterHub(pDrvIns, fVersions, cPorts, pUsbHubReg, ppUsbHubHlp); 1049 1095 } 1050 1096 … … 1054 1100 DECLINLINE(int) PDMDrvHlpSetAsyncNotification(PPDMDRVINS pDrvIns, PFNPDMDRVASYNCNOTIFY pfnAsyncNotify) 1055 1101 { 1056 return pDrvIns->pDrvHlp ->pfnSetAsyncNotification(pDrvIns, pfnAsyncNotify);1102 return pDrvIns->pDrvHlpR3->pfnSetAsyncNotification(pDrvIns, pfnAsyncNotify); 1057 1103 } 1058 1104 … … 1062 1108 DECLINLINE(void) PDMDrvHlpAsyncNotificationCompleted(PPDMDRVINS pDrvIns) 1063 1109 { 1064 pDrvIns->pDrvHlp ->pfnAsyncNotificationCompleted(pDrvIns);1110 pDrvIns->pDrvHlpR3->pfnAsyncNotificationCompleted(pDrvIns); 1065 1111 } 1066 1112 … … 1071 1117 PFNPDMTHREADWAKEUPDRV pfnWakeup, size_t cbStack, RTTHREADTYPE enmType, const char *pszName) 1072 1118 { 1073 return pDrvIns->pDrvHlp ->pfnPDMThreadCreate(pDrvIns, ppThread, pvUser, pfnThread, pfnWakeup, cbStack, enmType, pszName);1074 } 1075 1076 # ifdef VBOX_WITH_PDM_ASYNC_COMPLETION1119 return pDrvIns->pDrvHlpR3->pfnPDMThreadCreate(pDrvIns, ppThread, pvUser, pfnThread, pfnWakeup, cbStack, enmType, pszName); 1120 } 1121 1122 # ifdef VBOX_WITH_PDM_ASYNC_COMPLETION 1077 1123 /** 1078 1124 * @copydoc PDMDRVHLP::pfnPDMAsyncCompletionTemplateCreate … … 1081 1127 PFNPDMASYNCCOMPLETEDRV pfnCompleted, void *pvTemplateUser, const char *pszDesc) 1082 1128 { 1083 return pDrvIns->pDrvHlp->pfnPDMAsyncCompletionTemplateCreate(pDrvIns, ppTemplate, pfnCompleted, pvTemplateUser, pszDesc); 1084 } 1085 #endif 1086 1087 #endif /* IN_RING3 */ 1088 1129 return pDrvIns->pDrvHlpR3->pfnPDMAsyncCompletionTemplateCreate(pDrvIns, ppTemplate, pfnCompleted, pvTemplateUser, pszDesc); 1130 } 1131 # endif 1089 1132 1090 1133 … … 1115 1158 1116 1159 /** Current version of the PDMDRVREGCB structure. */ 1117 #define PDM_DRVREG_CB_VERSION 0xb00100001160 #define PDM_DRVREG_CB_VERSION UINT32_C(0xb0010000) 1118 1161 1119 1162 … … 1132 1175 VMMR3DECL(int) PDMR3RegisterDrivers(PVM pVM, FNPDMVBOXDRIVERSREGISTER pfnCallback); 1133 1176 1177 #endif /* IN_RING3 */ 1178 1134 1179 /** @} */ 1135 1180
Note:
See TracChangeset
for help on using the changeset viewer.