File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change 210
210
*
211
211
* 7.39
212
212
* - add FUSE_DIRECT_IO_RELAX
213
+ * - add FUSE_STATX and related structures
213
214
*/
214
215
215
216
#ifndef _LINUX_FUSE_H
@@ -272,6 +273,40 @@ struct fuse_attr {
272
273
uint32_t flags ;
273
274
};
274
275
276
+ /*
277
+ * The following structures are bit-for-bit compatible with the statx(2) ABI in
278
+ * Linux.
279
+ */
280
+ struct fuse_sx_time {
281
+ int64_t tv_sec ;
282
+ uint32_t tv_nsec ;
283
+ int32_t __reserved ;
284
+ };
285
+
286
+ struct fuse_statx {
287
+ uint32_t mask ;
288
+ uint32_t blksize ;
289
+ uint64_t attributes ;
290
+ uint32_t nlink ;
291
+ uint32_t uid ;
292
+ uint32_t gid ;
293
+ uint16_t mode ;
294
+ uint16_t __spare0 [1 ];
295
+ uint64_t ino ;
296
+ uint64_t size ;
297
+ uint64_t blocks ;
298
+ uint64_t attributes_mask ;
299
+ struct fuse_sx_time atime ;
300
+ struct fuse_sx_time btime ;
301
+ struct fuse_sx_time ctime ;
302
+ struct fuse_sx_time mtime ;
303
+ uint32_t rdev_major ;
304
+ uint32_t rdev_minor ;
305
+ uint32_t dev_major ;
306
+ uint32_t dev_minor ;
307
+ uint64_t __spare2 [14 ];
308
+ };
309
+
275
310
struct fuse_kstatfs {
276
311
uint64_t blocks ;
277
312
uint64_t bfree ;
@@ -581,6 +616,7 @@ enum fuse_opcode {
581
616
FUSE_REMOVEMAPPING = 49 ,
582
617
FUSE_SYNCFS = 50 ,
583
618
FUSE_TMPFILE = 51 ,
619
+ FUSE_STATX = 52 ,
584
620
585
621
/* CUSE specific operations */
586
622
CUSE_INIT = 4096 ,
@@ -645,6 +681,22 @@ struct fuse_attr_out {
645
681
struct fuse_attr attr ;
646
682
};
647
683
684
+ struct fuse_statx_in {
685
+ uint32_t getattr_flags ;
686
+ uint32_t reserved ;
687
+ uint64_t fh ;
688
+ uint32_t sx_flags ;
689
+ uint32_t sx_mask ;
690
+ };
691
+
692
+ struct fuse_statx_out {
693
+ uint64_t attr_valid ; /* Cache timeout for the attributes */
694
+ uint32_t attr_valid_nsec ;
695
+ uint32_t flags ;
696
+ uint64_t spare [2 ];
697
+ struct fuse_statx stat ;
698
+ };
699
+
648
700
#define FUSE_COMPAT_MKNOD_IN_SIZE 8
649
701
650
702
struct fuse_mknod_in {
You can’t perform that action at this time.
0 commit comments