newuuid-20070612
[openafs.git] / src / config / vioc.h
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 /*
11  * The constants for doing ioctl or pioctl calls to AFS.  For more information
12  * see the registry at <http://grand.central.org/numbers/pioctls.html>.  This
13  * is separate from afs/venus.h (which defines some of the structure arguments
14  * for some of these calls) so that it can also be used by kopenafs.h; they
15  * may be re-merged later.
16  *
17  * You probably don't want to include this header file directly; instead,
18  * include afs/venus.h or kopenafs.h depending on the context.
19  */
20
21 #ifndef AFS_VIOC_H
22 #define AFS_VIOC_H 1
23
24 #ifndef _VICEIOCTL
25 #include <afs/vice.h>
26 #endif
27
28 /* IOCTLS to Venus.  Apply these to open file decriptors. */
29 #define VIOCCLOSEWAIT           _VICEIOCTL(1)   /* Force close to wait for store */
30 #define VIOCABORT               _VICEIOCTL(2)   /* Abort close on this fd */
31 #define VIOCIGETCELL            _VICEIOCTL(3)   /* ioctl to get cell name */
32
33 /* PIOCTLS to Venus.  Apply these to path names with pioctl. */
34 #define VIOCSETAL               _VICEIOCTL(1)   /* Set access control list */
35 #define VIOCGETAL               _VICEIOCTL(2)   /* Get access control list */
36 #define VIOCSETTOK              _VICEIOCTL(3)   /* Set authentication tokens */
37 #define VIOCGETVOLSTAT          _VICEIOCTL(4)   /* Get volume status */
38 #define VIOCSETVOLSTAT          _VICEIOCTL(5)   /* Set volume status */
39 #define VIOCFLUSH               _VICEIOCTL(6)   /* Invalidate cache entry */
40 #define VIOCSTAT                _VICEIOCTL(7)   /* Get file status */
41 #define VIOCGETTOK              _VICEIOCTL(8)   /* Get authentication tokens */
42 #define VIOCUNLOG               _VICEIOCTL(9)   /* Invalidate tokens */
43 #define VIOCCKSERV              _VICEIOCTL(10)  /* Check that servers are up */
44 #define VIOCCKBACK              _VICEIOCTL(11)  /* Check backup volume mappings */
45 #define VIOCCKCONN              _VICEIOCTL(12)  /* Check connections for a user */
46 #define VIOCGETTIME             _VICEIOCTL(13)  /* Do a vice gettime for performance testing */
47 #define VIOCWHEREIS             _VICEIOCTL(14)  /* Find out where a volume is located */
48 #define VIOCPREFETCH            _VICEIOCTL(15)  /* Prefetch a file */
49 #define VIOCNOP                 _VICEIOCTL(16)  /* Do nothing (more preformance) */
50 #define VIOCENGROUP             _VICEIOCTL(17)  /* Enable group access for a group */
51 #define VIOCDISGROUP            _VICEIOCTL(18)  /* Disable group access */
52 #define VIOCLISTGROUPS          _VICEIOCTL(19)  /* List enabled and disabled groups */
53 #define VIOCACCESS              _VICEIOCTL(20)  /* Access using PRS_FS bits */
54 #define VIOCUNPAG               _VICEIOCTL(21)  /* Invalidate pag */
55 #define VIOCGETFID              _VICEIOCTL(22)  /* Get file ID quickly */
56 #define VIOCWAITFOREVER         _VICEIOCTL(23)  /* Wait for dead servers forever */
57 #define VIOCSETCACHESIZE        _VICEIOCTL(24)  /* Set venus cache size in 1k units */
58 #define VIOCFLUSHCB             _VICEIOCTL(25)  /* Flush callback only */
59 #define VIOCNEWCELL             _VICEIOCTL(26)  /* Configure new cell */
60 #define VIOCGETCELL             _VICEIOCTL(27)  /* Get cell info */
61 #define VIOC_AFS_DELETE_MT_PT   _VICEIOCTL(28)  /* [AFS] Delete mount point */
62 #define VIOC_AFS_STAT_MT_PT     _VICEIOCTL(29)  /* [AFS] Stat mount point */
63 #define VIOC_FILE_CELL_NAME     _VICEIOCTL(30)  /* Get cell in which file lives */
64 #define VIOC_GET_WS_CELL        _VICEIOCTL(31)  /* Get cell in which workstation lives */
65 #define VIOC_AFS_MARINER_HOST   _VICEIOCTL(32)  /* [AFS] Get/set mariner host */
66 #define VIOC_GET_PRIMARY_CELL   _VICEIOCTL(33)  /* Get primary cell for caller */
67 #define VIOC_VENUSLOG           _VICEIOCTL(34)  /* Enable/Disable venus logging */
68 #define VIOC_GETCELLSTATUS      _VICEIOCTL(35)  /* get cell status info */
69 #define VIOC_SETCELLSTATUS      _VICEIOCTL(36)  /* set corresponding info */
70 #define VIOC_FLUSHVOLUME        _VICEIOCTL(37)  /* flush whole volume's data */
71 #define VIOC_AFS_SYSNAME        _VICEIOCTL(38)  /* Change @sys value */
72 #define VIOC_EXPORTAFS          _VICEIOCTL(39)  /* Export afs to nfs clients */
73 #define VIOCGETCACHEPARMS       _VICEIOCTL(40)  /* Get cache stats */
74 #define VIOCGETVCXSTATUS        _VICEIOCTL(41)
75 #define VIOC_SETSPREFS33        _VICEIOCTL(42)  /* Set server ranks */
76 #define VIOC_GETSPREFS          _VICEIOCTL(43)  /* Get server ranks */
77 #define VIOC_GAG                _VICEIOCTL(44)  /* silence CM */
78 #define VIOC_TWIDDLE            _VICEIOCTL(45)  /* adjust RX knobs */
79 #define VIOC_SETSPREFS          _VICEIOCTL(46)  /* Set server ranks */
80 #define VIOC_STORBEHIND         _VICEIOCTL(47)  /* adjust store asynchrony */
81 #define VIOC_GCPAGS             _VICEIOCTL(48)  /* disable automatic pag gc-ing */
82 #define VIOC_GETINITPARAMS      _VICEIOCTL(49)  /* get initial cm params */
83 #define VIOC_GETCPREFS          _VICEIOCTL(50)  /* Get client interface */
84 #define VIOC_SETCPREFS          _VICEIOCTL(51)  /* Set client interface */
85 #define VIOC_AFS_FLUSHMOUNT     _VICEIOCTL(52)  /* Flush mount symlink data */
86 #define VIOC_RXSTAT_PROC        _VICEIOCTL(53)  /* Control process RX stats */
87 #define VIOC_RXSTAT_PEER        _VICEIOCTL(54)  /* Control peer RX stats */
88 #define VIOC_GETRXKCRYPT        _VICEIOCTL(55)  /* Set rxkad enc flag */
89 #define VIOC_SETRXKCRYPT        _VICEIOCTL(56)  /* Set rxkad enc flag */
90 #define VIOC_PREFETCHTAPE       _VICEIOCTL(66)  /* MR-AFS prefetch from tape */
91 #define VIOC_RESIDENCY_CMD      _VICEIOCTL(67)  /* generic MR-AFS cmds */
92 #define VIOC_STATISTICS         _VICEIOCTL(68)  /* arla: fetch statistics */
93 #define VIOC_GETVCXSTATUS2      _VICEIOCTL(69)  /* vcache statistics */
94
95 /* Coordinated 'C' pioctl's */
96 #define VIOC_NEWALIAS           _CVICEIOCTL(1)  /* create new cell alias */
97 #define VIOC_GETALIAS           _CVICEIOCTL(2)  /* get alias info */
98 #define VIOC_CBADDR             _CVICEIOCTL(3)  /* push callback addr */
99 #define VIOC_DISCON             _CVICEIOCTL(5)  /* set/get discon mode */
100 #define VIOC_NEWUUID            _CVICEIOCTL(9)  /* new uuid */
101
102 /* OpenAFS-specific 'O' pioctl's */
103 #define VIOC_NFS_NUKE_CREDS     _OVICEIOCTL(1)  /* nuke creds for all PAG's */
104
105 #endif /* AFS_VIOC_H */