aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/fuse.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/fuse.h')
-rw-r--r--include/uapi/linux/fuse.h29
1 files changed, 26 insertions, 3 deletions
diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
index 60bb2f9f7b74..40b5ca8a1b1f 100644
--- a/include/uapi/linux/fuse.h
+++ b/include/uapi/linux/fuse.h
@@ -93,6 +93,14 @@
93 * 93 *
94 * 7.22 94 * 7.22
95 * - add FUSE_ASYNC_DIO 95 * - add FUSE_ASYNC_DIO
96 *
97 * 7.23
98 * - add FUSE_WRITEBACK_CACHE
99 * - add time_gran to fuse_init_out
100 * - add reserved space to fuse_init_out
101 * - add FATTR_CTIME
102 * - add ctime and ctimensec to fuse_setattr_in
103 * - add FUSE_RENAME2 request
96 */ 104 */
97 105
98#ifndef _LINUX_FUSE_H 106#ifndef _LINUX_FUSE_H
@@ -128,7 +136,7 @@
128#define FUSE_KERNEL_VERSION 7 136#define FUSE_KERNEL_VERSION 7
129 137
130/** Minor version number of this interface */ 138/** Minor version number of this interface */
131#define FUSE_KERNEL_MINOR_VERSION 22 139#define FUSE_KERNEL_MINOR_VERSION 23
132 140
133/** The node ID of the root inode */ 141/** The node ID of the root inode */
134#define FUSE_ROOT_ID 1 142#define FUSE_ROOT_ID 1
@@ -188,6 +196,7 @@ struct fuse_file_lock {
188#define FATTR_ATIME_NOW (1 << 7) 196#define FATTR_ATIME_NOW (1 << 7)
189#define FATTR_MTIME_NOW (1 << 8) 197#define FATTR_MTIME_NOW (1 << 8)
190#define FATTR_LOCKOWNER (1 << 9) 198#define FATTR_LOCKOWNER (1 << 9)
199#define FATTR_CTIME (1 << 10)
191 200
192/** 201/**
193 * Flags returned by the OPEN request 202 * Flags returned by the OPEN request
@@ -219,6 +228,7 @@ struct fuse_file_lock {
219 * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one) 228 * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one)
220 * FUSE_READDIRPLUS_AUTO: adaptive readdirplus 229 * FUSE_READDIRPLUS_AUTO: adaptive readdirplus
221 * FUSE_ASYNC_DIO: asynchronous direct I/O submission 230 * FUSE_ASYNC_DIO: asynchronous direct I/O submission
231 * FUSE_WRITEBACK_CACHE: use writeback cache for buffered writes
222 */ 232 */
223#define FUSE_ASYNC_READ (1 << 0) 233#define FUSE_ASYNC_READ (1 << 0)
224#define FUSE_POSIX_LOCKS (1 << 1) 234#define FUSE_POSIX_LOCKS (1 << 1)
@@ -236,6 +246,7 @@ struct fuse_file_lock {
236#define FUSE_DO_READDIRPLUS (1 << 13) 246#define FUSE_DO_READDIRPLUS (1 << 13)
237#define FUSE_READDIRPLUS_AUTO (1 << 14) 247#define FUSE_READDIRPLUS_AUTO (1 << 14)
238#define FUSE_ASYNC_DIO (1 << 15) 248#define FUSE_ASYNC_DIO (1 << 15)
249#define FUSE_WRITEBACK_CACHE (1 << 16)
239 250
240/** 251/**
241 * CUSE INIT request/reply flags 252 * CUSE INIT request/reply flags
@@ -343,6 +354,7 @@ enum fuse_opcode {
343 FUSE_BATCH_FORGET = 42, 354 FUSE_BATCH_FORGET = 42,
344 FUSE_FALLOCATE = 43, 355 FUSE_FALLOCATE = 43,
345 FUSE_READDIRPLUS = 44, 356 FUSE_READDIRPLUS = 44,
357 FUSE_RENAME2 = 45,
346 358
347 /* CUSE specific operations */ 359 /* CUSE specific operations */
348 CUSE_INIT = 4096, 360 CUSE_INIT = 4096,
@@ -421,6 +433,12 @@ struct fuse_rename_in {
421 uint64_t newdir; 433 uint64_t newdir;
422}; 434};
423 435
436struct fuse_rename2_in {
437 uint64_t newdir;
438 uint32_t flags;
439 uint32_t padding;
440};
441
424struct fuse_link_in { 442struct fuse_link_in {
425 uint64_t oldnodeid; 443 uint64_t oldnodeid;
426}; 444};
@@ -433,10 +451,10 @@ struct fuse_setattr_in {
433 uint64_t lock_owner; 451 uint64_t lock_owner;
434 uint64_t atime; 452 uint64_t atime;
435 uint64_t mtime; 453 uint64_t mtime;
436 uint64_t unused2; 454 uint64_t ctime;
437 uint32_t atimensec; 455 uint32_t atimensec;
438 uint32_t mtimensec; 456 uint32_t mtimensec;
439 uint32_t unused3; 457 uint32_t ctimensec;
440 uint32_t mode; 458 uint32_t mode;
441 uint32_t unused4; 459 uint32_t unused4;
442 uint32_t uid; 460 uint32_t uid;
@@ -554,6 +572,9 @@ struct fuse_init_in {
554 uint32_t flags; 572 uint32_t flags;
555}; 573};
556 574
575#define FUSE_COMPAT_INIT_OUT_SIZE 8
576#define FUSE_COMPAT_22_INIT_OUT_SIZE 24
577
557struct fuse_init_out { 578struct fuse_init_out {
558 uint32_t major; 579 uint32_t major;
559 uint32_t minor; 580 uint32_t minor;
@@ -562,6 +583,8 @@ struct fuse_init_out {
562 uint16_t max_background; 583 uint16_t max_background;
563 uint16_t congestion_threshold; 584 uint16_t congestion_threshold;
564 uint32_t max_write; 585 uint32_t max_write;
586 uint32_t time_gran;
587 uint32_t unused[9];
565}; 588};
566 589
567#define CUSE_INIT_INFO_MAX 4096 590#define CUSE_INIT_INFO_MAX 4096