aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/coda.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/coda.h')
-rw-r--r--include/uapi/linux/coda.h56
1 files changed, 38 insertions, 18 deletions
diff --git a/include/uapi/linux/coda.h b/include/uapi/linux/coda.h
index 695fade33c64..aa34c2dcae8d 100644
--- a/include/uapi/linux/coda.h
+++ b/include/uapi/linux/coda.h
@@ -86,10 +86,6 @@ typedef unsigned long long u_quad_t;
86 86
87#define inline 87#define inline
88 88
89struct timespec {
90 long ts_sec;
91 long ts_nsec;
92};
93#else /* DJGPP but not KERNEL */ 89#else /* DJGPP but not KERNEL */
94#include <sys/time.h> 90#include <sys/time.h>
95typedef unsigned long long u_quad_t; 91typedef unsigned long long u_quad_t;
@@ -110,13 +106,6 @@ typedef unsigned long long u_quad_t;
110#define cdev_t dev_t 106#define cdev_t dev_t
111#endif 107#endif
112 108
113#ifdef __CYGWIN32__
114struct timespec {
115 time_t tv_sec; /* seconds */
116 long tv_nsec; /* nanoseconds */
117};
118#endif
119
120#ifndef __BIT_TYPES_DEFINED__ 109#ifndef __BIT_TYPES_DEFINED__
121#define __BIT_TYPES_DEFINED__ 110#define __BIT_TYPES_DEFINED__
122typedef signed char int8_t; 111typedef signed char int8_t;
@@ -211,6 +200,11 @@ struct CodaFid {
211 */ 200 */
212enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD }; 201enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD };
213 202
203struct coda_timespec {
204 int64_t tv_sec; /* seconds */
205 long tv_nsec; /* nanoseconds */
206};
207
214struct coda_vattr { 208struct coda_vattr {
215 long va_type; /* vnode type (for create) */ 209 long va_type; /* vnode type (for create) */
216 u_short va_mode; /* files access mode and type */ 210 u_short va_mode; /* files access mode and type */
@@ -220,9 +214,9 @@ struct coda_vattr {
220 long va_fileid; /* file id */ 214 long va_fileid; /* file id */
221 u_quad_t va_size; /* file size in bytes */ 215 u_quad_t va_size; /* file size in bytes */
222 long va_blocksize; /* blocksize preferred for i/o */ 216 long va_blocksize; /* blocksize preferred for i/o */
223 struct timespec va_atime; /* time of last access */ 217 struct coda_timespec va_atime; /* time of last access */
224 struct timespec va_mtime; /* time of last modification */ 218 struct coda_timespec va_mtime; /* time of last modification */
225 struct timespec va_ctime; /* time file changed */ 219 struct coda_timespec va_ctime; /* time file changed */
226 u_long va_gen; /* generation number of file */ 220 u_long va_gen; /* generation number of file */
227 u_long va_flags; /* flags defined for file */ 221 u_long va_flags; /* flags defined for file */
228 cdev_t va_rdev; /* device special file represents */ 222 cdev_t va_rdev; /* device special file represents */
@@ -277,7 +271,8 @@ struct coda_statfs {
277#define CODA_STATFS 34 271#define CODA_STATFS 34
278#define CODA_STORE 35 272#define CODA_STORE 35
279#define CODA_RELEASE 36 273#define CODA_RELEASE 36
280#define CODA_NCALLS 37 274#define CODA_ACCESS_INTENT 37
275#define CODA_NCALLS 38
281 276
282#define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID) 277#define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID)
283 278
@@ -287,7 +282,12 @@ struct coda_statfs {
287 282
288#define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t) 283#define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t)
289 284
290#define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */ 285// CODA_KERNEL_VERSION 0 /* don't care about kernel version number */
286// CODA_KERNEL_VERSION 1 /* The old venus 4.6 compatible interface */
287// CODA_KERNEL_VERSION 2 /* venus_lookup gets an extra parameter */
288// CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */
289// CODA_KERNEL_VERSION 4 /* 64-bit timespec */
290#define CODA_KERNEL_VERSION 5 /* access intent support */
291 291
292/* 292/*
293 * Venus <-> Coda RPC arguments 293 * Venus <-> Coda RPC arguments
@@ -295,8 +295,8 @@ struct coda_statfs {
295struct coda_in_hdr { 295struct coda_in_hdr {
296 u_int32_t opcode; 296 u_int32_t opcode;
297 u_int32_t unique; /* Keep multiple outstanding msgs distinct */ 297 u_int32_t unique; /* Keep multiple outstanding msgs distinct */
298 pid_t pid; 298 __kernel_pid_t pid;
299 pid_t pgid; 299 __kernel_pid_t pgid;
300 vuid_t uid; 300 vuid_t uid;
301}; 301};
302 302
@@ -642,6 +642,25 @@ struct coda_statfs_out {
642 struct coda_statfs stat; 642 struct coda_statfs stat;
643}; 643};
644 644
645#define CODA_ACCESS_TYPE_READ 1
646#define CODA_ACCESS_TYPE_WRITE 2
647#define CODA_ACCESS_TYPE_MMAP 3
648#define CODA_ACCESS_TYPE_READ_FINISH 4
649#define CODA_ACCESS_TYPE_WRITE_FINISH 5
650
651/* coda_access_intent: NO_OUT */
652struct coda_access_intent_in {
653 struct coda_in_hdr ih;
654 struct CodaFid VFid;
655 int count;
656 int pos;
657 int type;
658};
659
660struct coda_access_intent_out {
661 struct coda_out_hdr out;
662};
663
645/* 664/*
646 * Occasionally, we don't cache the fid returned by CODA_LOOKUP. 665 * Occasionally, we don't cache the fid returned by CODA_LOOKUP.
647 * For instance, if the fid is inconsistent. 666 * For instance, if the fid is inconsistent.
@@ -673,6 +692,7 @@ union inputArgs {
673 struct coda_open_by_fd_in coda_open_by_fd; 692 struct coda_open_by_fd_in coda_open_by_fd;
674 struct coda_open_by_path_in coda_open_by_path; 693 struct coda_open_by_path_in coda_open_by_path;
675 struct coda_statfs_in coda_statfs; 694 struct coda_statfs_in coda_statfs;
695 struct coda_access_intent_in coda_access_intent;
676}; 696};
677 697
678union outputArgs { 698union outputArgs {