VirtualBox

Changeset 39295 in vbox


Ignore:
Timestamp:
Nov 14, 2011 12:43:15 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
74846
Message:

Additions/solaris/SharedFolders: code refactor, no functional changes.

File:
1 edited

Legend:

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

    r39278 r39295  
    385385
    386386/*
    387  * get information about a file (or directory)
     387 * file/directory information conversions.
    388388 */
     389static void
     390sfprov_fmode_from_mode(RTFMODE *fMode, mode_t mode)
     391{
     392        RTFMODE m = 0;
     393
     394#define mode_set(r) ((mode & (S_##r)) ? RTFS_UNIX_##r : 0)
     395        m  = mode_set (ISUID);
     396        m |= mode_set (ISGID);
     397        m |= (mode & S_ISVTX) ? RTFS_UNIX_ISTXT : 0;
     398        m |= mode_set (IRUSR);
     399        m |= mode_set (IWUSR);
     400        m |= mode_set (IXUSR);
     401        m |= mode_set (IRGRP);
     402        m |= mode_set (IWGRP);
     403        m |= mode_set (IXGRP);
     404        m |= mode_set (IROTH);
     405        m |= mode_set (IWOTH);
     406        m |= mode_set (IXOTH);
     407
     408        if (S_ISDIR(mode))
     409                m |= RTFS_TYPE_DIRECTORY;
     410        else if (S_ISREG(mode))
     411                m |= RTFS_TYPE_FILE;
     412        else if (S_ISFIFO(mode))
     413                m |= RTFS_TYPE_FIFO;
     414        else if (S_ISCHR(mode))
     415                m |= RTFS_TYPE_DEV_CHAR;
     416        else if (S_ISBLK(mode))
     417                m |= RTFS_TYPE_DEV_BLOCK;
     418        else if (S_ISLNK(mode))
     419                m |= RTFS_TYPE_SYMLINK;
     420        else if (S_ISSOCK(mode))
     421                m |= RTFS_TYPE_SOCKET;
     422        else
     423                m |= RTFS_TYPE_FILE;
     424
     425        *fMode = m;
     426}
     427
    389428static void
    390429sfprov_mode_from_fmode(mode_t *mode, RTFMODE fMode)
     
    579618
    580619        RT_ZERO(info);
    581         if (mask & AT_MODE) {
    582 #define mode_set(r) ((mode & (S_##r)) ? RTFS_UNIX_##r : 0)
    583 
    584                 info.Attr.fMode  = mode_set (ISUID);
    585                 info.Attr.fMode |= mode_set (ISGID);
    586                 info.Attr.fMode |= (mode & S_ISVTX) ? RTFS_UNIX_ISTXT : 0;
    587                 info.Attr.fMode |= mode_set (IRUSR);
    588                 info.Attr.fMode |= mode_set (IWUSR);
    589                 info.Attr.fMode |= mode_set (IXUSR);
    590                 info.Attr.fMode |= mode_set (IRGRP);
    591                 info.Attr.fMode |= mode_set (IWGRP);
    592                 info.Attr.fMode |= mode_set (IXGRP);
    593                 info.Attr.fMode |= mode_set (IROTH);
    594                 info.Attr.fMode |= mode_set (IWOTH);
    595                 info.Attr.fMode |= mode_set (IXOTH);
    596 
    597                 if (S_ISDIR(mode))
    598                         info.Attr.fMode |= RTFS_TYPE_DIRECTORY;
    599                 else if (S_ISREG(mode))
    600                         info.Attr.fMode |= RTFS_TYPE_FILE;
    601                 else if (S_ISFIFO(mode))
    602                         info.Attr.fMode |= RTFS_TYPE_FIFO;
    603                 else if (S_ISCHR(mode))
    604                         info.Attr.fMode |= RTFS_TYPE_DEV_CHAR;
    605                 else if (S_ISBLK(mode))
    606                         info.Attr.fMode |= RTFS_TYPE_DEV_BLOCK;
    607                 else if (S_ISLNK(mode))
    608                         info.Attr.fMode |= RTFS_TYPE_SYMLINK;
    609                 else if (S_ISSOCK(mode))
    610                         info.Attr.fMode |= RTFS_TYPE_SOCKET;
    611                 else
    612                         info.Attr.fMode |= RTFS_TYPE_FILE;
    613         }
    614 
     620        if (mask & AT_MODE)
     621                sfprov_fmode_from_mode(&info.Attr.fMode, mode);
    615622        if (mask & AT_ATIME)
    616623                sfprov_timespec_from_ftime(&info.AccessTime, atime);
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