Changeset 77054 in vbox for trunk/include/VBox
- Timestamp:
- Jan 30, 2019 5:40:43 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VBoxGuestLibSharedFoldersInline.h
r77037 r77054 72 72 } VBOXSFMAPFOLDERWITHBUFREQ; 73 73 74 74 75 /** 75 76 * SHFL_FN_MAP_FOLDER request. 76 77 */ 77 DECLINLINE(int) VbglR0SfHostReqMapFolderWith Buf(VBOXSFMAPFOLDERWITHBUFREQ *pReq, PSHFLSTRING pStrName,78 RTUTF16 wcDelimiter, bool fCaseSensitive)78 DECLINLINE(int) VbglR0SfHostReqMapFolderWithContig(VBOXSFMAPFOLDERWITHBUFREQ *pReq, PSHFLSTRING pStrName, RTGCPHYS64 PhysStrName, 79 RTUTF16 wcDelimiter, bool fCaseSensitive) 79 80 { 80 81 VBGLIOCIDCHGCMFASTCALL_INIT(&pReq->Hdr, VbglR0PhysHeapGetPhysAddr(pReq), &pReq->Call, g_SfClient.idClient, … … 96 97 pReq->Parms.pStrName.u.PageList.offset = RT_UOFFSETOF(VBOXSFMAPFOLDERWITHBUFREQ, PgLst) - sizeof(VBGLIOCIDCHGCMFASTCALL); 97 98 pReq->PgLst.flags = VBOX_HGCM_F_PARM_DIRECTION_BOTH; 98 pReq->PgLst.aPages[0] = VbglR0PhysHeapGetPhysAddr(pStrName); 99 pReq->PgLst.offFirstPage = (uint16_t)(pReq->PgLst.aPages[0] & PAGE_OFFSET_MASK); 100 pReq->PgLst.aPages[0] &= ~(RTGCPHYS)PAGE_OFFSET_MASK; 99 pReq->PgLst.offFirstPage = (uint16_t)PhysStrName & (uint16_t)(PAGE_OFFSET_MASK); 100 pReq->PgLst.aPages[0] = PhysStrName & ~(RTGCPHYS64)PAGE_OFFSET_MASK; 101 101 pReq->PgLst.cPages = 1; 102 102 } … … 112 112 vrc = pReq->Call.header.result; 113 113 return vrc; 114 } 115 116 /** 117 * SHFL_FN_MAP_FOLDER request. 118 */ 119 DECLINLINE(int) VbglR0SfHostReqMapFolderWithContigSimple(PSHFLSTRING pStrName, RTGCPHYS64 PhysStrName, 120 RTUTF16 wcDelimiter, bool fCaseSensitive, SHFLROOT *pidRoot) 121 { 122 VBOXSFMAPFOLDERWITHBUFREQ *pReq = (VBOXSFMAPFOLDERWITHBUFREQ *)VbglR0PhysHeapAlloc(sizeof(*pReq)); 123 if (pReq) 124 { 125 int rc = VbglR0SfHostReqMapFolderWithContig(pReq, pStrName, PhysStrName, wcDelimiter, fCaseSensitive); 126 *pidRoot = RT_SUCCESS(rc) ? pReq->Parms.id32Root.u.value32 : SHFL_ROOT_NIL; 127 VbglR0PhysHeapFree(pReq); 128 return rc; 129 } 130 *pidRoot = SHFL_ROOT_NIL; 131 return VERR_NO_MEMORY; 132 } 133 134 135 /** 136 * SHFL_FN_MAP_FOLDER request. 137 */ 138 DECLINLINE(int) VbglR0SfHostReqMapFolderWithBuf(VBOXSFMAPFOLDERWITHBUFREQ *pReq, PSHFLSTRING pStrName, 139 RTUTF16 wcDelimiter, bool fCaseSensitive) 140 { 141 return VbglR0SfHostReqMapFolderWithContig(pReq, pStrName, VbglR0PhysHeapGetPhysAddr(pStrName), wcDelimiter, fCaseSensitive); 114 142 } 115 143
Note:
See TracChangeset
for help on using the changeset viewer.