| Included in: | fcfs_newobj.c |
| fcfs_readobj.c | |
| fcfs_updateobj.c | |
| fcfs_vfs.h | |
| mkfs.c | |
| mount_testkit.c | |
| onode.c | |
| onode_index.c | |
| space_bitmap.c | |
| super_block.c | |
| volinfo.c |
#define __SHRT_MAX__ 32767
#define __INT_MAX__ 2147483647
#define __LONG_MAX__ 2147483647L
#define __LONG_LONG_MAX__ 9223372036854775807LL
#define __WCHAR_MAX__ 2147483647
#define __FLT_MIN_10_EXP__ -37
#define __FLT_MAX__ 3.40282347e+38F
#define __FLT_MIN__ 1.17549435e-38F
#define __FLT_EPSILON__ 1.19209290e-7F
#define __FLT_DENORM_MIN__ 1.40129846e-45F
#define __DBL_MIN_EXP__ -1021
#define __DBL_MIN_10_EXP__ -307
#define __DBL_MAX_10_EXP__ 308
#define __DBL_MAX__ 1.7976931348623157e+308
#define __DBL_MIN__ 2.2250738585072014e-308
#define __DBL_EPSILON__ 2.2204460492503131e-16
#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
#define __LDBL_MIN_EXP__ -1021
#define __LDBL_MIN_10_EXP__ -307
#define __LDBL_MAX_10_EXP__ 308
#define __LDBL_MAX__ 1.7976931348623157e+308L
#define __LDBL_MIN__ 2.2250738585072014e-308L
#define __LDBL_EPSILON__ 2.2204460492503131e-16L
#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
#define __VERSION__ "3.3.2 (Debian)"
#define __FINITE_MATH_ONLY__ 0
#define __FCFS_SUPER_BLOCK_H__
#define FCFS_SB_MAGIC1 0x46436673
#define FCFS_SB_VERSION1 0x00010001
#define FCFS_SB_BITS 0x00000040
#define FCFS_SB_MAGIC2 0x3f8ec2a1
#define FCFS_ONODE_MAGIC1 0x4f4e6f4465563101ULL
#define FSFS_ONODE1_SPACE_LEAF_MAXNR 10
#define FCFS_FORK_SMALL_DATA_SIZE 112
| struct fcfs_block_run | |
| { | |
| u32 allocation_group; | Allocation group |
| u32 start; | Start Block |
| u32 len; | Length (blocks) |
| } |
| enum fcfs_sb_flags | |
| { | |
| FCFS_FLAG_SBLocation1; | Three flags make number |
| FCFS_FLAG_SBLocation2; | see: enum fcfs_sb_location |
| FCFS_FLAG_SBLocation3; | |
| FCFS_FLAG_Dirty; | Was uncleanly unmounted |
| FCFS_FLAG_Experimental; | Has been written by experimental code |
| FCFS_FLAG_JournalMeta; | Journal meta-data |
| FCFS_FLAG_JournalData; | Journal all data writes |
| FCFS_FLAG_Versioned; | Is versioned system |
| } |
| enum fcfs_sb_location | |
| { | |
| FCFS_SBloc_start_volume; | Start of volume |
| FCFS_SBloc_start_ag; | Start of allocation group |
| FCFS_SBloc_end_volume; | Final block of volume |
| } |
| union space_tracking | |
| { | |
| char padding[50]; | |
| } |
| struct fcfs_sb | |
| { | |
| u32 magic1; | first magic number. |
| u32 version; | version of FS |
| u32 bits; | number of bits to use as a 'base' bits. (64 default) |
| u32 sblength; | length of sb (bytes) |
| u64 flags; | |
| u32 bsize; | block size (bytes) |
| u64 blocksnr; | number of blocks |
| char name[128]; | human readable name of volume |
| u32 magic2; | magic2 |
| u32 allocation_groupsnr; | Number of alloction groups on volume |
| u32 ag_blocksnr; | Blocks per allocation group |
| u64 num_mounts; | Number of successful read/write mounts |
| u64 num_dirtymounts; | Num dirty mounts |
| u64 time_created; | Time volume created |
| u64 time_clean; | Time volume last unmounted cleanly |
| u64 time_dirtymount; | Time volume last mounted dirty |
| u64 onode_index_blocknr; | Where we find our primary index |
| u64 onindex_num_onodes; | Num onodes in index |
| u64 onindex_used; | Num of used inodes in index |
| u64 onindex_free; | Num of free onodes in index |
| u64 onindex_next_id; | Next ID to use |
| u32 onindex_node_size; | In number of keys |
| union space_tracking | |
| { | |
| char padding[50]; | |
| } | |
| space; | |
| } |
| enum fcfs_onode_flags | |
| { | |
| FCFS_OFLAG_NoVersion; | Don't version track this onode |
| FCFS_OFLAG_ForkLeaf; | We have a fork leaf, not a node |
| } |
| struct fcfs_onode1_space_leaf | |
| { | |
| char nr; | |
| struct fcfs_block_run br[10]; | |
| } |
| struct fcfs_onode1_space_node | |
| { | |
| u64 offset[7]; | |
| u64 block[7]; | |
| } |
| enum fcfs_fork_flags | |
| { | |
| FCFS_FORK_InForkData; | We have data, not space nodes |
| FCFS_FORK_SpaceNode; | Space is node, not leaf |
| } |
| union space | |
| { | |
| struct fcfs_onode1_space_leaf leaf; | |
| struct fcfs_onode1_space_node node; | |
| } |
| union data | |
| { | |
| union space | |
| { | |
| struct fcfs_onode1_space_leaf leaf; | |
| struct fcfs_onode1_space_node node; | |
| } | |
| space; | |
| char small_data[112]; | I wish this was neater, as part of the leaf |
| } |
| struct fcfs_fork | |
| { | |
| u64 fork_type; | |
| u64 fork_flags; | |
| u64 content_length; | |
| union data | |
| { | |
| union space | |
| { | |
| struct fcfs_onode1_space_leaf leaf; | |
| struct fcfs_onode1_space_node node; | |
| } | |
| space; | |
| char small_data[112]; | I wish this was neater, as part of the leaf |
| } | |
| data; | |
| } |
| struct fcfs_fork_leaf | |
| { | |
| char nr; | |
| struct fcfs_fork fork[10]; | |
| } |
| struct fcfs_fork_node | |
| { | |
| u64 offset[7]; | |
| u64 block[7]; | |
| } |
| union forks | |
| { | |
| struct fcfs_fork_leaf leaf; | |
| struct fcfs_fork_node node; | |
| } |
| struct fcfs_onode1 | |
| { | |
| u64 magic1; | Identify as O-Node |
| u64 onode_num; | FS Specific Unique ID |
| u64 onode_revision; | Revision of onode |
| u64 flags; | fcfs_onode_flags |
| u64 use_count; | Reference Counter (for indicies) |
| u32 onode_size; | Length of o-node structure. |
| union forks | |
| { | |
| struct fcfs_fork_leaf leaf; | |
| struct fcfs_fork_node node; | |
| } | |
| forks; | |
| char small_space[1]; | used for in-onode data (or metadata) |
| } |