FILE
rock.h
File preview with syntax highlighting.
linux-6.19.14/fs/isofs/rock.h
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * These structs are used by the system-use-sharing protocol, in which the 4 * Rock Ridge extensions are embedded. It is quite possible that other 5 * extensions are present on the disk, and this is fine as long as they 6 * all use SUSP 7 */ 8 9struct SU_SP_s { 10 __u8 magic[2]; 11 __u8 skip; 12} __attribute__ ((packed)); 13 14struct SU_CE_s { 15 __u8 extent[8]; 16 __u8 offset[8]; 17 __u8 size[8]; 18}; 19 20struct SU_ER_s { 21 __u8 len_id; 22 __u8 len_des; 23 __u8 len_src; 24 __u8 ext_ver; 25 __u8 data[]; 26} __attribute__ ((packed)); 27 28struct RR_RR_s { 29 __u8 flags[1]; 30} __attribute__ ((packed)); 31 32struct RR_PX_s { 33 __u8 mode[8]; 34 __u8 n_links[8]; 35 __u8 uid[8]; 36 __u8 gid[8]; 37}; 38 39struct RR_PN_s { 40 __u8 dev_high[8]; 41 __u8 dev_low[8]; 42}; 43 44struct SL_component { 45 __u8 flags; 46 __u8 len; 47 __u8 text[] __counted_by(len); 48} __attribute__ ((packed)); 49 50struct RR_SL_s { 51 __u8 flags; 52 struct SL_component link; 53} __attribute__ ((packed)); 54 55struct RR_NM_s { 56 __u8 flags; 57 char name[]; 58} __attribute__ ((packed)); 59 60struct RR_CL_s { 61 __u8 location[8]; 62}; 63 64struct RR_PL_s { 65 __u8 location[8]; 66}; 67 68struct RR_TF_s { 69 __u8 flags; 70 __u8 data[]; 71} __attribute__ ((packed)); 72 73/* Linux-specific extension for transparent decompression */ 74struct RR_ZF_s { 75 __u8 algorithm[2]; 76 __u8 parms[2]; 77 __u8 real_size[8]; 78}; 79 80/* 81 * These are the bits and their meanings for flags in the TF structure. 82 */ 83#define TF_CREATE 1 84#define TF_MODIFY 2 85#define TF_ACCESS 4 86#define TF_ATTRIBUTES 8 87#define TF_BACKUP 16 88#define TF_EXPIRATION 32 89#define TF_EFFECTIVE 64 90#define TF_LONG_FORM 128 91 92struct rock_ridge { 93 __u8 signature[2]; 94 __u8 len; 95 __u8 version; 96 union { 97 struct SU_SP_s SP; 98 struct SU_CE_s CE; 99 struct SU_ER_s ER; 100 struct RR_RR_s RR; 101 struct RR_PX_s PX; 102 struct RR_PN_s PN; 103 struct RR_SL_s SL; 104 struct RR_NM_s NM; 105 struct RR_CL_s CL; 106 struct RR_PL_s PL; 107 struct RR_TF_s TF; 108 struct RR_ZF_s ZF; 109 } u; 110}; 111 112#define RR_PX 1 /* POSIX attributes */ 113#define RR_PN 2 /* POSIX devices */ 114#define RR_SL 4 /* Symbolic link */ 115#define RR_NM 8 /* Alternate Name */ 116#define RR_CL 16 /* Child link */ 117#define RR_PL 32 /* Parent link */ 118#define RR_RE 64 /* Relocation directory */ 119#define RR_TF 128 /* Timestamps */
~/
Read-only file preview.