儲存庫 vbox 的更動 10249
- 時間撮記:
- 2008-7-4 下午08:03:45 (16 年 以前)
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/HostDrivers/Support/SUPDRV.h
r10248 r10249 405 405 typedef struct SUPDRVMEMREF 406 406 { 407 #ifdef USE_NEW_OS_INTERFACE_FOR_MM408 407 /** The memory object handle. */ 409 408 RTR0MEMOBJ MemObj; … … 412 411 /** Type of memory. */ 413 412 SUPDRVMEMREFTYPE eType; 414 415 #else /* !USE_NEW_OS_INTERFACE_FOR_MM */416 /** Pointer to the R0 mapping of the memory.417 * Set to NULL if N/A. */418 void *pvR0;419 /** Pointer to the R3 mapping of the memory.420 * Set to NULL if N/A. */421 RTR3PTR pvR3;422 /** Size of the locked memory. */423 unsigned cb;424 /** Type of memory. */425 SUPDRVMEMREFTYPE eType;426 427 /** memory type specific information. */428 union429 {430 struct431 {432 #if defined(RT_OS_WINDOWS)433 /** Pointer to memory descriptor list (MDL). */434 PMDL *papMdl;435 unsigned cMdls;436 #elif defined(RT_OS_LINUX)437 struct page **papPages;438 unsigned cPages;439 #else440 # error "Either no target was defined or we haven't ported the driver to the target yet."441 #endif442 } locked;443 struct444 {445 #if defined(RT_OS_WINDOWS)446 /** Pointer to memory descriptor list (MDL). */447 PMDL pMdl;448 #elif defined(RT_OS_LINUX)449 struct page *paPages;450 unsigned cPages;451 #else452 # error "Either no target was defined or we haven't ported the driver to the target yet."453 #endif454 } cont;455 struct456 {457 #if defined(RT_OS_WINDOWS)458 /** Pointer to memory descriptor list (MDL). */459 PMDL pMdl;460 #elif defined(RT_OS_LINUX)461 /** Pointer to the array of page pointers. */462 struct page **papPages;463 /** Number of pages in papPages. */464 unsigned cPages;465 #else466 # error "Either no target was defined or we haven't ported the driver to the target yet."467 #endif468 } mem;469 #if defined(USE_NEW_OS_INTERFACE_FOR_LOW)470 struct471 {472 /** The memory object handle. */473 RTR0MEMOBJ MemObj;474 /** The ring-3 mapping memory object handle. */475 RTR0MEMOBJ MapObjR3;476 } iprt;477 #endif478 } u;479 #endif /* !USE_NEW_OS_INTERFACE_FOR_MM */480 413 } SUPDRVMEMREF, *PSUPDRVMEMREF; 481 414 … … 711 644 void VBOXCALL supdrvOSObjInitCreator(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession); 712 645 bool VBOXCALL supdrvOSObjCanAccess(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession, const char *pszObjName, int *prc); 713 #ifndef USE_NEW_OS_INTERFACE_FOR_MM714 int VBOXCALL supdrvOSLockMemOne(PSUPDRVMEMREF pMem, PSUPPAGE paPages);715 void VBOXCALL supdrvOSUnlockMemOne(PSUPDRVMEMREF pMem);716 int VBOXCALL supdrvOSContAllocOne(PSUPDRVMEMREF pMem, PRTR0PTR ppvR0, PRTR3PTR ppvR3, PRTHCPHYS pHCPhys);717 void VBOXCALL supdrvOSContFreeOne(PSUPDRVMEMREF pMem);718 int VBOXCALL supdrvOSLowAllocOne(PSUPDRVMEMREF pMem, PRTR0PTR ppvR0, PRTR3PTR ppvR3, PSUPPAGE paPages);719 void VBOXCALL supdrvOSLowFreeOne(PSUPDRVMEMREF pMem);720 int VBOXCALL supdrvOSMemAllocOne(PSUPDRVMEMREF pMem, PRTR0PTR ppvR0, PRTR3PTR ppvR3);721 void VBOXCALL supdrvOSMemGetPages(PSUPDRVMEMREF pMem, PSUPPAGE paPages);722 void VBOXCALL supdrvOSMemFreeOne(PSUPDRVMEMREF pMem);723 #endif724 646 bool VBOXCALL supdrvOSGetForcedAsyncTscMode(PSUPDRVDEVEXT pDevExt); 725 647
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器