This source file includes following definitions.
- bstat_get_projid
1
2
3
4
5
6 #ifndef __XFS_FS_H__
7 #define __XFS_FS_H__
8
9
10
11
12
13
14
15
16
17
18 #ifndef HAVE_DIOATTR
19 struct dioattr {
20 __u32 d_mem;
21 __u32 d_miniosz;
22 __u32 d_maxiosz;
23 };
24 #endif
25
26
27
28
29
30
31
32
33 #ifndef HAVE_GETBMAP
34 struct getbmap {
35 __s64 bmv_offset;
36 __s64 bmv_block;
37 __s64 bmv_length;
38 __s32 bmv_count;
39 __s32 bmv_entries;
40 };
41 #endif
42
43
44
45
46
47
48
49
50
51
52 #ifndef HAVE_GETBMAPX
53 struct getbmapx {
54 __s64 bmv_offset;
55 __s64 bmv_block;
56 __s64 bmv_length;
57 __s32 bmv_count;
58 __s32 bmv_entries;
59 __s32 bmv_iflags;
60 __s32 bmv_oflags;
61 __s32 bmv_unused1;
62 __s32 bmv_unused2;
63 };
64 #endif
65
66
67 #define BMV_IF_ATTRFORK 0x1
68 #define BMV_IF_NO_DMAPI_READ 0x2
69 #define BMV_IF_PREALLOC 0x4
70 #define BMV_IF_DELALLOC 0x8
71 #define BMV_IF_NO_HOLES 0x10
72 #define BMV_IF_COWFORK 0x20
73 #define BMV_IF_VALID \
74 (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC| \
75 BMV_IF_DELALLOC|BMV_IF_NO_HOLES|BMV_IF_COWFORK)
76
77
78 #define BMV_OF_PREALLOC 0x1
79 #define BMV_OF_DELALLOC 0x2
80 #define BMV_OF_LAST 0x4
81 #define BMV_OF_SHARED 0x8
82
83
84 #define XFS_FMR_OWN_FREE FMR_OWN_FREE
85 #define XFS_FMR_OWN_UNKNOWN FMR_OWN_UNKNOWN
86 #define XFS_FMR_OWN_FS FMR_OWNER('X', 1)
87 #define XFS_FMR_OWN_LOG FMR_OWNER('X', 2)
88 #define XFS_FMR_OWN_AG FMR_OWNER('X', 3)
89 #define XFS_FMR_OWN_INOBT FMR_OWNER('X', 4)
90 #define XFS_FMR_OWN_INODES FMR_OWNER('X', 5)
91 #define XFS_FMR_OWN_REFC FMR_OWNER('X', 6)
92 #define XFS_FMR_OWN_COW FMR_OWNER('X', 7)
93 #define XFS_FMR_OWN_DEFECTIVE FMR_OWNER('X', 8)
94
95
96
97
98
99
100
101
102 #ifndef HAVE_FSDMIDATA
103 struct fsdmidata {
104 __u32 fsd_dmevmask;
105 __u16 fsd_padding;
106 __u16 fsd_dmstate;
107 };
108 #endif
109
110
111
112
113
114 typedef struct xfs_flock64 {
115 __s16 l_type;
116 __s16 l_whence;
117 __s64 l_start;
118 __s64 l_len;
119 __s32 l_sysid;
120 __u32 l_pid;
121 __s32 l_pad[4];
122 } xfs_flock64_t;
123
124
125
126
127 struct xfs_fsop_geom_v1 {
128 __u32 blocksize;
129 __u32 rtextsize;
130 __u32 agblocks;
131 __u32 agcount;
132 __u32 logblocks;
133 __u32 sectsize;
134 __u32 inodesize;
135 __u32 imaxpct;
136 __u64 datablocks;
137 __u64 rtblocks;
138 __u64 rtextents;
139 __u64 logstart;
140 unsigned char uuid[16];
141 __u32 sunit;
142 __u32 swidth;
143 __s32 version;
144 __u32 flags;
145 __u32 logsectsize;
146 __u32 rtsectsize;
147 __u32 dirblocksize;
148 };
149
150
151
152
153 struct xfs_fsop_geom_v4 {
154 __u32 blocksize;
155 __u32 rtextsize;
156 __u32 agblocks;
157 __u32 agcount;
158 __u32 logblocks;
159 __u32 sectsize;
160 __u32 inodesize;
161 __u32 imaxpct;
162 __u64 datablocks;
163 __u64 rtblocks;
164 __u64 rtextents;
165 __u64 logstart;
166 unsigned char uuid[16];
167 __u32 sunit;
168 __u32 swidth;
169 __s32 version;
170 __u32 flags;
171 __u32 logsectsize;
172 __u32 rtsectsize;
173 __u32 dirblocksize;
174 __u32 logsunit;
175 };
176
177
178
179
180 struct xfs_fsop_geom {
181 __u32 blocksize;
182 __u32 rtextsize;
183 __u32 agblocks;
184 __u32 agcount;
185 __u32 logblocks;
186 __u32 sectsize;
187 __u32 inodesize;
188 __u32 imaxpct;
189 __u64 datablocks;
190 __u64 rtblocks;
191 __u64 rtextents;
192 __u64 logstart;
193 unsigned char uuid[16];
194 __u32 sunit;
195 __u32 swidth;
196 __s32 version;
197 __u32 flags;
198 __u32 logsectsize;
199 __u32 rtsectsize;
200 __u32 dirblocksize;
201 __u32 logsunit;
202 uint32_t sick;
203 uint32_t checked;
204 __u64 reserved[17];
205 };
206
207 #define XFS_FSOP_GEOM_SICK_COUNTERS (1 << 0)
208 #define XFS_FSOP_GEOM_SICK_UQUOTA (1 << 1)
209 #define XFS_FSOP_GEOM_SICK_GQUOTA (1 << 2)
210 #define XFS_FSOP_GEOM_SICK_PQUOTA (1 << 3)
211 #define XFS_FSOP_GEOM_SICK_RT_BITMAP (1 << 4)
212 #define XFS_FSOP_GEOM_SICK_RT_SUMMARY (1 << 5)
213
214
215 typedef struct xfs_fsop_counts {
216 __u64 freedata;
217 __u64 freertx;
218 __u64 freeino;
219 __u64 allocino;
220 } xfs_fsop_counts_t;
221
222
223 typedef struct xfs_fsop_resblks {
224 __u64 resblks;
225 __u64 resblks_avail;
226 } xfs_fsop_resblks_t;
227
228 #define XFS_FSOP_GEOM_VERSION 0
229 #define XFS_FSOP_GEOM_VERSION_V5 5
230
231 #define XFS_FSOP_GEOM_FLAGS_ATTR (1 << 0)
232 #define XFS_FSOP_GEOM_FLAGS_NLINK (1 << 1)
233 #define XFS_FSOP_GEOM_FLAGS_QUOTA (1 << 2)
234 #define XFS_FSOP_GEOM_FLAGS_IALIGN (1 << 3)
235 #define XFS_FSOP_GEOM_FLAGS_DALIGN (1 << 4)
236 #define XFS_FSOP_GEOM_FLAGS_SHARED (1 << 5)
237 #define XFS_FSOP_GEOM_FLAGS_EXTFLG (1 << 6)
238 #define XFS_FSOP_GEOM_FLAGS_DIRV2 (1 << 7)
239 #define XFS_FSOP_GEOM_FLAGS_LOGV2 (1 << 8)
240 #define XFS_FSOP_GEOM_FLAGS_SECTOR (1 << 9)
241 #define XFS_FSOP_GEOM_FLAGS_ATTR2 (1 << 10)
242 #define XFS_FSOP_GEOM_FLAGS_PROJID32 (1 << 11)
243 #define XFS_FSOP_GEOM_FLAGS_DIRV2CI (1 << 12)
244
245 #define XFS_FSOP_GEOM_FLAGS_LAZYSB (1 << 14)
246 #define XFS_FSOP_GEOM_FLAGS_V5SB (1 << 15)
247 #define XFS_FSOP_GEOM_FLAGS_FTYPE (1 << 16)
248 #define XFS_FSOP_GEOM_FLAGS_FINOBT (1 << 17)
249 #define XFS_FSOP_GEOM_FLAGS_SPINODES (1 << 18)
250 #define XFS_FSOP_GEOM_FLAGS_RMAPBT (1 << 19)
251 #define XFS_FSOP_GEOM_FLAGS_REFLINK (1 << 20)
252
253
254
255
256
257
258 #define XFS_MIN_AG_BLOCKS 64
259 #define XFS_MIN_LOG_BLOCKS 512ULL
260 #define XFS_MAX_LOG_BLOCKS (1024 * 1024ULL)
261 #define XFS_MIN_LOG_BYTES (10 * 1024 * 1024ULL)
262
263
264
265
266
267 #define XFS_MIN_AG_BYTES (1ULL << 24)
268 #define XFS_MAX_AG_BYTES (1ULL << 40)
269
270
271 #define XFS_MAX_LOG_BYTES \
272 ((2 * 1024 * 1024 * 1024ULL) - XFS_MIN_LOG_BYTES)
273
274
275 #define XFS_MAX_DBLOCKS(s) ((xfs_rfsblock_t)(s)->sb_agcount * (s)->sb_agblocks)
276 #define XFS_MIN_DBLOCKS(s) ((xfs_rfsblock_t)((s)->sb_agcount - 1) * \
277 (s)->sb_agblocks + XFS_MIN_AG_BLOCKS)
278
279
280
281
282 struct xfs_ag_geometry {
283 uint32_t ag_number;
284 uint32_t ag_length;
285 uint32_t ag_freeblks;
286 uint32_t ag_icount;
287 uint32_t ag_ifree;
288 uint32_t ag_sick;
289 uint32_t ag_checked;
290 uint32_t ag_flags;
291 uint64_t ag_reserved[12];
292 };
293 #define XFS_AG_GEOM_SICK_SB (1 << 0)
294 #define XFS_AG_GEOM_SICK_AGF (1 << 1)
295 #define XFS_AG_GEOM_SICK_AGFL (1 << 2)
296 #define XFS_AG_GEOM_SICK_AGI (1 << 3)
297 #define XFS_AG_GEOM_SICK_BNOBT (1 << 4)
298 #define XFS_AG_GEOM_SICK_CNTBT (1 << 5)
299 #define XFS_AG_GEOM_SICK_INOBT (1 << 6)
300 #define XFS_AG_GEOM_SICK_FINOBT (1 << 7)
301 #define XFS_AG_GEOM_SICK_RMAPBT (1 << 8)
302 #define XFS_AG_GEOM_SICK_REFCNTBT (1 << 9)
303
304
305
306
307 typedef struct xfs_growfs_data {
308 __u64 newblocks;
309 __u32 imaxpct;
310 } xfs_growfs_data_t;
311
312 typedef struct xfs_growfs_log {
313 __u32 newblocks;
314 __u32 isint;
315 } xfs_growfs_log_t;
316
317 typedef struct xfs_growfs_rt {
318 __u64 newblocks;
319 __u32 extsize;
320 } xfs_growfs_rt_t;
321
322
323
324
325
326 typedef struct xfs_bstime {
327 time_t tv_sec;
328 __s32 tv_nsec;
329 } xfs_bstime_t;
330
331 struct xfs_bstat {
332 __u64 bs_ino;
333 __u16 bs_mode;
334 __u16 bs_nlink;
335 __u32 bs_uid;
336 __u32 bs_gid;
337 __u32 bs_rdev;
338 __s32 bs_blksize;
339 __s64 bs_size;
340 xfs_bstime_t bs_atime;
341 xfs_bstime_t bs_mtime;
342 xfs_bstime_t bs_ctime;
343 int64_t bs_blocks;
344 __u32 bs_xflags;
345 __s32 bs_extsize;
346 __s32 bs_extents;
347 __u32 bs_gen;
348 __u16 bs_projid_lo;
349 #define bs_projid bs_projid_lo
350 __u16 bs_forkoff;
351 __u16 bs_projid_hi;
352 uint16_t bs_sick;
353 uint16_t bs_checked;
354 unsigned char bs_pad[2];
355 __u32 bs_cowextsize;
356 __u32 bs_dmevmask;
357 __u16 bs_dmstate;
358 __u16 bs_aextents;
359 };
360
361
362 struct xfs_bulkstat {
363 uint64_t bs_ino;
364 uint64_t bs_size;
365
366 uint64_t bs_blocks;
367 uint64_t bs_xflags;
368
369 int64_t bs_atime;
370 int64_t bs_mtime;
371
372 int64_t bs_ctime;
373 int64_t bs_btime;
374
375 uint32_t bs_gen;
376 uint32_t bs_uid;
377 uint32_t bs_gid;
378 uint32_t bs_projectid;
379
380 uint32_t bs_atime_nsec;
381 uint32_t bs_mtime_nsec;
382 uint32_t bs_ctime_nsec;
383 uint32_t bs_btime_nsec;
384
385 uint32_t bs_blksize;
386 uint32_t bs_rdev;
387 uint32_t bs_cowextsize_blks;
388 uint32_t bs_extsize_blks;
389
390 uint32_t bs_nlink;
391 uint32_t bs_extents;
392 uint32_t bs_aextents;
393 uint16_t bs_version;
394 uint16_t bs_forkoff;
395
396 uint16_t bs_sick;
397 uint16_t bs_checked;
398 uint16_t bs_mode;
399 uint16_t bs_pad2;
400
401 uint64_t bs_pad[7];
402 };
403
404 #define XFS_BULKSTAT_VERSION_V1 (1)
405 #define XFS_BULKSTAT_VERSION_V5 (5)
406
407
408 #define XFS_BS_SICK_INODE (1 << 0)
409 #define XFS_BS_SICK_BMBTD (1 << 1)
410 #define XFS_BS_SICK_BMBTA (1 << 2)
411 #define XFS_BS_SICK_BMBTC (1 << 3)
412 #define XFS_BS_SICK_DIR (1 << 4)
413 #define XFS_BS_SICK_XATTR (1 << 5)
414 #define XFS_BS_SICK_SYMLINK (1 << 6)
415 #define XFS_BS_SICK_PARENT (1 << 7)
416
417
418
419
420
421
422 static inline uint32_t
423 bstat_get_projid(const struct xfs_bstat *bs)
424 {
425 return (uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo;
426 }
427
428
429
430
431 struct xfs_fsop_bulkreq {
432 __u64 __user *lastip;
433 __s32 icount;
434 void __user *ubuffer;
435 __s32 __user *ocount;
436 };
437
438
439
440
441 struct xfs_inogrp {
442 __u64 xi_startino;
443 __s32 xi_alloccount;
444 __u64 xi_allocmask;
445 };
446
447
448 struct xfs_inumbers {
449 uint64_t xi_startino;
450 uint64_t xi_allocmask;
451 uint8_t xi_alloccount;
452 uint8_t xi_version;
453 uint8_t xi_padding[6];
454 };
455
456 #define XFS_INUMBERS_VERSION_V1 (1)
457 #define XFS_INUMBERS_VERSION_V5 (5)
458
459
460 struct xfs_bulk_ireq {
461 uint64_t ino;
462 uint32_t flags;
463 uint32_t icount;
464 uint32_t ocount;
465 uint32_t agno;
466 uint64_t reserved[5];
467 };
468
469
470
471
472
473 #define XFS_BULK_IREQ_AGNO (1 << 0)
474
475
476
477
478
479
480 #define XFS_BULK_IREQ_SPECIAL (1 << 1)
481
482 #define XFS_BULK_IREQ_FLAGS_ALL (XFS_BULK_IREQ_AGNO | \
483 XFS_BULK_IREQ_SPECIAL)
484
485
486 #define XFS_BULK_IREQ_SPECIAL_ROOT (1)
487
488
489
490
491 struct xfs_bulkstat_req {
492 struct xfs_bulk_ireq hdr;
493 struct xfs_bulkstat bulkstat[];
494 };
495 #define XFS_BULKSTAT_REQ_SIZE(nr) (sizeof(struct xfs_bulkstat_req) + \
496 (nr) * sizeof(struct xfs_bulkstat))
497
498 struct xfs_inumbers_req {
499 struct xfs_bulk_ireq hdr;
500 struct xfs_inumbers inumbers[];
501 };
502 #define XFS_INUMBERS_REQ_SIZE(nr) (sizeof(struct xfs_inumbers_req) + \
503 (nr) * sizeof(struct xfs_inumbers))
504
505
506
507
508 typedef struct xfs_error_injection {
509 __s32 fd;
510 __s32 errtag;
511 } xfs_error_injection_t;
512
513
514
515
516
517 #define XFS_EOFBLOCKS_VERSION 1
518 struct xfs_fs_eofblocks {
519 __u32 eof_version;
520 __u32 eof_flags;
521 uid_t eof_uid;
522 gid_t eof_gid;
523 prid_t eof_prid;
524 __u32 pad32;
525 __u64 eof_min_file_size;
526 __u64 pad64[12];
527 };
528
529
530 #define XFS_EOF_FLAGS_SYNC (1 << 0)
531 #define XFS_EOF_FLAGS_UID (1 << 1)
532 #define XFS_EOF_FLAGS_GID (1 << 2)
533 #define XFS_EOF_FLAGS_PRID (1 << 3)
534 #define XFS_EOF_FLAGS_MINFILESIZE (1 << 4)
535 #define XFS_EOF_FLAGS_UNION (1 << 5)
536
537
538 #define XFS_EOF_FLAGS_VALID \
539 (XFS_EOF_FLAGS_SYNC | \
540 XFS_EOF_FLAGS_UID | \
541 XFS_EOF_FLAGS_GID | \
542 XFS_EOF_FLAGS_PRID | \
543 XFS_EOF_FLAGS_MINFILESIZE)
544
545
546
547
548
549 typedef struct xfs_fsop_handlereq {
550 __u32 fd;
551 void __user *path;
552 __u32 oflags;
553 void __user *ihandle;
554 __u32 ihandlen;
555 void __user *ohandle;
556 __u32 __user *ohandlen;
557 } xfs_fsop_handlereq_t;
558
559
560
561
562
563
564
565
566 typedef struct xfs_fsop_setdm_handlereq {
567 struct xfs_fsop_handlereq hreq;
568 struct fsdmidata __user *data;
569 } xfs_fsop_setdm_handlereq_t;
570
571 typedef struct xfs_attrlist_cursor {
572 __u32 opaque[4];
573 } xfs_attrlist_cursor_t;
574
575 typedef struct xfs_fsop_attrlist_handlereq {
576 struct xfs_fsop_handlereq hreq;
577 struct xfs_attrlist_cursor pos;
578 __u32 flags;
579 __u32 buflen;
580 void __user *buffer;
581 } xfs_fsop_attrlist_handlereq_t;
582
583 typedef struct xfs_attr_multiop {
584 __u32 am_opcode;
585 #define ATTR_OP_GET 1
586 #define ATTR_OP_SET 2
587 #define ATTR_OP_REMOVE 3
588 __s32 am_error;
589 void __user *am_attrname;
590 void __user *am_attrvalue;
591 __u32 am_length;
592 __u32 am_flags;
593 } xfs_attr_multiop_t;
594
595 typedef struct xfs_fsop_attrmulti_handlereq {
596 struct xfs_fsop_handlereq hreq;
597 __u32 opcount;
598 struct xfs_attr_multiop __user *ops;
599 } xfs_fsop_attrmulti_handlereq_t;
600
601
602
603
604 typedef struct { __u32 val[2]; } xfs_fsid_t;
605
606 typedef struct xfs_fid {
607 __u16 fid_len;
608 __u16 fid_pad;
609 __u32 fid_gen;
610 __u64 fid_ino;
611 } xfs_fid_t;
612
613 typedef struct xfs_handle {
614 union {
615 __s64 align;
616 xfs_fsid_t _ha_fsid;
617 } ha_u;
618 xfs_fid_t ha_fid;
619 } xfs_handle_t;
620 #define ha_fsid ha_u._ha_fsid
621
622
623
624
625 typedef struct xfs_swapext
626 {
627 int64_t sx_version;
628 #define XFS_SX_VERSION 0
629 int64_t sx_fdtarget;
630 int64_t sx_fdtmp;
631 xfs_off_t sx_offset;
632 xfs_off_t sx_length;
633 char sx_pad[16];
634 struct xfs_bstat sx_stat;
635 } xfs_swapext_t;
636
637
638
639
640 #define XFS_FSOP_GOING_FLAGS_DEFAULT 0x0
641 #define XFS_FSOP_GOING_FLAGS_LOGFLUSH 0x1
642 #define XFS_FSOP_GOING_FLAGS_NOLOGFLUSH 0x2
643
644
645 struct xfs_scrub_metadata {
646 __u32 sm_type;
647 __u32 sm_flags;
648 __u64 sm_ino;
649 __u32 sm_gen;
650 __u32 sm_agno;
651 __u64 sm_reserved[5];
652 };
653
654
655
656
657
658
659 #define XFS_SCRUB_TYPE_PROBE 0
660 #define XFS_SCRUB_TYPE_SB 1
661 #define XFS_SCRUB_TYPE_AGF 2
662 #define XFS_SCRUB_TYPE_AGFL 3
663 #define XFS_SCRUB_TYPE_AGI 4
664 #define XFS_SCRUB_TYPE_BNOBT 5
665 #define XFS_SCRUB_TYPE_CNTBT 6
666 #define XFS_SCRUB_TYPE_INOBT 7
667 #define XFS_SCRUB_TYPE_FINOBT 8
668 #define XFS_SCRUB_TYPE_RMAPBT 9
669 #define XFS_SCRUB_TYPE_REFCNTBT 10
670 #define XFS_SCRUB_TYPE_INODE 11
671 #define XFS_SCRUB_TYPE_BMBTD 12
672 #define XFS_SCRUB_TYPE_BMBTA 13
673 #define XFS_SCRUB_TYPE_BMBTC 14
674 #define XFS_SCRUB_TYPE_DIR 15
675 #define XFS_SCRUB_TYPE_XATTR 16
676 #define XFS_SCRUB_TYPE_SYMLINK 17
677 #define XFS_SCRUB_TYPE_PARENT 18
678 #define XFS_SCRUB_TYPE_RTBITMAP 19
679 #define XFS_SCRUB_TYPE_RTSUM 20
680 #define XFS_SCRUB_TYPE_UQUOTA 21
681 #define XFS_SCRUB_TYPE_GQUOTA 22
682 #define XFS_SCRUB_TYPE_PQUOTA 23
683 #define XFS_SCRUB_TYPE_FSCOUNTERS 24
684
685
686 #define XFS_SCRUB_TYPE_NR 25
687
688
689 #define XFS_SCRUB_IFLAG_REPAIR (1 << 0)
690
691
692 #define XFS_SCRUB_OFLAG_CORRUPT (1 << 1)
693
694
695
696
697
698 #define XFS_SCRUB_OFLAG_PREEN (1 << 2)
699
700
701 #define XFS_SCRUB_OFLAG_XFAIL (1 << 3)
702
703
704 #define XFS_SCRUB_OFLAG_XCORRUPT (1 << 4)
705
706
707 #define XFS_SCRUB_OFLAG_INCOMPLETE (1 << 5)
708
709
710 #define XFS_SCRUB_OFLAG_WARNING (1 << 6)
711
712
713
714
715
716 #define XFS_SCRUB_OFLAG_NO_REPAIR_NEEDED (1 << 7)
717
718 #define XFS_SCRUB_FLAGS_IN (XFS_SCRUB_IFLAG_REPAIR)
719 #define XFS_SCRUB_FLAGS_OUT (XFS_SCRUB_OFLAG_CORRUPT | \
720 XFS_SCRUB_OFLAG_PREEN | \
721 XFS_SCRUB_OFLAG_XFAIL | \
722 XFS_SCRUB_OFLAG_XCORRUPT | \
723 XFS_SCRUB_OFLAG_INCOMPLETE | \
724 XFS_SCRUB_OFLAG_WARNING | \
725 XFS_SCRUB_OFLAG_NO_REPAIR_NEEDED)
726 #define XFS_SCRUB_FLAGS_ALL (XFS_SCRUB_FLAGS_IN | XFS_SCRUB_FLAGS_OUT)
727
728
729
730
731 #ifdef XATTR_LIST_MAX
732 # define XFS_XATTR_LIST_MAX XATTR_LIST_MAX
733 #else
734 # define XFS_XATTR_LIST_MAX 65536
735 #endif
736
737
738
739
740
741 #define XFS_IOC_GETXFLAGS FS_IOC_GETFLAGS
742 #define XFS_IOC_SETXFLAGS FS_IOC_SETFLAGS
743 #define XFS_IOC_GETVERSION FS_IOC_GETVERSION
744
745
746
747
748
749
750 #define XFS_IOC_ALLOCSP _IOW ('X', 10, struct xfs_flock64)
751 #define XFS_IOC_FREESP _IOW ('X', 11, struct xfs_flock64)
752 #define XFS_IOC_DIOINFO _IOR ('X', 30, struct dioattr)
753 #define XFS_IOC_FSGETXATTR FS_IOC_FSGETXATTR
754 #define XFS_IOC_FSSETXATTR FS_IOC_FSSETXATTR
755 #define XFS_IOC_ALLOCSP64 _IOW ('X', 36, struct xfs_flock64)
756 #define XFS_IOC_FREESP64 _IOW ('X', 37, struct xfs_flock64)
757 #define XFS_IOC_GETBMAP _IOWR('X', 38, struct getbmap)
758 #define XFS_IOC_FSSETDM _IOW ('X', 39, struct fsdmidata)
759 #define XFS_IOC_RESVSP _IOW ('X', 40, struct xfs_flock64)
760 #define XFS_IOC_UNRESVSP _IOW ('X', 41, struct xfs_flock64)
761 #define XFS_IOC_RESVSP64 _IOW ('X', 42, struct xfs_flock64)
762 #define XFS_IOC_UNRESVSP64 _IOW ('X', 43, struct xfs_flock64)
763 #define XFS_IOC_GETBMAPA _IOWR('X', 44, struct getbmap)
764 #define XFS_IOC_FSGETXATTRA _IOR ('X', 45, struct fsxattr)
765
766
767 #define XFS_IOC_GETBMAPX _IOWR('X', 56, struct getbmap)
768 #define XFS_IOC_ZERO_RANGE _IOW ('X', 57, struct xfs_flock64)
769 #define XFS_IOC_FREE_EOFBLOCKS _IOR ('X', 58, struct xfs_fs_eofblocks)
770
771 #define XFS_IOC_SCRUB_METADATA _IOWR('X', 60, struct xfs_scrub_metadata)
772 #define XFS_IOC_AG_GEOMETRY _IOWR('X', 61, struct xfs_ag_geometry)
773
774
775
776
777 #define XFS_IOC_FSGEOMETRY_V1 _IOR ('X', 100, struct xfs_fsop_geom_v1)
778 #define XFS_IOC_FSBULKSTAT _IOWR('X', 101, struct xfs_fsop_bulkreq)
779 #define XFS_IOC_FSBULKSTAT_SINGLE _IOWR('X', 102, struct xfs_fsop_bulkreq)
780 #define XFS_IOC_FSINUMBERS _IOWR('X', 103, struct xfs_fsop_bulkreq)
781 #define XFS_IOC_PATH_TO_FSHANDLE _IOWR('X', 104, struct xfs_fsop_handlereq)
782 #define XFS_IOC_PATH_TO_HANDLE _IOWR('X', 105, struct xfs_fsop_handlereq)
783 #define XFS_IOC_FD_TO_HANDLE _IOWR('X', 106, struct xfs_fsop_handlereq)
784 #define XFS_IOC_OPEN_BY_HANDLE _IOWR('X', 107, struct xfs_fsop_handlereq)
785 #define XFS_IOC_READLINK_BY_HANDLE _IOWR('X', 108, struct xfs_fsop_handlereq)
786 #define XFS_IOC_SWAPEXT _IOWR('X', 109, struct xfs_swapext)
787 #define XFS_IOC_FSGROWFSDATA _IOW ('X', 110, struct xfs_growfs_data)
788 #define XFS_IOC_FSGROWFSLOG _IOW ('X', 111, struct xfs_growfs_log)
789 #define XFS_IOC_FSGROWFSRT _IOW ('X', 112, struct xfs_growfs_rt)
790 #define XFS_IOC_FSCOUNTS _IOR ('X', 113, struct xfs_fsop_counts)
791 #define XFS_IOC_SET_RESBLKS _IOWR('X', 114, struct xfs_fsop_resblks)
792 #define XFS_IOC_GET_RESBLKS _IOR ('X', 115, struct xfs_fsop_resblks)
793 #define XFS_IOC_ERROR_INJECTION _IOW ('X', 116, struct xfs_error_injection)
794 #define XFS_IOC_ERROR_CLEARALL _IOW ('X', 117, struct xfs_error_injection)
795
796
797 #define XFS_IOC_FREEZE _IOWR('X', 119, int)
798 #define XFS_IOC_THAW _IOWR('X', 120, int)
799
800 #define XFS_IOC_FSSETDM_BY_HANDLE _IOW ('X', 121, struct xfs_fsop_setdm_handlereq)
801 #define XFS_IOC_ATTRLIST_BY_HANDLE _IOW ('X', 122, struct xfs_fsop_attrlist_handlereq)
802 #define XFS_IOC_ATTRMULTI_BY_HANDLE _IOW ('X', 123, struct xfs_fsop_attrmulti_handlereq)
803 #define XFS_IOC_FSGEOMETRY_V4 _IOR ('X', 124, struct xfs_fsop_geom_v4)
804 #define XFS_IOC_GOINGDOWN _IOR ('X', 125, uint32_t)
805 #define XFS_IOC_FSGEOMETRY _IOR ('X', 126, struct xfs_fsop_geom)
806 #define XFS_IOC_BULKSTAT _IOR ('X', 127, struct xfs_bulkstat_req)
807 #define XFS_IOC_INUMBERS _IOR ('X', 128, struct xfs_inumbers_req)
808
809
810
811 #ifndef HAVE_BBMACROS
812
813
814
815
816
817 #define BBSHIFT 9
818 #define BBSIZE (1<<BBSHIFT)
819 #define BBMASK (BBSIZE-1)
820 #define BTOBB(bytes) (((__u64)(bytes) + BBSIZE - 1) >> BBSHIFT)
821 #define BTOBBT(bytes) ((__u64)(bytes) >> BBSHIFT)
822 #define BBTOB(bbs) ((bbs) << BBSHIFT)
823 #endif
824
825 #endif