111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _CODA_HEADER_
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _CODA_HEADER_
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined(__NetBSD__) || (defined(DJGPP) || defined(__CYGWIN32__)) && !defined(KERNEL)
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <sys/types.h>
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef CODA_MAXSYMLINKS
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_MAXSYMLINKS 10
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined(DJGPP) || defined(__CYGWIN32__)
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef KERNEL
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned long u_long;
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned int u_int;
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned short u_short;
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef u_long ino_t;
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef u_long dev_t;
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void * caddr_t;
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef DOS
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned __int64 u_quad_t;
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned long long u_quad_t;
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define inline
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct timespec {
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long ts_sec;
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long ts_nsec;
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <sys/time.h>
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned long long u_quad_t;
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __linux__
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/time.h>
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define cdev_t u_quad_t
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2)
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _UQUAD_T_ 1
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned long long u_quad_t;
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define cdev_t dev_t
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __CYGWIN32__
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct timespec {
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert time_t tv_sec;
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long tv_nsec;
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __BIT_TYPES_DEFINED__
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __BIT_TYPES_DEFINED__
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef signed char int8_t;
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned char u_int8_t;
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef short int16_t;
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned short u_int16_t;
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int int32_t;
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned int u_int32_t;
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_MAXNAMLEN 255
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_MAXPATHLEN 1024
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_MAXSYMLINK 10
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_O_READ 0x001
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_O_WRITE 0x002
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_O_TRUNC 0x010
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_O_EXCL 0x100
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_O_CREAT 0x200
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_M_READ 00400
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_M_WRITE 00200
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_A_C_OK 8
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_A_R_OK 4
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_A_W_OK 2
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_A_X_OK 1
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define C_A_F_OK 0
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _VENUS_DIRENT_T_
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _VENUS_DIRENT_T_ 1
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct venus_dirent {
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int32_t d_fileno;
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int16_t d_reclen;
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int8_t d_type;
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int8_t d_namlen;
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char d_name[CODA_MAXNAMLEN + 1];
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#undef DIRSIZ
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DIRSIZ(dp) ((sizeof (struct venus_dirent) - (CODA_MAXNAMLEN+1)) +   (((dp)->d_namlen+1 + 3) &~ 3))
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDT_UNKNOWN 0
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDT_FIFO 1
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDT_CHR 2
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDT_DIR 4
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDT_BLK 6
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDT_REG 8
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDT_LNK 10
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDT_SOCK 12
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDT_WHT 14
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFTOCDT(mode) (((mode) & 0170000) >> 12)
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDTTOIF(dirtype) ((dirtype) << 12)
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _VUID_T_
12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _VUID_T_
12511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef u_int32_t vuid_t;
12611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef u_int32_t vgid_t;
12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct CodaFid {
13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int32_t opaque[4];
13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define coda_f2i(fid)  (fid ? (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^ fid->opaque[0]) : 0)
13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _VENUS_VATTR_T_
13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _VENUS_VATTR_T_
13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD };
13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_vattr {
14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long va_type;
14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_short va_mode;
14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short va_nlink;
14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vuid_t va_uid;
14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vgid_t va_gid;
14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long va_fileid;
14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_quad_t va_size;
14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long va_blocksize;
14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct timespec va_atime;
15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct timespec va_mtime;
15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct timespec va_ctime;
15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_long va_gen;
15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_long va_flags;
15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert cdev_t va_rdev;
15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_quad_t va_bytes;
15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_quad_t va_filerev;
15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_statfs {
16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int32_t f_blocks;
16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int32_t f_bfree;
16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int32_t f_bavail;
16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int32_t f_files;
16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int32_t f_ffree;
16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_ROOT 2
17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_OPEN_BY_FD 3
17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_OPEN 4
17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_CLOSE 5
17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_IOCTL 6
17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_GETATTR 7
17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_SETATTR 8
17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_ACCESS 9
17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_LOOKUP 10
17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_CREATE 11
17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_REMOVE 12
18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_LINK 13
18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_RENAME 14
18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_MKDIR 15
18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_RMDIR 16
18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_SYMLINK 18
18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_READLINK 19
18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_FSYNC 20
18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_VGET 22
18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_SIGNAL 23
18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_REPLACE 24
19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_FLUSH 25
19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_PURGEUSER 26
19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_ZAPFILE 27
19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_ZAPDIR 28
19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_PURGEFID 30
19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_OPEN_BY_PATH 31
19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_RESOLVE 32
19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_REINTEGRATE 33
19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_STATFS 34
19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_STORE 35
20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_RELEASE 36
20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_NCALLS 37
20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID)
20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VC_MAXDATASIZE 8192
20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define VC_MAXMSGSIZE sizeof(union inputArgs)+sizeof(union outputArgs) +  VC_MAXDATASIZE
20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t)
20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_KERNEL_VERSION 3
21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_in_hdr {
21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int32_t opcode;
21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int32_t unique;
21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert pid_t pid;
21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert pid_t pgid;
21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vuid_t uid;
21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_out_hdr {
22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int32_t opcode;
22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int32_t unique;
22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int32_t result;
22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_root_out {
22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_root_in {
23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr in;
23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_open_in {
23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int flags;
23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_open_out {
24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert cdev_t dev;
24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ino_t inode;
24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_store_in {
24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int flags;
25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_store_out {
25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_release_in {
25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int flags;
26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_release_out {
26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_close_in {
26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int flags;
27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_close_out {
27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_ioctl_in {
27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int cmd;
28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int len;
28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int rwflag;
28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char *data;
28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_ioctl_out {
28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int len;
28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert caddr_t data;
29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_getattr_in {
29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_getattr_out {
29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_vattr attr;
30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_setattr_in {
30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_vattr attr;
30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_setattr_out {
30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_access_in {
31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int flags;
31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_access_out {
31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLU_CASE_SENSITIVE 0x01
32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLU_CASE_INSENSITIVE 0x02
32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_lookup_in {
32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int name;
32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int flags;
33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_lookup_out {
33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int vtype;
33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_create_in {
33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_vattr attr;
34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int excl;
34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int mode;
34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int name;
34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_create_out {
34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_vattr attr;
35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_remove_in {
35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int name;
35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_remove_out {
36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_link_in {
36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid sourceFid;
36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid destFid;
36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int tname;
36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_link_out {
37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_rename_in {
37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid sourceFid;
37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int srcname;
37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid destFid;
37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int destname;
38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_rename_out {
38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_mkdir_in {
38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_vattr attr;
39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int name;
39111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
39311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_mkdir_out {
39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_vattr attr;
39711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_rmdir_in {
40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
40211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int name;
40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
40411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_rmdir_out {
40611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
40711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
40811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
40911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_symlink_in {
41011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
41111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
41211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int srcname;
41311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_vattr attr;
41411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int tname;
41511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
41611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
41711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_symlink_out {
41811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
41911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
42011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
42111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_readlink_in {
42211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
42311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
42411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
42511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
42611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_readlink_out {
42711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
42811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int count;
42911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert caddr_t data;
43011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
43111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
43211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_fsync_in {
43311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
43411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
43511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
43611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
43711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_fsync_out {
43811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr out;
43911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
44011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
44111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_vget_in {
44211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
44311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
44411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
44511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
44611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_vget_out {
44711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
44811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
44911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int vtype;
45011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
45111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
45211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_purgeuser_out {
45311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
45411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vuid_t uid;
45511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
45611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
45711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_zapfile_out {
45811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
45911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid CodaFid;
46011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
46111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
46211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_zapdir_out {
46311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
46411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid CodaFid;
46511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
46611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
46711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_purgefid_out {
46811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
46911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid CodaFid;
47011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
47111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
47211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_replace_out {
47311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
47411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid NewFid;
47511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid OldFid;
47611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
47711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
47811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_open_by_fd_in {
47911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
48011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
48111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int flags;
48211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
48311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
48411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_open_by_fd_out {
48511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
48611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int fd;
48711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
48811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
48911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
49011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_open_by_path_in {
49111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
49211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct CodaFid VFid;
49311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int flags;
49411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
49511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
49611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_open_by_path_out {
49711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
49811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int path;
49911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
50011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
50111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_statfs_in {
50211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr in;
50311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
50411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
50511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_statfs_out {
50611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
50711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_statfs stat;
50811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
50911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
51011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_NOCACHE 0x80000000
51111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
51211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertunion inputArgs {
51311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_in_hdr ih;
51411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_open_in coda_open;
51511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_store_in coda_store;
51611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_release_in coda_release;
51711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_close_in coda_close;
51811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_ioctl_in coda_ioctl;
51911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_getattr_in coda_getattr;
52011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_setattr_in coda_setattr;
52111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_access_in coda_access;
52211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_lookup_in coda_lookup;
52311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_create_in coda_create;
52411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_remove_in coda_remove;
52511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_link_in coda_link;
52611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_rename_in coda_rename;
52711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_mkdir_in coda_mkdir;
52811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_rmdir_in coda_rmdir;
52911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_symlink_in coda_symlink;
53011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_readlink_in coda_readlink;
53111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_fsync_in coda_fsync;
53211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_vget_in coda_vget;
53311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_open_by_fd_in coda_open_by_fd;
53411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_open_by_path_in coda_open_by_path;
53511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_statfs_in coda_statfs;
53611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
53711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
53811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertunion outputArgs {
53911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_out_hdr oh;
54011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_root_out coda_root;
54111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_open_out coda_open;
54211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_ioctl_out coda_ioctl;
54311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_getattr_out coda_getattr;
54411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_lookup_out coda_lookup;
54511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_create_out coda_create;
54611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_mkdir_out coda_mkdir;
54711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_readlink_out coda_readlink;
54811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_vget_out coda_vget;
54911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_purgeuser_out coda_purgeuser;
55011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_zapfile_out coda_zapfile;
55111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_zapdir_out coda_zapdir;
55211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_purgefid_out coda_purgefid;
55311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_replace_out coda_replace;
55411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_open_by_fd_out coda_open_by_fd;
55511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_open_by_path_out coda_open_by_path;
55611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_statfs_out coda_statfs;
55711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
55811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
55911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertunion coda_downcalls {
56011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
56111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_purgeuser_out purgeuser;
56211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_zapfile_out zapfile;
56311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_zapdir_out zapdir;
56411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_purgefid_out purgefid;
56511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct coda_replace_out replace;
56611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
56711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
56811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PIOCPARM_MASK 0x0000ffff
56911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ViceIoctl {
57011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *in;
57111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *out;
57211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_short in_size;
57311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_short out_size;
57411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
57511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
57611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct PioctlData {
57711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const char __user *path;
57811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int follow;
57911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct ViceIoctl vi;
58011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
58111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
58211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_CONTROL ".CONTROL"
58311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_CONTROLLEN 8
58411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CTL_INO -1
58511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
58611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CODA_MOUNT_VERSION 1
58711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
58811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct coda_mount_data {
58911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int version;
59011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int fd;
59111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
59211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
59311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
59411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
595