OSDN Git Service

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