Logo Search packages:      
Sourcecode: virtualbox-ose version File versions  Download package

fs.h File Reference


Detailed Description

IPRT - Filesystem.

Definition in file fs.h.

#include <iprt/cdefs.h>
#include <iprt/types.h>
#include <iprt/time.h>

Go to the source code of this file.

Classes

struct  RTFSOBJATTR
union  RTFSOBJATTR::RTFSOBJATTRUNION
struct  RTFSOBJATTR::RTFSOBJATTRUNION::RTFSOBJATTREASIZE
struct  RTFSOBJATTR::RTFSOBJATTRUNION::RTFSOBJATTRUNIX
struct  RTFSOBJINFO
struct  RTFSPROPERTIES

Defines

Filesystem Object Mode Flags.
There are two sets of flags: the unix mode flags and the dos attributes.

APIs returning mode flags will provide both sets.

When specifying mode flags to any API at least one of them must be given. If one set is missing the API will synthesize it from the one given if it requires it.

Both sets match their x86 ABIs, the DOS/NT one is simply shifted up 16 bits. The DOS/NT range is bits 16 to 31 inclusively. The Unix range is bits 0 to 15 (inclusively).

#define RTFS_DOS_ARCHIVED   (0x0020U << RTFS_DOS_SHIFT)
#define RTFS_DOS_DIRECTORY   (0x0010U << RTFS_DOS_SHIFT)
#define RTFS_DOS_HIDDEN   (0x0002U << RTFS_DOS_SHIFT)
#define RTFS_DOS_MASK   (0x7fffU << RTFS_DOS_SHIFT)
#define RTFS_DOS_MASK_NT   (0x7fffU << RTFS_DOS_SHIFT)
#define RTFS_DOS_MASK_OS2   (0x003fU << RTFS_DOS_SHIFT)
#define RTFS_DOS_NT_COMPRESSED   (0x0800U << RTFS_DOS_SHIFT)
#define RTFS_DOS_NT_DEVICE   (0x0040U << RTFS_DOS_SHIFT)
#define RTFS_DOS_NT_ENCRYPTED   (0x4000U << RTFS_DOS_SHIFT)
#define RTFS_DOS_NT_NORMAL   (0x0080U << RTFS_DOS_SHIFT)
#define RTFS_DOS_NT_NOT_CONTENT_INDEXED   (0x2000U << RTFS_DOS_SHIFT)
#define RTFS_DOS_NT_OFFLINE   (0x1000U << RTFS_DOS_SHIFT)
#define RTFS_DOS_NT_REPARSE_POINT   (0x0400U << RTFS_DOS_SHIFT)
#define RTFS_DOS_NT_SPARSE_FILE   (0x0200U << RTFS_DOS_SHIFT)
#define RTFS_DOS_NT_TEMPORARY   (0x0100U << RTFS_DOS_SHIFT)
#define RTFS_DOS_READONLY   (0x0001U << RTFS_DOS_SHIFT)
#define RTFS_DOS_SHIFT   16
#define RTFS_DOS_SYSTEM   (0x0004U << RTFS_DOS_SHIFT)
#define RTFS_TYPE_DEV_BLOCK   0060000U
#define RTFS_TYPE_DEV_CHAR   0020000U
#define RTFS_TYPE_DIRECTORY   0040000U
#define RTFS_TYPE_FIFO   0010000U
#define RTFS_TYPE_FILE   0100000U
#define RTFS_TYPE_MASK   0170000U
#define RTFS_TYPE_SOCKET   0140000U
#define RTFS_TYPE_SYMLINK   0120000U
#define RTFS_TYPE_WHITEOUT   0160000U
#define RTFS_UNIX_IRGRP   0000040U
#define RTFS_UNIX_IROTH   0000004U
#define RTFS_UNIX_IRUSR   0000400U
#define RTFS_UNIX_IRWXG   0000070U
#define RTFS_UNIX_IRWXO   0000007U
#define RTFS_UNIX_IRWXU   0000700U
#define RTFS_UNIX_ISGID   0002000U
#define RTFS_UNIX_ISTXT   0001000U
#define RTFS_UNIX_ISUID   0004000U
#define RTFS_UNIX_IWGRP   0000020U
#define RTFS_UNIX_IWOTH   0000002U
#define RTFS_UNIX_IWUSR   0000200U
#define RTFS_UNIX_IXGRP   0000010U
#define RTFS_UNIX_IXOTH   0000001U
#define RTFS_UNIX_IXUSR   0000100U
#define RTFS_UNIX_MASK   0xffffU
Filesystem Object Type Predicates.
#define RTFS_IS_DEV_BLOCK(fMode)   ( ((fMode) & RTFS_TYPE_MASK) == RTFS_TYPE_DEV_BLOCK )
#define RTFS_IS_DEV_CHAR(fMode)   ( ((fMode) & RTFS_TYPE_MASK) == RTFS_TYPE_DEV_CHAR )
#define RTFS_IS_DIRECTORY(fMode)   ( ((fMode) & RTFS_TYPE_MASK) == RTFS_TYPE_DIRECTORY )
#define RTFS_IS_FIFO(fMode)   ( ((fMode) & RTFS_TYPE_MASK) == RTFS_TYPE_FIFO )
#define RTFS_IS_FILE(fMode)   ( ((fMode) & RTFS_TYPE_MASK) == RTFS_TYPE_FILE )
#define RTFS_IS_SOCKET(fMode)   ( ((fMode) & RTFS_TYPE_MASK) == RTFS_TYPE_SOCKET )
#define RTFS_IS_SYMLINK(fMode)   ( ((fMode) & RTFS_TYPE_MASK) == RTFS_TYPE_SYMLINK )
#define RTFS_IS_WHITEOUT(fMode)   ( ((fMode) & RTFS_TYPE_MASK) == RTFS_TYPE_WHITEOUT )

Typedefs

typedef const RTFSOBJATTRPCRTFSOBJATTR
typedef const RTFSOBJINFOPCRTFSOBJINFO
typedef RTFSOBJATTRPRTFSOBJATTR
typedef RTFSOBJINFOPRTFSOBJINFO
typedef RTFSPROPERTIESPRTFSPROPERTIES

Enumerations

enum  RTFSOBJATTRADD {
  RTFSOBJATTRADD_NOTHING = 1, RTFSOBJATTRADD_UNIX, RTFSOBJATTRADD_EASIZE, RTFSOBJATTRADD_LAST = RTFSOBJATTRADD_EASIZE,
  RTFSOBJATTRADD_32BIT_SIZE_HACK = 0x7fffffff
}


Generated by  Doxygen 1.6.0   Back to index