Lines Matching +full:node +full:- +full:version
1 /* SPDX-License-Identifier: GPL-2.0+ */
5 * Copyright (C) 2006-2008 Nokia Corporation.
12 * This file describes UBIFS on-flash format and contains definitions of all the
15 * All UBIFS on-flash objects are stored in the form of nodes. All nodes start
16 * with the UBIFS node magic number and have the same common header. Nodes
17 * always sit at 8-byte aligned positions on the media and node header sizes are
18 * also 8-byte aligned (except for the indexing node and the padding node).
24 /* UBIFS node magic number (must not have the padding byte first or last) */
28 * UBIFS on-flash format version. This version is increased when the on-flash
34 * UBIFS went into mainline kernel with format version 4. The older formats
40 * Read-only compatibility version. If the UBIFS format is changed, older UBIFS
41 * implementations will not be able to mount newer formats in read-write mode.
43 * in R/O mode. This is indicated by the R/O compatibility version which is
44 * stored in the super-block.
46 * This is needed to support boot-loaders which only need R/O mounting. With
48 * boot-loaders.
67 * node uncompress, because it'll be read faster.
74 /* Lowest inode number used for regular inodes (not UBIFS-only internal ones) */
87 * Size of UBIFS data block. Note, UBIFS is not a block oriented file-system,
90 * the maximum amount of data which one data node can have or which can be
91 * attached to an inode node.
96 /* UBIFS padding byte pattern (must not be first or last byte of node magic) */
108 /* Maximum number of levels in UBIFS indexing B-tree */
134 * LEB Properties Tree node types.
136 * UBIFS_LPT_PNODE: LPT leaf node (contains LEB properties)
137 * UBIFS_LPT_NNODE: LPT internal node
140 * UBIFS_LPT_NODE_CNT: count of LPT node types
141 * UBIFS_LPT_NOT_A_NODE: all ones (15 for 4 bits) is never a valid node type
149 UBIFS_LPT_NOT_A_NODE = (1 << UBIFS_LPT_TYPE_BITS) - 1,
158 * UBIFS_ITYPE_BLK: block device node
159 * UBIFS_ITYPE_CHR: character device node
207 * UBIFS_INO_KEY: inode node key
208 * UBIFS_DATA_KEY: data node key
209 * UBIFS_DENT_KEY: directory entry node key
237 * the smallest volume size which can be used for UBIFS cannot be pre-defined
238 * by these constants. The file-system that meets the below limitation will not
239 * necessarily mount. UBIFS does run-time calculations and validates the FS
264 /* Node sizes (N.B. these are guaranteed to be multiples of 8) */
282 /* Maximum node sizes (N.B. these are guaranteed to be multiples of 8) */
288 /* The largest UBIFS node */
292 * On-flash inode flags.
301 * Note, these are on-flash flags which correspond to ioctl flags
333 * UBIFS node types.
335 * UBIFS_INO_NODE: inode node
336 * UBIFS_DATA_NODE: data node
337 * UBIFS_DENT_NODE: directory entry node
338 * UBIFS_XENT_NODE: extended attribute node
339 * UBIFS_TRUN_NODE: truncation node
340 * UBIFS_PAD_NODE: padding node
341 * UBIFS_SB_NODE: superblock node
342 * UBIFS_MST_NODE: master node
343 * UBIFS_REF_NODE: LEB reference node
344 * UBIFS_IDX_NODE: index node
345 * UBIFS_CS_NODE: commit start node
346 * UBIFS_ORPH_NODE: orphan node
347 * UBIFS_NODE_TYPES_CNT: count of supported node types
350 * Node type constants for inodes, direntries and so on have to be the same as
370 * Master node flags.
372 * UBIFS_MST_DIRTY: rebooted uncleanly - master node is dirty
383 * Node group type (used by recovery to recover whole group or none).
385 * UBIFS_NO_NODE_GROUP: this node is not part of a group
386 * UBIFS_IN_NODE_GROUP: this node is a part of a group
387 * UBIFS_LAST_OF_NODE_GROUP: this node is the last in a group
399 * UBIFS_FLG_SPACE_FIXUP: first-mount "fixup" of free space within LEBs needed
407 * struct ubifs_ch - common header node.
408 * @magic: UBIFS node magic number (%UBIFS_NODE_MAGIC)
409 * @crc: CRC-32 checksum of the node header
411 * @len: full node length
412 * @node_type: node type
413 * @group_type: node group type
416 * Every UBIFS node starts with this common part. If the node has a key, the
430 * union ubifs_dev_desc - device node descriptor.
434 * This data structure describes major/minor numbers of a device node. In an
435 * inode is a device node then its data contains an object of this type. UBIFS
436 * uses standard Linux "new" and "huge" device node encodings.
444 * struct ubifs_ino_node - inode node.
446 * @key: node key
459 * @flags: per-inode flags (%UBIFS_COMPR_FL, %UBIFS_SYNC_FL, etc)
471 * nodes of this inode may be compressed with different compressor - this
505 * struct ubifs_dent_node - directory entry node.
507 * @key: node key
513 * @name: zero-terminated name
534 * struct ubifs_data_node - data node.
536 * @key: node key
555 * struct ubifs_trun_node - truncation node.
562 * This node exists only in the journal and never goes to the main area. Note,
575 * struct ubifs_pad_node - padding node.
577 * @pad_len: how many bytes after this node are unused (because padded)
586 * struct ubifs_sb_node - superblock node.
591 * @flags: file-system flags (%UBIFS_FLG_BIGLPT, etc)
594 * @leb_cnt: count of LEBs used by file-system
595 * @max_leb_cnt: maximum count of LEBs used by file-system
601 * @fanout: tree fanout (max. number of links per indexing node)
603 * @fmt_version: UBIFS on-flash format version
612 * @ro_compat_version: UBIFS R/O compatibility version
644 * struct ubifs_mst_node - master node.
650 * @root_lnum: LEB number of the root indexing node
652 * @root_len: root indexing node length
653 * @gc_lnum: LEB reserved for garbage collection (%-1 value means the LEB was
674 * @leb_cnt: count of LEBs used by file-system
711 * struct ubifs_ref_node - logical eraseblock reference node.
727 * struct ubifs_branch - key/reference/length branch
728 * @lnum: LEB number of the target node
730 * @len: target node length
745 * struct ubifs_idx_node - indexing node.
763 * struct ubifs_cs_node - commit start node.
773 * struct ubifs_orph_node - orphan node.
775 * @cmt_no: commit number (also top bit is set on the last node of the commit)