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) |
} |