VirtualBox

Changeset 105679 in vbox


Ignore:
Timestamp:
Aug 14, 2024 8:31:27 PM (4 months ago)
Author:
vboxsync
Message:

Additions/solaris/SharedFolders: Address a Solaris-specific build
failure reported by gcc 14 when building the Solaris 10 Shared Folder
kernel module (vboxfs_s10) on Solaris 11. gcc 14 flags an incompatible
pointer type initialization discrepancy with [-Wincompatible-pointer-types]
for the Shared Folder vnode operation functions such as sffs_access(),
sffs_mkdir(), and etc. since the Solaris 10 declaration for these
functions in vnode.h use the generic K&R-style of 'int (*)()' but the
function definition is the ANSI C-style syntax of 'int (*)(vnode_t *,
int, int, cred_t *, caller_context_t *)'. Updating the Solaris 10
Shared Folder header files (all concatenated in s10defines.h) to use
ANSI C-style syntax for the function declarations to align with their
respective function definitions resolves the gcc errors.

Location:
trunk/src/VBox/Additions/solaris/SharedFolders
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/solaris/SharedFolders/vboxfs_vfs.c

    r98103 r105679  
    124124 * Module linkage information
    125125 */
     126#if defined(VBOX_VFS_SOLARIS_10U6)
     127struct modlfs_s10 {
     128    struct mod_ops   *fs_modops;
     129    char             *fs_linkinfo;
     130    struct vfsdef_v3 *fs_vfsdef;
     131};
     132static struct modlfs_s10 modlfs = {
     133#else
    126134static struct modlfs modlfs = {
     135#endif
    127136        &mod_fsops,
    128137        DEVICE_DESC " " VBOX_VERSION_STRING "r" VBOXSOLQUOTE(VBOX_SVN_REV),
     
    206215sffs_init(int fstype, char *name)
    207216{
    208 #if defined(VBOX_VFS_SOLARIS_10U6)
    209         static const fs_operation_def_t sffs_vfsops_template[] = {
    210                 VFSNAME_MOUNT,          sffs_mount,
    211                 VFSNAME_UNMOUNT,        sffs_unmount,
    212                 VFSNAME_ROOT,           sffs_root,
    213                 VFSNAME_STATVFS,        sffs_statvfs,
    214                 NULL,                   NULL
    215         };
    216 #else
    217217        static const fs_operation_def_t sffs_vfsops_template[] = {
    218218                VFSNAME_MOUNT,          { .vfs_mount = sffs_mount },
     
    222222                NULL,                   NULL
    223223        };
    224 #endif
    225224        int error;
    226225
  • trunk/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c

    r98103 r105679  
    720720        uio_t           *uiop,
    721721        cred_t          *cred,
    722         int             *eofp,
    723         caller_context_t *ct,
    724         int             flag)
     722        int             *eofp
     723#if !defined(VBOX_VFS_SOLARIS_10U6)
     724        , caller_context_t *ct,
     725        int             flag
     726#endif
     727        )
    725728{
    726729        sfnode_t *dir = VN2SFN(vp);
     
    756759
    757760        if (dir->sf_dir_list == NULL) {
     761#if defined(VBOX_VFS_SOLARIS_10U6)
     762        int flag = 0;
     763#endif
    758764                error = sfprov_readdir(dir->sf_sffs->sf_handle, dir->sf_path,
    759765                    &dir->sf_dir_list, flag);
     
    846852
    847853
    848 #if defined(VBOX_VFS_SOLARIS_10U6)
    849854/*
    850855 * HERE JOE.. this may need more logic, need to look at other file systems
     
    855860        int     cmd,
    856861        ulong_t *valp,
    857         cred_t  *cr)
    858 {
     862        cred_t  *cr
     863#if !defined(VBOX_VFS_SOLARIS_10U6)
     864        , caller_context_t *ct
     865#endif
     866        )
     867{
     868#if !defined(VBOX_VFS_SOLARIS_10U6)
     869        return (fs_pathconf(vp, cmd, valp, cr, ct));
     870#else
    859871        return (fs_pathconf(vp, cmd, valp, cr));
    860 }
    861 #else
    862 /*
    863  * HERE JOE.. this may need more logic, need to look at other file systems
    864  */
    865 static int
    866 sffs_pathconf(
    867         vnode_t *vp,
    868         int     cmd,
    869         ulong_t *valp,
    870         cred_t  *cr,
    871         caller_context_t *ct)
    872 {
    873         return (fs_pathconf(vp, cmd, valp, cr, ct));
    874 }
    875 #endif
     872#endif
     873}
    876874
    877875static int
     
    880878        vattr_t         *vap,
    881879        int             flags,
    882         cred_t          *cred,
    883         caller_context_t *ct)
     880        cred_t          *cred
     881#if !defined(VBOX_VFS_SOLARIS_10U6)
     882        , caller_context_t *ct
     883#endif
     884        )
    884885{
    885886        sfnode_t        *node = VN2SFN(vp);
     
    11531154/*ARGSUSED*/
    11541155static int
    1155 sffs_access(vnode_t *vp, int mode, int flags, cred_t *cr, caller_context_t *ct)
     1156sffs_access(
     1157    vnode_t *vp,
     1158    int mode,
     1159    int flags,
     1160    cred_t *cr
     1161#if !defined(VBOX_VFS_SOLARIS_10U6)
     1162    , caller_context_t *ct
     1163#endif
     1164    )
    11561165{
    11571166        sfnode_t *node = VN2SFN(vp);
     
    11761185        int             flags,
    11771186        vnode_t         *rdir,
    1178         cred_t          *cred,
    1179         caller_context_t *ct,
     1187        cred_t          *cred
     1188#if !defined(VBOX_VFS_SOLARIS_10U6)
     1189        , caller_context_t *ct,
    11801190        int             *direntflags,
    1181         struct pathname *realpnp)
     1191        struct pathname *realpnp
     1192#endif
     1193        )
    11821194{
    11831195        int             error;
     
    12321244        vnode_t         **vpp,
    12331245        cred_t          *cr,
    1234         int             flag,
    1235         caller_context_t *ct,
    1236         vsecattr_t      *vsecp)
     1246        int             flag
     1247#if !defined(VBOX_VFS_SOLARIS_10U6)
     1248        , caller_context_t *ct,
     1249        vsecattr_t      *vsecp
     1250#endif
     1251        )
    12371252{
    12381253        vnode_t         *vp;
     
    12531268         * is this a pre-existing file?
    12541269         */
     1270#if defined(VBOX_VFS_SOLARIS_10U6)
     1271        error = sffs_lookup(dvp, name, &vp,
     1272            NULL, 0, NULL, cr);
     1273#else
    12551274        error = sffs_lookup(dvp, name, &vp,
    12561275            NULL, 0, NULL, cr, ct, NULL, NULL);
     1276#endif
    12571277        if (error == ENOENT)
    12581278                vp = NULL;
     
    13361356        vattr_t         *va,
    13371357        vnode_t         **vpp,
    1338         cred_t          *cred,
    1339         caller_context_t *ct,
     1358        cred_t          *cred
     1359#if !defined(VBOX_VFS_SOLARIS_10U6)
     1360        , caller_context_t *ct,
    13401361        int             flags,
    1341         vsecattr_t      *vsecp)
     1362        vsecattr_t      *vsecp
     1363#endif
     1364        )
    13421365{
    13431366        sfnode_t        *node;
     
    13561379         * Do an unlocked look up first
    13571380         */
     1381#if defined(VBOX_VFS_SOLARIS_10U6)
     1382        error = sffs_lookup(dvp, nm, &vp, NULL, 0, NULL, cred);
     1383#else
    13581384        error = sffs_lookup(dvp, nm, &vp, NULL, 0, NULL, cred, ct, NULL, NULL);
     1385#endif
    13591386        if (error == 0) {
    13601387                VN_RELE(vp);
     
    13951422        char            *nm,
    13961423        vnode_t         *cdir,
    1397         cred_t          *cred,
    1398         caller_context_t *ct,
    1399         int             flags)
     1424        cred_t          *cred
     1425#if !defined(VBOX_VFS_SOLARIS_10U6)
     1426        , caller_context_t *ct,
     1427        int             flags
     1428#endif
     1429        )
    14001430{
    14011431        sfnode_t         *node;
     
    14111441                return (EEXIST);
    14121442
     1443#if defined(VBOX_VFS_SOLARIS_10U6)
     1444        error = sffs_lookup(dvp, nm, &vp, NULL, 0, NULL, cred);
     1445#else
    14131446        error = sffs_lookup(dvp, nm, &vp, NULL, 0, NULL, cred, ct, NULL, NULL);
     1447#endif
    14141448        if (error)
    14151449                return (error);
     
    18761910        cred_t          *cred
    18771911#if !defined(VBOX_VFS_SOLARIS_10U6)
    1878         ,
    1879         caller_context_t *ct
     1912        , caller_context_t *ct
    18801913#endif
    18811914        )
     
    19201953        cred_t          *cred
    19211954#if !defined(VBOX_VFS_SOLARIS_10U6)
    1922         ,
    1923         caller_context_t *ct,
     1955        , caller_context_t *ct,
    19241956        int             flags
    19251957#endif
     
    19872019        vnode_t         *dvp,
    19882020        char            *name,
    1989         cred_t          *cred,
    1990         caller_context_t *ct,
    1991         int             flags)
     2021        cred_t          *cred
     2022#if !defined(VBOX_VFS_SOLARIS_10U6)
     2023        , caller_context_t *ct,
     2024        int             flags
     2025#endif
     2026        )
    19922027{
    19932028        vnode_t         *vp;
     
    20012036        ASSERT(strcmp(name, "..") != 0);
    20022037
     2038#if defined(VBOX_VFS_SOLARIS_10U6)
     2039        error = sffs_lookup(dvp, name, &vp,
     2040            NULL, 0, NULL, cred);
     2041#else
    20032042        error = sffs_lookup(dvp, name, &vp,
    20042043            NULL, 0, NULL, cred, ct, NULL, NULL);
     2044#endif
    20052045        if (error)
    20062046                return (error);
     
    20532093        vnode_t         *new_dir,
    20542094        char            *new_nm,
    2055         cred_t          *cred,
    2056         caller_context_t *ct,
    2057         int             flags)
     2095        cred_t          *cred
     2096#if !defined(VBOX_VFS_SOLARIS_10U6)
     2097        , caller_context_t *ct,
     2098        int             flags
     2099#endif
     2100        )
    20582101{
    20592102        char            *newpath;
     
    21102153/*ARGSUSED*/
    21112154static int
    2112 sffs_fsync(vnode_t *vp, int flag, cred_t *cr, caller_context_t *ct)
     2155sffs_fsync(
     2156    vnode_t *vp,
     2157    int flag,
     2158    cred_t *cr
     2159#if !defined(VBOX_VFS_SOLARIS_10U6)
     2160    , caller_context_t *ct
     2161#endif
     2162    )
    21132163{
    21142164        sfnode_t *node;
     
    21362186/*ARGSUSED*/
    21372187static void
    2138 #if defined(VBOX_VFS_SOLARIS_10U6)
    2139 sffs_inactive(vnode_t *vp, cred_t *cr)
    2140 #else
    2141 sffs_inactive(vnode_t *vp, cred_t *cr, caller_context_t *ct)
    2142 #endif
     2188sffs_inactive(
     2189    vnode_t *vp,
     2190    cred_t *cr
     2191#if !defined(VBOX_VFS_SOLARIS_10U6)
     2192    , caller_context_t *ct
     2193#endif
     2194    )
    21432195{
    21442196        sfnode_t *node;
     
    22082260/*ARGSUSED*/
    22092261static int
    2210 sffs_open(vnode_t **vpp, int flag, cred_t *cr, caller_context_t *ct)
     2262sffs_open(
     2263    vnode_t **vpp,
     2264    int flag,
     2265    cred_t *cr
     2266#if !defined(VBOX_VFS_SOLARIS_10U6)
     2267    , caller_context_t *ct
     2268#endif
     2269    )
    22112270{
    22122271        sfnode_t *node;
     
    22342293        int count,
    22352294        offset_t offset,
    2236         cred_t *cr,
    2237         caller_context_t *ct)
     2295        cred_t *cr
     2296#if !defined(VBOX_VFS_SOLARIS_10U6)
     2297        , caller_context_t *ct
     2298#endif
     2299        )
    22382300{
    22392301        sfnode_t *node;
     
    22672329/* ARGSUSED */
    22682330static int
    2269 sffs_seek(vnode_t *v, offset_t o, offset_t *no, caller_context_t *ct)
     2331sffs_seek(
     2332    vnode_t *v,
     2333    offset_t o,
     2334    offset_t *no
     2335#if !defined(VBOX_VFS_SOLARIS_10U6)
     2336    , caller_context_t *ct
     2337#endif
     2338    )
    22702339{
    22712340        if (*no < 0 || *no > MAXOFFSET_T)
     
    22992368/* ARGSUSED */
    23002369static int
    2301 sffs_fid(vnode_t *vp, fid_t *fidp, caller_context_t *ct)
     2370sffs_fid(
     2371    vnode_t *vp,
     2372    fid_t *fidp
     2373#if !defined(VBOX_VFS_SOLARIS_10U6)
     2374    , caller_context_t *ct
     2375#endif
     2376    )
    23022377{
    23032378        return (ENOTSUP);
     
    23082383 */
    23092384const fs_operation_def_t sffs_ops_template[] = {
    2310 #if defined(VBOX_VFS_SOLARIS_10U6)
    2311         VOPNAME_ACCESS,         sffs_access,
    2312         VOPNAME_CLOSE,          sffs_close,
    2313         VOPNAME_CREATE,         sffs_create,
    2314         VOPNAME_FID,            sffs_fid,
    2315         VOPNAME_FSYNC,          sffs_fsync,
    2316         VOPNAME_GETATTR,        sffs_getattr,
    2317         VOPNAME_INACTIVE,       sffs_inactive,
    2318         VOPNAME_LOOKUP,         sffs_lookup,
    2319         VOPNAME_MKDIR,          sffs_mkdir,
    2320         VOPNAME_OPEN,           sffs_open,
    2321         VOPNAME_PATHCONF,       sffs_pathconf,
    2322         VOPNAME_READ,           sffs_read,
    2323         VOPNAME_READDIR,        sffs_readdir,
    2324         VOPNAME_READLINK,       sffs_readlink,
    2325         VOPNAME_REMOVE,         sffs_remove,
    2326         VOPNAME_RENAME,         sffs_rename,
    2327         VOPNAME_RMDIR,          sffs_rmdir,
    2328         VOPNAME_SEEK,           sffs_seek,
    2329         VOPNAME_SETATTR,        sffs_setattr,
    2330         VOPNAME_SPACE,          sffs_space,
    2331         VOPNAME_SYMLINK,        sffs_symlink,
    2332         VOPNAME_WRITE,          sffs_write,
    2333 
    2334 # ifdef VBOXVFS_WITH_MMAP
    2335         VOPNAME_MAP,            sffs_map,
    2336         VOPNAME_ADDMAP,         sffs_addmap,
    2337         VOPNAME_DELMAP,         sffs_delmap,
    2338         VOPNAME_GETPAGE,        sffs_getpage,
    2339         VOPNAME_PUTPAGE,        sffs_putpage,
    2340 # endif
    2341 
    2342         NULL,                   NULL
    2343 #else
    23442385        VOPNAME_ACCESS,         { .vop_access = sffs_access },
    23452386        VOPNAME_CLOSE,          { .vop_close = sffs_close },
     
    23742415
    23752416        NULL,                   NULL
    2376 #endif
    23772417};
    23782418
Note: See TracChangeset for help on using the changeset viewer.

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