include/linux/qnx6_fs.h

Source file repositories/reference/linux-study-clean/include/linux/qnx6_fs.h

File Facts

System
Linux kernel
Corpus path
include/linux/qnx6_fs.h
Extension
.h
Size
3349 bytes
Lines
136
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct qnx6_inode_entry {
	__fs64		di_size;
	__fs32		di_uid;
	__fs32		di_gid;
	__fs32		di_ftime;
	__fs32		di_mtime;
	__fs32		di_atime;
	__fs32		di_ctime;
	__fs16		di_mode;
	__fs16		di_ext_mode;
	__fs32		di_block_ptr[QNX6_NO_DIRECT_POINTERS];
	__u8		di_filelevels;
	__u8		di_status;
	__u8		di_unknown2[2];
	__fs32		di_zero2[6];
};

/*
 * Each directory entry is maximum 32 bytes long.
 * If more characters or special characters required it is stored
 * in the longfilenames structure.
 */
struct qnx6_dir_entry {
	__fs32		de_inode;
	__u8		de_size;
	char		de_fname[QNX6_SHORT_NAME_MAX];
};

/*
 * Longfilename direntries have a different structure
 */
struct qnx6_long_dir_entry {
	__fs32		de_inode;
	__u8		de_size;
	__u8		de_unknown[3];
	__fs32		de_long_inode;
	__fs32		de_checksum;
};

struct qnx6_long_filename {
	__fs16		lf_size;
	__u8		lf_fname[QNX6_LONG_NAME_MAX];
};

struct qnx6_root_node {
	__fs64		size;
	__fs32		ptr[QNX6_NO_DIRECT_POINTERS];
	__u8		levels;
	__u8		mode;
	__u8		spare[6];
};

struct qnx6_super_block {
	__fs32		sb_magic;
	__fs32		sb_checksum;
	__fs64		sb_serial;
	__fs32		sb_ctime;	/* time the fs was created */
	__fs32		sb_atime;	/* last access time */
	__fs32		sb_flags;
	__fs16		sb_version1;	/* filesystem version information */
	__fs16		sb_version2;	/* filesystem version information */
	__u8		sb_volumeid[16];
	__fs32		sb_blocksize;
	__fs32		sb_num_inodes;
	__fs32		sb_free_inodes;
	__fs32		sb_num_blocks;
	__fs32		sb_free_blocks;
	__fs32		sb_allocgroup;
	struct qnx6_root_node Inode;
	struct qnx6_root_node Bitmap;
	struct qnx6_root_node Longfile;
	struct qnx6_root_node Unknown;
};

/* Audi MMI 3G superblock layout is different to plain qnx6 */
struct qnx6_mmi_super_block {
	__fs32		sb_magic;
	__fs32		sb_checksum;
	__fs64		sb_serial;
	__u8		sb_spare0[12];
	__u8		sb_id[12];
	__fs32		sb_blocksize;
	__fs32		sb_num_inodes;
	__fs32		sb_free_inodes;
	__fs32		sb_num_blocks;
	__fs32		sb_free_blocks;
	__u8		sb_spare1[4];
	struct qnx6_root_node Inode;
	struct qnx6_root_node Bitmap;
	struct qnx6_root_node Longfile;

Annotation

Implementation Notes