#define SEEK_SET 0/* seek relative to beginning of file */ #define SEEK_CUR 1/* seek relative to current file position */ #define SEEK_END 2/* seek relative to end of file */ #define SEEK_DATA 3/* seek to the next data */ #define SEEK_HOLE 4/* seek to the next hole */ #define SEEK_MAX SEEK_HOLE
/* Checksum types for Protection Information */ #define LBMD_PI_CSUM_NONE 0 #define LBMD_PI_CSUM_IP 1 #define LBMD_PI_CSUM_CRC16_T10DIF 2 #define LBMD_PI_CSUM_CRC64_NVME 4
/* sizeof first published struct */ #define LBMD_SIZE_VER0 16
/* *Logicalblockmetadatacapabilitydescriptor *Ifthedevicedoesnotsupportmetadata,allthefieldswillbezero. *Applicationsmustchecklbmd_flagstodeterminewhethermetadatais *supportedornot.
*/ struct logical_block_metadata_cap { /* Bitmask of logical block metadata capability flags */
__u32 lbmd_flags; /* *Theamountofdatadescribedbyeachunitoflogicalblock *metadata
*/
__u16 lbmd_interval; /* *Sizeinbytesofthelogicalblockmetadataassociatedwitheach *interval
*/
__u8 lbmd_size; /* *Sizeinbytesoftheopaqueblocktagassociatedwitheach *interval
*/
__u8 lbmd_opaque_size; /* *Offsetinbytesoftheopaqueblocktagwithinthelogicalblock *metadata
*/
__u8 lbmd_opaque_offset; /* Size in bytes of the T10 PI tuple associated with each interval */
__u8 lbmd_pi_size; /* Offset in bytes of T10 PI tuple within the logical block metadata */
__u8 lbmd_pi_offset; /* T10 PI guard tag type */
__u8 lbmd_guard_tag_type; /* Size in bytes of the T10 PI application tag */
__u8 lbmd_app_tag_size; /* Size in bytes of the T10 PI reference tag */
__u8 lbmd_ref_tag_size; /* Size in bytes of the T10 PI storage tag */
__u8 lbmd_storage_tag_size;
__u8 pad;
};
/* extent-same (dedupe) ioctls; these MUST match the btrfs ioctl definitions */ #define FILE_DEDUPE_RANGE_SAME 0 #define FILE_DEDUPE_RANGE_DIFFERS 1
/* from struct btrfs_ioctl_file_extent_same_info */ struct file_dedupe_range_info {
__s64 dest_fd; /* in - destination file */
__u64 dest_offset; /* in - start of extent in destination */
__u64 bytes_deduped; /* out - total # of bytes we were able
* to dedupe from this file. */ /* status of this dedupe operation: *<0forerror *==FILE_DEDUPE_RANGE_SAMEifdedupesucceeds *==FILE_DEDUPE_RANGE_DIFFERSifdatadiffers
*/
__s32 status; /* out - see above description */
__u32 reserved; /* must be zero */
};
/* from struct btrfs_ioctl_file_extent_same_args */ struct file_dedupe_range {
__u64 src_offset; /* in - start of extent in source */
__u64 src_length; /* in - length of extent */
__u16 dest_count; /* in - total elements in info array */
__u16 reserved1; /* must be zero */
__u32 reserved2; /* must be zero */ struct file_dedupe_range_info info[];
};
/* And dynamically-tunable limits and defaults: */ struct files_stat_struct { unsignedlong nr_files; /* read only */ unsignedlong nr_free_files; /* read only */ unsignedlong max_files; /* tunable */
};
struct inodes_stat_t { long nr_inodes; long nr_unused; long dummy[5]; /* padding for sysctl ABI compatibility */
};
#define NR_FILE 8192/* this can well be larger on a larger system */
/* *StructureforFS_IOC_FSGETXATTR[A]andFS_IOC_FSSETXATTR.
*/ struct fsxattr {
__u32 fsx_xflags; /* xflags field value (get/set) */
__u32 fsx_extsize; /* extsize field value (get/set)*/
__u32 fsx_nextents; /* nextents field value (get) */
__u32 fsx_projid; /* project identifier (get/set) */
__u32 fsx_cowextsize; /* CoW extsize field value (get/set)*/ unsignedchar fsx_pad[8];
};
/* *Variablesizestructureforfile_[sg]et_attr(). * *Note.Thisisalternativetothestructure'structfile_kattr'/'structfsxattr'. *Asthisstructureispassedto/fromuserspacewithitssize,thiscan *beversionedbasedonthesize.
*/ struct file_attr {
__u64 fa_xflags; /* xflags field value (get/set) */
__u32 fa_extsize; /* extsize field value (get/set)*/
__u32 fa_nextents; /* nextents field value (get) */
__u32 fa_projid; /* project identifier (get/set) */
__u32 fa_cowextsize; /* CoW extsize field value (get/set) */
};
/* *Flagsforthefsx_xflagsfield
*/ #define FS_XFLAG_REALTIME 0x00000001 /* data in realtime volume */ #define FS_XFLAG_PREALLOC 0x00000002 /* preallocated file extents */ #define FS_XFLAG_IMMUTABLE 0x00000008 /* file cannot be modified */ #define FS_XFLAG_APPEND 0x00000010 /* all writes append */ #define FS_XFLAG_SYNC 0x00000020 /* all writes synchronous */ #define FS_XFLAG_NOATIME 0x00000040 /* do not update access time */ #define FS_XFLAG_NODUMP 0x00000080 /* do not include in backups */ #define FS_XFLAG_RTINHERIT 0x00000100 /* create with rt bit set */ #define FS_XFLAG_PROJINHERIT 0x00000200 /* create with parents projid */ #define FS_XFLAG_NOSYMLINKS 0x00000400 /* disallow symlink creation */ #define FS_XFLAG_EXTSIZE 0x00000800 /* extent size allocator hint */ #define FS_XFLAG_EXTSZINHERIT 0x00001000 /* inherit inode extent size */ #define FS_XFLAG_NODEFRAG 0x00002000 /* do not defragment */ #define FS_XFLAG_FILESTREAM 0x00004000 /* use filestream allocator */ #define FS_XFLAG_DAX 0x00008000 /* use DAX for IO */ #define FS_XFLAG_COWEXTSIZE 0x00010000 /* CoW extent size allocator hint */ #define FS_XFLAG_HASATTR 0x80000000 /* no DIFLAG for this */
/* the read-only stuff doesn't really belong here, but any other place is
probably as bad and I don't want to create yet another include file. */
#define BLKROSET _IO(0x12,93) /* set device read-only (0 = read-write) */ #define BLKROGET _IO(0x12,94) /* get read-only status (0 = read_write) */ #define BLKRRPART _IO(0x12,95) /* re-read partition table */ #define BLKGETSIZE _IO(0x12,96) /* return device size /512 (long *arg) */ #define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */ #define BLKRASET _IO(0x12,98) /* set read ahead for block device */ #define BLKRAGET _IO(0x12,99) /* get current read ahead setting */ #define BLKFRASET _IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead */ #define BLKFRAGET _IO(0x12,101)/* get filesystem (mm/filemap.c) read-ahead */ #define BLKSECTSET _IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */ #define BLKSECTGET _IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */ #define BLKSSZGET _IO(0x12,104)/* get block device sector size */ #if0 #define BLKPG _IO(0x12,105)/* See blkpg.h */
/* Some people are morons. Do not use sizeof! */
#define BLKELVGET _IOR(0x12,106,size_t)/* elevator get */ #define BLKELVSET _IOW(0x12,107,size_t)/* elevator set */ /* This was here just to show that the number is taken -
probably all these _IO(0x12,*) ioctls should be moved to blkpg.h. */ #endif /* A jump here: 108-111 have been used for various private purposes. */ #define BLKBSZGET _IOR(0x12,112,size_t) #define BLKBSZSET _IOW(0x12,113,size_t) #define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size in bytes (u64 *arg) */ #define BLKTRACESETUP _IOWR(0x12,115,struct blk_user_trace_setup) #define BLKTRACESTART _IO(0x12,116) #define BLKTRACESTOP _IO(0x12,117) #define BLKTRACETEARDOWN _IO(0x12,118) #define BLKDISCARD _IO(0x12,119) #define BLKIOMIN _IO(0x12,120) #define BLKIOOPT _IO(0x12,121) #define BLKALIGNOFF _IO(0x12,122) #define BLKPBSZGET _IO(0x12,123) #define BLKDISCARDZEROES _IO(0x12,124) #define BLKSECDISCARD _IO(0x12,125) #define BLKROTATIONAL _IO(0x12,126) #define BLKZEROOUT _IO(0x12,127) #define BLKGETDISKSEQ _IOR(0x12,128,__u64) /* 130-136 are used by zoned block device ioctls (uapi/linux/blkzoned.h) */ /* 137-141 are used by blk-crypto ioctls (uapi/linux/blk-crypto.h) */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.