VirtualBox

Ignore:
Timestamp:
Nov 6, 2018 3:06:31 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
126397
Message:

add/darwin/VBoxSF: Renaming, bitrot, build hacks, a string buffering fix.

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  
    2020
    2121#
    22 # mount.vboxvfs - The Shared Folders mouning tool
     22# VBoxSF - The shared folders kernel extension.
    2323#
    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/
     24SYSMODS        += VBoxSF
     25VBoxSF_TEMPLATE = VBOXGUESTR0
     26VBoxSF_INST     = $(INST_ADDITIONS)VBoxSF.kext/Contents/MacOS/
     27VBoxSF_DEFS     = VBOX_WITH_HGCM
     28VBoxSF_CXXFLAGS = -Wno-unused -Wno-unused-parameter
     29VBoxSF_LIBS     = $(VBOX_LIB_VBGL_R0)
     30VBoxSF_SOURCES  = \
     31        VBoxVFS.cpp \
     32        VBoxVFS-VFSOps.cpp \
     33        VBoxVFS-VNODEOps.cpp \
     34        VBoxVFS-utils.cpp
     35
    2836
    2937#
    30 # vboxvfs - The Shared Folders Driver
     38# Files necessary to make a darwin kernel extension bundle.
    3139#
    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)
     40INSTALLS += VBoxSF.kext
     41VBoxSF.kext_INST     = $(INST_ADDITIONS)VBoxSF.kext/Contents/
     42VBoxSF.kext_SOURCES  = $(VBoxSF.kext_0_OUTDIR)/Info.plist
     43VBoxSF.kext_CLEAN    = $(VBoxSF.kext_0_OUTDIR)/Info.plist
    3744
    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                 $<
    4260
    43 VBoxVFS_INST          = $(INST_ADDITIONS)VBoxVFS.kext/Contents/MacOS/
     61#
     62# mount.vboxvfs - The Shared Folders mouning tool.
     63#
     64PROGRAMS += mount.vboxsf
     65mount.vboxsf_TEMPLATE = NewVBoxGuestR3Exe
     66mount.vboxsf_SOURCES  = mount.vboxsf.c
     67mount.vboxsf_INST     = $(INST_ADDITIONS)VBoxSF.kext/Contents/MacOS/
    4468
    45 # Files necessary to make a darwin kernel extension bundle.
    46 INSTALLS += VBoxVFS.kext
    47 VBoxVFS.kext_INST     = $(INST_ADDITIONS)VBoxVFS.kext/Contents/
    48 VBoxVFS.kext_SOURCES  = $(VBoxVFS.kext_0_OUTDIR)/Info.plist
    49 VBoxVFS.kext_CLEAN    = $(VBoxVFS.kext_0_OUTDIR)/Info.plist
    50 
    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             $<
    6669
    6770include $(FILE_KBUILD_SUB_FOOTER)
     71
  • trunk/src/VBox/Additions/darwin/VBoxSF/VBoxVFS-utils.cpp

    r69500 r75292  
    572572 * Mount helper: Contruct SHFLSTRING which contains VBox share name or path.
    573573 *
    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.
    578578 */
    579579SHFLSTRING *
    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 
     580vboxvfs_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);
    590588    if (pSHFLString)
    591589    {
    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';
    598594
    599595        return pSHFLString;
    600596    }
    601 
    602597    return NULL;
    603598}
  • trunk/src/VBox/Additions/darwin/VBoxSF/VBoxVFS.cpp

    r69500 r75292  
    304304    {
    305305        PINFO("unable to create matching dictionary");
    306         return false;
     306        return NULL;
    307307    }
    308308
  • trunk/src/VBox/Additions/darwin/VBoxSF/vboxvfs.h

    r69500 r75292  
    1616 */
    1717
    18 #define MODULE_NAME "VBoxVFS"
     18#define MODULE_NAME "VBoxSF"
    1919
    2020#ifdef KERNEL
     
    2323#endif
    2424
    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"
    3330#define VBOXVFS_MOUNTINFO_MAGIC     (0xCAFE)
    3431
     
    4845typedef struct vboxvfs_mount_data
    4946{
    50     VBSFMAP             pMap;               /** Shared folder mapping */
     47    VBGLSFMAP           pMap;               /** Shared folder mapping */
    5148    SHFLSTRING         *pShareName;         /** VBoxVFS share name */
    5249    uint64_t            cFileIdCounter;     /** Counter that used in order to assign unique ID to each vnode within mounted share */
     
    201198extern uint32_t vboxvfs_g2h_mode_inernal(mode_t fGuestMode);
    202199
    203 extern SHFLSTRING *vboxvfs_construct_shflstring(char *szName, size_t cbName);
     200extern SHFLSTRING *vboxvfs_construct_shflstring(const char *pszName, size_t cchName);
    204201
    205202#endif /* KERNEL */
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette