• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _UAPI_CODA_HEADER_
20 #define _UAPI_CODA_HEADER_
21 #if defined(__NetBSD__) || (defined(DJGPP) || defined(__CYGWIN32__)) && !defined(KERNEL)
22 #include <sys/types.h>
23 #endif
24 #ifndef CODA_MAXSYMLINKS
25 #define CODA_MAXSYMLINKS 10
26 #endif
27 #if defined(DJGPP) || defined(__CYGWIN32__)
28 #ifdef KERNEL
29 typedef unsigned long u_long;
30 typedef unsigned int u_int;
31 typedef unsigned short u_short;
32 typedef u_long ino_t;
33 typedef u_long dev_t;
34 typedef void * caddr_t;
35 #ifdef DOS
36 typedef unsigned __int64 u_quad_t;
37 #else
38 typedef unsigned long long u_quad_t;
39 #endif
40 #define inline
41 struct timespec {
42   long ts_sec;
43   long ts_nsec;
44 };
45 #else
46 #include <sys/time.h>
47 typedef unsigned long long u_quad_t;
48 #endif
49 #endif
50 #ifdef __linux__
51 #include <linux/time.h>
52 #define cdev_t u_quad_t
53 #if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2)
54 #define _UQUAD_T_ 1
55 typedef unsigned long long u_quad_t;
56 #endif
57 #else
58 #define cdev_t dev_t
59 #endif
60 #ifdef __CYGWIN32__
61 struct timespec {
62   time_t tv_sec;
63   long tv_nsec;
64 };
65 #endif
66 #ifndef __BIT_TYPES_DEFINED__
67 #define __BIT_TYPES_DEFINED__
68 typedef signed char int8_t;
69 typedef unsigned char u_int8_t;
70 typedef short int16_t;
71 typedef unsigned short u_int16_t;
72 typedef int int32_t;
73 typedef unsigned int u_int32_t;
74 #endif
75 #define CODA_MAXNAMLEN 255
76 #define CODA_MAXPATHLEN 1024
77 #define CODA_MAXSYMLINK 10
78 #define C_O_READ 0x001
79 #define C_O_WRITE 0x002
80 #define C_O_TRUNC 0x010
81 #define C_O_EXCL 0x100
82 #define C_O_CREAT 0x200
83 #define C_M_READ 00400
84 #define C_M_WRITE 00200
85 #define C_A_C_OK 8
86 #define C_A_R_OK 4
87 #define C_A_W_OK 2
88 #define C_A_X_OK 1
89 #define C_A_F_OK 0
90 #ifndef _VENUS_DIRENT_T_
91 #define _VENUS_DIRENT_T_ 1
92 struct venus_dirent {
93   u_int32_t d_fileno;
94   u_int16_t d_reclen;
95   u_int8_t d_type;
96   u_int8_t d_namlen;
97   char d_name[CODA_MAXNAMLEN + 1];
98 };
99 #undef DIRSIZ
100 #define DIRSIZ(dp) ((sizeof(struct venus_dirent) - (CODA_MAXNAMLEN + 1)) + (((dp)->d_namlen + 1 + 3) & ~3))
101 #define CDT_UNKNOWN 0
102 #define CDT_FIFO 1
103 #define CDT_CHR 2
104 #define CDT_DIR 4
105 #define CDT_BLK 6
106 #define CDT_REG 8
107 #define CDT_LNK 10
108 #define CDT_SOCK 12
109 #define CDT_WHT 14
110 #define IFTOCDT(mode) (((mode) & 0170000) >> 12)
111 #define CDTTOIF(dirtype) ((dirtype) << 12)
112 #endif
113 #ifndef _VUID_T_
114 #define _VUID_T_
115 typedef u_int32_t vuid_t;
116 typedef u_int32_t vgid_t;
117 #endif
118 struct CodaFid {
119   u_int32_t opaque[4];
120 };
121 #define coda_f2i(fid) (fid ? (fid->opaque[3] ^ (fid->opaque[2] << 10) ^ (fid->opaque[1] << 20) ^ fid->opaque[0]) : 0)
122 #ifndef _VENUS_VATTR_T_
123 #define _VENUS_VATTR_T_
124 enum coda_vtype {
125   C_VNON,
126   C_VREG,
127   C_VDIR,
128   C_VBLK,
129   C_VCHR,
130   C_VLNK,
131   C_VSOCK,
132   C_VFIFO,
133   C_VBAD
134 };
135 struct coda_vattr {
136   long va_type;
137   u_short va_mode;
138   short va_nlink;
139   vuid_t va_uid;
140   vgid_t va_gid;
141   long va_fileid;
142   u_quad_t va_size;
143   long va_blocksize;
144   struct timespec va_atime;
145   struct timespec va_mtime;
146   struct timespec va_ctime;
147   u_long va_gen;
148   u_long va_flags;
149   cdev_t va_rdev;
150   u_quad_t va_bytes;
151   u_quad_t va_filerev;
152 };
153 #endif
154 struct coda_statfs {
155   int32_t f_blocks;
156   int32_t f_bfree;
157   int32_t f_bavail;
158   int32_t f_files;
159   int32_t f_ffree;
160 };
161 #define CODA_ROOT 2
162 #define CODA_OPEN_BY_FD 3
163 #define CODA_OPEN 4
164 #define CODA_CLOSE 5
165 #define CODA_IOCTL 6
166 #define CODA_GETATTR 7
167 #define CODA_SETATTR 8
168 #define CODA_ACCESS 9
169 #define CODA_LOOKUP 10
170 #define CODA_CREATE 11
171 #define CODA_REMOVE 12
172 #define CODA_LINK 13
173 #define CODA_RENAME 14
174 #define CODA_MKDIR 15
175 #define CODA_RMDIR 16
176 #define CODA_SYMLINK 18
177 #define CODA_READLINK 19
178 #define CODA_FSYNC 20
179 #define CODA_VGET 22
180 #define CODA_SIGNAL 23
181 #define CODA_REPLACE 24
182 #define CODA_FLUSH 25
183 #define CODA_PURGEUSER 26
184 #define CODA_ZAPFILE 27
185 #define CODA_ZAPDIR 28
186 #define CODA_PURGEFID 30
187 #define CODA_OPEN_BY_PATH 31
188 #define CODA_RESOLVE 32
189 #define CODA_REINTEGRATE 33
190 #define CODA_STATFS 34
191 #define CODA_STORE 35
192 #define CODA_RELEASE 36
193 #define CODA_NCALLS 37
194 #define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID)
195 #define VC_MAXDATASIZE 8192
196 #define VC_MAXMSGSIZE sizeof(union inputArgs) + sizeof(union outputArgs) + VC_MAXDATASIZE
197 #define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t)
198 #define CODA_KERNEL_VERSION 3
199 struct coda_in_hdr {
200   u_int32_t opcode;
201   u_int32_t unique;
202   pid_t pid;
203   pid_t pgid;
204   vuid_t uid;
205 };
206 struct coda_out_hdr {
207   u_int32_t opcode;
208   u_int32_t unique;
209   u_int32_t result;
210 };
211 struct coda_root_out {
212   struct coda_out_hdr oh;
213   struct CodaFid VFid;
214 };
215 struct coda_root_in {
216   struct coda_in_hdr in;
217 };
218 struct coda_open_in {
219   struct coda_in_hdr ih;
220   struct CodaFid VFid;
221   int flags;
222 };
223 struct coda_open_out {
224   struct coda_out_hdr oh;
225   cdev_t dev;
226   ino_t inode;
227 };
228 struct coda_store_in {
229   struct coda_in_hdr ih;
230   struct CodaFid VFid;
231   int flags;
232 };
233 struct coda_store_out {
234   struct coda_out_hdr out;
235 };
236 struct coda_release_in {
237   struct coda_in_hdr ih;
238   struct CodaFid VFid;
239   int flags;
240 };
241 struct coda_release_out {
242   struct coda_out_hdr out;
243 };
244 struct coda_close_in {
245   struct coda_in_hdr ih;
246   struct CodaFid VFid;
247   int flags;
248 };
249 struct coda_close_out {
250   struct coda_out_hdr out;
251 };
252 struct coda_ioctl_in {
253   struct coda_in_hdr ih;
254   struct CodaFid VFid;
255   int cmd;
256   int len;
257   int rwflag;
258   char * data;
259 };
260 struct coda_ioctl_out {
261   struct coda_out_hdr oh;
262   int len;
263   caddr_t data;
264 };
265 struct coda_getattr_in {
266   struct coda_in_hdr ih;
267   struct CodaFid VFid;
268 };
269 struct coda_getattr_out {
270   struct coda_out_hdr oh;
271   struct coda_vattr attr;
272 };
273 struct coda_setattr_in {
274   struct coda_in_hdr ih;
275   struct CodaFid VFid;
276   struct coda_vattr attr;
277 };
278 struct coda_setattr_out {
279   struct coda_out_hdr out;
280 };
281 struct coda_access_in {
282   struct coda_in_hdr ih;
283   struct CodaFid VFid;
284   int flags;
285 };
286 struct coda_access_out {
287   struct coda_out_hdr out;
288 };
289 #define CLU_CASE_SENSITIVE 0x01
290 #define CLU_CASE_INSENSITIVE 0x02
291 struct coda_lookup_in {
292   struct coda_in_hdr ih;
293   struct CodaFid VFid;
294   int name;
295   int flags;
296 };
297 struct coda_lookup_out {
298   struct coda_out_hdr oh;
299   struct CodaFid VFid;
300   int vtype;
301 };
302 struct coda_create_in {
303   struct coda_in_hdr ih;
304   struct CodaFid VFid;
305   struct coda_vattr attr;
306   int excl;
307   int mode;
308   int name;
309 };
310 struct coda_create_out {
311   struct coda_out_hdr oh;
312   struct CodaFid VFid;
313   struct coda_vattr attr;
314 };
315 struct coda_remove_in {
316   struct coda_in_hdr ih;
317   struct CodaFid VFid;
318   int name;
319 };
320 struct coda_remove_out {
321   struct coda_out_hdr out;
322 };
323 struct coda_link_in {
324   struct coda_in_hdr ih;
325   struct CodaFid sourceFid;
326   struct CodaFid destFid;
327   int tname;
328 };
329 struct coda_link_out {
330   struct coda_out_hdr out;
331 };
332 struct coda_rename_in {
333   struct coda_in_hdr ih;
334   struct CodaFid sourceFid;
335   int srcname;
336   struct CodaFid destFid;
337   int destname;
338 };
339 struct coda_rename_out {
340   struct coda_out_hdr out;
341 };
342 struct coda_mkdir_in {
343   struct coda_in_hdr ih;
344   struct CodaFid VFid;
345   struct coda_vattr attr;
346   int name;
347 };
348 struct coda_mkdir_out {
349   struct coda_out_hdr oh;
350   struct CodaFid VFid;
351   struct coda_vattr attr;
352 };
353 struct coda_rmdir_in {
354   struct coda_in_hdr ih;
355   struct CodaFid VFid;
356   int name;
357 };
358 struct coda_rmdir_out {
359   struct coda_out_hdr out;
360 };
361 struct coda_symlink_in {
362   struct coda_in_hdr ih;
363   struct CodaFid VFid;
364   int srcname;
365   struct coda_vattr attr;
366   int tname;
367 };
368 struct coda_symlink_out {
369   struct coda_out_hdr out;
370 };
371 struct coda_readlink_in {
372   struct coda_in_hdr ih;
373   struct CodaFid VFid;
374 };
375 struct coda_readlink_out {
376   struct coda_out_hdr oh;
377   int count;
378   caddr_t data;
379 };
380 struct coda_fsync_in {
381   struct coda_in_hdr ih;
382   struct CodaFid VFid;
383 };
384 struct coda_fsync_out {
385   struct coda_out_hdr out;
386 };
387 struct coda_vget_in {
388   struct coda_in_hdr ih;
389   struct CodaFid VFid;
390 };
391 struct coda_vget_out {
392   struct coda_out_hdr oh;
393   struct CodaFid VFid;
394   int vtype;
395 };
396 struct coda_purgeuser_out {
397   struct coda_out_hdr oh;
398   vuid_t uid;
399 };
400 struct coda_zapfile_out {
401   struct coda_out_hdr oh;
402   struct CodaFid CodaFid;
403 };
404 struct coda_zapdir_out {
405   struct coda_out_hdr oh;
406   struct CodaFid CodaFid;
407 };
408 struct coda_purgefid_out {
409   struct coda_out_hdr oh;
410   struct CodaFid CodaFid;
411 };
412 struct coda_replace_out {
413   struct coda_out_hdr oh;
414   struct CodaFid NewFid;
415   struct CodaFid OldFid;
416 };
417 struct coda_open_by_fd_in {
418   struct coda_in_hdr ih;
419   struct CodaFid VFid;
420   int flags;
421 };
422 struct coda_open_by_fd_out {
423   struct coda_out_hdr oh;
424   int fd;
425 };
426 struct coda_open_by_path_in {
427   struct coda_in_hdr ih;
428   struct CodaFid VFid;
429   int flags;
430 };
431 struct coda_open_by_path_out {
432   struct coda_out_hdr oh;
433   int path;
434 };
435 struct coda_statfs_in {
436   struct coda_in_hdr in;
437 };
438 struct coda_statfs_out {
439   struct coda_out_hdr oh;
440   struct coda_statfs stat;
441 };
442 #define CODA_NOCACHE 0x80000000
443 union inputArgs {
444   struct coda_in_hdr ih;
445   struct coda_open_in coda_open;
446   struct coda_store_in coda_store;
447   struct coda_release_in coda_release;
448   struct coda_close_in coda_close;
449   struct coda_ioctl_in coda_ioctl;
450   struct coda_getattr_in coda_getattr;
451   struct coda_setattr_in coda_setattr;
452   struct coda_access_in coda_access;
453   struct coda_lookup_in coda_lookup;
454   struct coda_create_in coda_create;
455   struct coda_remove_in coda_remove;
456   struct coda_link_in coda_link;
457   struct coda_rename_in coda_rename;
458   struct coda_mkdir_in coda_mkdir;
459   struct coda_rmdir_in coda_rmdir;
460   struct coda_symlink_in coda_symlink;
461   struct coda_readlink_in coda_readlink;
462   struct coda_fsync_in coda_fsync;
463   struct coda_vget_in coda_vget;
464   struct coda_open_by_fd_in coda_open_by_fd;
465   struct coda_open_by_path_in coda_open_by_path;
466   struct coda_statfs_in coda_statfs;
467 };
468 union outputArgs {
469   struct coda_out_hdr oh;
470   struct coda_root_out coda_root;
471   struct coda_open_out coda_open;
472   struct coda_ioctl_out coda_ioctl;
473   struct coda_getattr_out coda_getattr;
474   struct coda_lookup_out coda_lookup;
475   struct coda_create_out coda_create;
476   struct coda_mkdir_out coda_mkdir;
477   struct coda_readlink_out coda_readlink;
478   struct coda_vget_out coda_vget;
479   struct coda_purgeuser_out coda_purgeuser;
480   struct coda_zapfile_out coda_zapfile;
481   struct coda_zapdir_out coda_zapdir;
482   struct coda_purgefid_out coda_purgefid;
483   struct coda_replace_out coda_replace;
484   struct coda_open_by_fd_out coda_open_by_fd;
485   struct coda_open_by_path_out coda_open_by_path;
486   struct coda_statfs_out coda_statfs;
487 };
488 union coda_downcalls {
489   struct coda_purgeuser_out purgeuser;
490   struct coda_zapfile_out zapfile;
491   struct coda_zapdir_out zapdir;
492   struct coda_purgefid_out purgefid;
493   struct coda_replace_out replace;
494 };
495 #define PIOCPARM_MASK 0x0000ffff
496 struct ViceIoctl {
497   void __user * in;
498   void __user * out;
499   u_short in_size;
500   u_short out_size;
501 };
502 struct PioctlData {
503   const char __user * path;
504   int follow;
505   struct ViceIoctl vi;
506 };
507 #define CODA_CONTROL ".CONTROL"
508 #define CODA_CONTROLLEN 8
509 #define CTL_INO - 1
510 #define CODA_MOUNT_VERSION 1
511 struct coda_mount_data {
512   int version;
513   int fd;
514 };
515 #endif
516