Changeset 75292 in vbox for trunk/src/VBox/Additions/darwin/VBoxSF
- Timestamp:
- Nov 6, 2018 3:06:31 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 126397
- Location:
- trunk/src/VBox/Additions/darwin/VBoxSF
- Files:
-
- 1 deleted
- 4 edited
- 1 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/darwin/VBoxSF/Makefile.kmk
r69314 r75292 20 20 21 21 # 22 # mount.vboxvfs - The Shared Folders mouning tool22 # VBoxSF - The shared folders kernel extension. 23 23 # 24 PROGRAMS += mount.vboxvfs 25 mount.vboxvfs_TEMPLATE = NewVBoxGuestR3Exe 26 mount.vboxvfs_SOURCES = mount.vboxvfs.c 27 mount.vboxvfs_INST = $(INST_ADDITIONS)VBoxVFS.kext/Contents/MacOS/ 24 SYSMODS += VBoxSF 25 VBoxSF_TEMPLATE = VBOXGUESTR0 26 VBoxSF_INST = $(INST_ADDITIONS)VBoxSF.kext/Contents/MacOS/ 27 VBoxSF_DEFS = VBOX_WITH_HGCM 28 VBoxSF_CXXFLAGS = -Wno-unused -Wno-unused-parameter 29 VBoxSF_LIBS = $(VBOX_LIB_VBGL_R0) 30 VBoxSF_SOURCES = \ 31 VBoxVFS.cpp \ 32 VBoxVFS-VFSOps.cpp \ 33 VBoxVFS-VNODEOps.cpp \ 34 VBoxVFS-utils.cpp 35 28 36 29 37 # 30 # vboxvfs - The Shared Folders Driver38 # Files necessary to make a darwin kernel extension bundle. 31 39 # 32 SYSMODS += VBoxVFS 33 VBoxVFS_TEMPLATE = VBOXGUESTR0 34 VBoxVFS_DEFS = VBOX_WITH_HGCM 35 VBoxVFS_LIBS = $(VBOX_LIB_VBGL_R0) 36 # $(VBOX_LIB_IPRT_GUEST_R0) 40 INSTALLS += VBoxSF.kext 41 VBoxSF.kext_INST = $(INST_ADDITIONS)VBoxSF.kext/Contents/ 42 VBoxSF.kext_SOURCES = $(VBoxSF.kext_0_OUTDIR)/Info.plist 43 VBoxSF.kext_CLEAN = $(VBoxSF.kext_0_OUTDIR)/Info.plist 37 44 38 VBoxVFS_SOURCES = VBoxVFS.cpp \ 39 VBoxVFS-VFSOps.cpp \ 40 VBoxVFS-VNODEOps.cpp \ 41 VBoxVFS-utils.cpp 45 $$(VBoxSF.kext_0_OUTDIR)/Info.plist: \ 46 $(PATH_SUB_CURRENT)/Info.plist \ 47 $(VBOX_VERSION_MK) | $$(dir $$@) 48 $(call MSG_GENERATE,VBoxSF,$@,$<) 49 $(QUIET)$(RM) -f $@ 50 $(QUIET)$(SED) \ 51 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \ 52 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \ 53 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \ 54 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \ 55 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \ 56 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \ 57 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \ 58 --output $@ \ 59 $< 42 60 43 VBoxVFS_INST = $(INST_ADDITIONS)VBoxVFS.kext/Contents/MacOS/ 61 # 62 # mount.vboxvfs - The Shared Folders mouning tool. 63 # 64 PROGRAMS += mount.vboxsf 65 mount.vboxsf_TEMPLATE = NewVBoxGuestR3Exe 66 mount.vboxsf_SOURCES = mount.vboxsf.c 67 mount.vboxsf_INST = $(INST_ADDITIONS)VBoxSF.kext/Contents/MacOS/ 44 68 45 # Files necessary to make a darwin kernel extension bundle.46 INSTALLS += VBoxVFS.kext47 VBoxVFS.kext_INST = $(INST_ADDITIONS)VBoxVFS.kext/Contents/48 VBoxVFS.kext_SOURCES = $(VBoxVFS.kext_0_OUTDIR)/Info.plist49 VBoxVFS.kext_CLEAN = $(VBoxVFS.kext_0_OUTDIR)/Info.plist50 51 $$(VBoxVFS.kext_0_OUTDIR)/Info.plist: \52 $(PATH_SUB_CURRENT)/Info.plist \53 $(VBOX_VERSION_MK) | $$(dir $$@)54 $(call MSG_GENERATE,VBoxVFS,$@,$<)55 $(QUIET)$(RM) -f $@56 $(QUIET)$(SED) \57 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \58 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \59 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \60 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \61 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \62 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \63 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \64 --output $@ \65 $<66 69 67 70 include $(FILE_KBUILD_SUB_FOOTER) 71 -
trunk/src/VBox/Additions/darwin/VBoxSF/VBoxVFS-utils.cpp
r69500 r75292 572 572 * Mount helper: Contruct SHFLSTRING which contains VBox share name or path. 573 573 * 574 * @ param szName Char * string containing share name.575 * @param cbName Length of pShareName.576 * 577 * @ return Allocated SHFLSTRING which contains VBox share name or path, NULL otherwise.574 * @returns Initialize string buffer on success, NULL if out of memory. 575 * @param pachName The string to pack in a buffer. Does not need to be 576 * zero terminated. 577 * @param cchName The length of pachName to use. RTSTR_MAX for strlen. 578 578 */ 579 579 SHFLSTRING * 580 vboxvfs_construct_shflstring(char *szName, size_t cbName) 581 { 582 size_t cbSHFLString; 583 SHFLSTRING *pSHFLString; 584 585 AssertReturn(szName, NULL); 586 587 cbSHFLString = offsetof(SHFLSTRING, String.utf8) + cbName + 1; 588 pSHFLString = (SHFLSTRING *)RTMemAllocZ(cbSHFLString); 589 580 vboxvfs_construct_shflstring(const char *pachName, size_t cchName) 581 { 582 AssertReturn(pachName, NULL); 583 584 if (cchName == RTSTR_MAX) 585 cchName = strlen(pachName); 586 587 SHFLSTRING *pSHFLString = (SHFLSTRING *)RTMemAlloc(SHFLSTRING_HEADER_SIZE + cchName + 1); 590 588 if (pSHFLString) 591 589 { 592 pSHFLString->u16Length = cbSHFLString; 593 pSHFLString->u16Size = cbSHFLString + 1; 594 595 /* Do not do that for empty strings */ 596 if (cbName > 0) 597 memcpy(pSHFLString->String.utf8, szName, cbName + 1); 590 pSHFLString->u16Length = cchName; 591 pSHFLString->u16Size = cchName + 1; 592 memcpy(pSHFLString->String.utf8, pachName, cchName); 593 pSHFLString->String.utf8[cchName] = '\0'; 598 594 599 595 return pSHFLString; 600 596 } 601 602 597 return NULL; 603 598 } -
trunk/src/VBox/Additions/darwin/VBoxSF/VBoxVFS.cpp
r69500 r75292 304 304 { 305 305 PINFO("unable to create matching dictionary"); 306 return false;306 return NULL; 307 307 } 308 308 -
trunk/src/VBox/Additions/darwin/VBoxSF/vboxvfs.h
r69500 r75292 16 16 */ 17 17 18 #define MODULE_NAME "VBox VFS"18 #define MODULE_NAME "VBoxSF" 19 19 20 20 #ifdef KERNEL … … 23 23 #endif 24 24 25 #define PINFO(fmt, args...) \ 26 printf(MODULE_NAME ": INFO: " fmt "\n", ## args) 27 #define PDEBUG(fmt, args...) \ 28 printf(MODULE_NAME ": %s(): DEBUG: " fmt "\n", __FUNCTION__, ## args) 29 #define PERROR(fmt, args...) \ 30 printf(MODULE_NAME ": ERROR: " fmt "\n", ## args) 31 32 #define VBOXVBFS_NAME "vboxvfs" 25 #define PINFO(fmt, args...) printf(MODULE_NAME ": INFO: " fmt "\n", ## args) 26 #define PDEBUG(fmt, args...) printf(MODULE_NAME ": %s(): DEBUG: " fmt "\n", __FUNCTION__, ## args) 27 #define PERROR(fmt, args...) printf(MODULE_NAME ": ERROR: " fmt "\n", ## args) 28 29 #define VBOXVBFS_NAME "vboxsf" 33 30 #define VBOXVFS_MOUNTINFO_MAGIC (0xCAFE) 34 31 … … 48 45 typedef struct vboxvfs_mount_data 49 46 { 50 VB SFMAPpMap; /** Shared folder mapping */47 VBGLSFMAP pMap; /** Shared folder mapping */ 51 48 SHFLSTRING *pShareName; /** VBoxVFS share name */ 52 49 uint64_t cFileIdCounter; /** Counter that used in order to assign unique ID to each vnode within mounted share */ … … 201 198 extern uint32_t vboxvfs_g2h_mode_inernal(mode_t fGuestMode); 202 199 203 extern SHFLSTRING *vboxvfs_construct_shflstring(c har *szName, size_t cbName);200 extern SHFLSTRING *vboxvfs_construct_shflstring(const char *pszName, size_t cchName); 204 201 205 202 #endif /* KERNEL */
Note:
See TracChangeset
for help on using the changeset viewer.