1 /* fs_info.h 2 ** 3 ** functions/definitions for general file system information. 4 ** Distributed under the terms of the OpenBeOS License. 5 */ 6 7 #ifndef _FS_INFO_H 8 #define _FS_INFO_H 9 10 #include <OS.h> 11 12 13 /* fs_info.flags */ 14 #define B_FS_IS_READONLY 0x00000001 15 #define B_FS_IS_REMOVABLE 0x00000002 16 #define B_FS_IS_PERSISTENT 0x00000004 17 #define B_FS_IS_SHARED 0x00000008 18 #define B_FS_HAS_MIME 0x00010000 19 #define B_FS_HAS_ATTR 0x00020000 20 #define B_FS_HAS_QUERY 0x00040000 21 // those additions are preliminary and may be removed 22 #define B_FS_HAS_SELF_HEALING_LINKS 0x00080000 23 #define B_FS_HAS_ALIASES 0x00100000 24 #define B_FS_SUPPORTS_NODE_MONITORING 0x00200000 25 26 typedef struct fs_info { 27 dev_t dev; /* volume dev_t */ 28 ino_t root; /* root ino_t */ 29 uint32 flags; /* flags (see above) */ 30 off_t block_size; /* fundamental block size */ 31 off_t io_size; /* optimal i/o size */ 32 off_t total_blocks; /* total number of blocks */ 33 off_t free_blocks; /* number of free blocks */ 34 off_t total_nodes; /* total number of nodes */ 35 off_t free_nodes; /* number of free nodes */ 36 char device_name[128]; /* device holding fs */ 37 char volume_name[B_FILE_NAME_LENGTH]; /* volume name */ 38 char fsh_name[B_OS_NAME_LENGTH]; /* name of fs handler */ 39 } fs_info; 40 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 extern dev_t dev_for_path(const char *path); 47 extern dev_t next_dev(int32 *pos); 48 extern int fs_stat_dev(dev_t dev, fs_info *info); 49 50 #ifdef __cplusplus 51 } 52 #endif 53 54 #endif /* _FS_INFO_H */ 55