VirtualBox

Changeset 30365 in vbox for trunk/include


Ignore:
Timestamp:
Jun 22, 2010 12:08:20 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
62957
Message:

RTFsQueryType: Use an enum. Added RTFsTypeName() for translating a enum value into a string. Added more file system types.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/fs.h

    r30281 r30365  
    180180
    181181
    182 /** @name Filesystem type IDs. Used by RTFsQueryType. */
    183 #define RTFS_FS_TYPE_UNKNOWN            0
    184 #define RTFS_FS_TYPE_EXT                1
    185 #define RTFS_FS_TYPE_EXT2               2
    186 #define RTFS_FS_TYPE_EXT3               3
    187 #define RTFS_FS_TYPE_EXT4               4
    188 #define RTFS_FS_TYPE_TMPFS              5
    189 #define RTFS_FS_TYPE_JFS                6
    190 #define RTFS_FS_TYPE_NFS                7
    191 #define RTFS_FS_TYPE_HFS                8
    192 #define RTFS_FS_TYPE_CIFS               9
    193 #define RTFS_FS_TYPE_FAT               10
    194 #define RTFS_FS_TYPE_NTFS              11
    195 #define RTFS_FS_TYPE_ZFS               12
    196 #define RTFS_FS_TYPE_XFS               13
    197 #define RTFS_FS_TYPE_AUTOFS            14
    198 #define RTFS_FS_TYPE_DEVFS             15
     182/**
     183 * Filesystem type IDs returned by RTFsQueryType.
     184 *
     185 * This enum is subject to changes and must not be used as part of any ABI or
     186 * binary format (file, network, etc).
     187 *
     188 * @remarks When adding new entries, please update RTFsTypeName().  Also, try
     189 *          add them to the most natural group.
     190 */
     191typedef enum RTFSTYPE
     192{
     193    /** Unknown file system. */
     194    RTFSTYPE_UNKNOWN = 0,
     195
     196    /** Universal Disk Format. */
     197    RTFSTYPE_UDF,
     198    /** ISO 9660, aka Compact Disc File System (CDFS). */
     199    RTFSTYPE_ISO9660,
     200    /** Filesystem in Userspace. */
     201    RTFSTYPE_FUSE,
     202    /** VirtualBox shared folders.  */
     203    RTFSTYPE_VBOXSHF,
     204
     205    /* Linux: */
     206    RTFSTYPE_EXT,
     207    RTFSTYPE_EXT2,
     208    RTFSTYPE_EXT3,
     209    RTFSTYPE_EXT4,
     210    RTFSTYPE_XFS,
     211    RTFSTYPE_CIFS,
     212    RTFSTYPE_SMBFS,
     213    RTFSTYPE_TMPFS,
     214    RTFSTYPE_SYSFS,
     215    RTFSTYPE_PROC,
     216
     217    /* Windows: */
     218    /** New Technology File System. */
     219    RTFSTYPE_NTFS,
     220    /** FAT12, FAT16 and FAT32 lumped into one basket.
     221     * The partition size limit of FAT12 and FAT16 will be the factor
     222     * limiting the file size (except, perhaps for the 64KB cluster case on
     223     * non-Windows hosts). */
     224    RTFSTYPE_FAT,
     225
     226    /* Solaris: */
     227    /** Zettabyte File System.  */
     228    RTFSTYPE_ZFS,
     229    /** Unix File System. */
     230    RTFSTYPE_UFS,
     231    /** Network File System. */
     232    RTFSTYPE_NFS,
     233
     234    /* Mac OS X: */
     235    /** Hierarchical File System. */
     236    RTFSTYPE_HFS,
     237    /** @todo RTFSTYPE_HFS_PLUS? */
     238    RTFSTYPE_AUTOFS,
     239    RTFSTYPE_DEVFS,
     240
     241    /* *BSD: */
     242
     243    /* OS/2: */
     244    /** High Performance File System. */
     245    RTFSTYPE_HPFS,
     246    /** Journaled File System (v2).  */
     247    RTFSTYPE_JFS,
     248
     249    /** The end of valid Filesystem types IDs. */
     250    RTFSTYPE_END,
     251    /** The usual 32-bit type blow up. */
     252    RTFSTYPE_32BIT_HACK = 0x7fffffff
     253} RTFSTYPE;
     254/** Pointer to a Filesystem type ID. */
     255typedef RTFSTYPE *PRTFSTYPE;
    199256
    200257
     
    408465 *
    409466 * @returns iprt status code.
    410  * @param   pszFsPath       Path within the mounted filesystem.
    411  *                          In case this is a symlink, the file it refers to
    412  *                          is evaluated.
    413  * @param   pu32Type        Where to store the filesystem type.
    414  *                          See RTFS_FS_TYPE_xxx constants.
    415  */
    416 RTR3DECL(int) RTFsQueryType(const char *pszFsPath, uint32_t *pu32Type);
     467 * @param   pszFsPath       Path within the mounted filesystem.  It must exist.
     468 *                          In case this is a symlink, the file it refers to is
     469 *                          evaluated.
     470 * @param   penmType        Where to store the filesystem type, this is always
     471 *                          set.  See RTFSTYPE for the values.
     472 */
     473RTR3DECL(int) RTFsQueryType(const char *pszFsPath, PRTFSTYPE penmType);
    417474
    418475#endif /* IN_RING3 */
     476
     477/**
     478 * Gets the name of a filesystem type.
     479 *
     480 * @returns Pointer to a read-only string containing the name.
     481 * @param   enmType         A valid filesystem ID.  If outside the valid range,
     482 *                          the returned string will be pointing to a static
     483 *                          memory buffer which will be changed on subsequent
     484 *                          calls to this function by any thread.
     485 */
     486RTDECL(const char *) RTFsTypeName(RTFSTYPE enmType);
    419487
    420488/**
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