2 * Copyright 2000, International Business Machines Corporation and others.
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
10 /* /usr/andrew/include/vice/ioctl.h
12 Definitions of Venus-specific ioctls for Venus 2.
21 #include <sys/ioctl.h>
28 /* some structures used with CM pioctls */
30 /* structs for Get/Set server preferences pioctl
33 struct in_addr server;
37 struct sprefrequest_33 {
38 unsigned short offset;
39 unsigned short num_servers;
42 struct sprefrequest { /* new struct for 3.4 */
43 unsigned short offset;
44 unsigned short num_servers;
50 unsigned short next_offset;
51 unsigned short num_servers;
52 struct spref servers[1]; /* we overrun this array intentionally... */
57 unsigned short num_servers;
58 struct spref servers[1]; /* we overrun this array intentionally... */
60 /* struct for GAG pioctl
63 afs_uint32 showflags, logflags, logwritethruflag, spare[3];
64 unsigned char spare2[128];
68 #define logwritethruON 1
72 afs_int32 rx_initReceiveWindow, rx_maxReceiveWindow, rx_initSendWindow,
73 rx_maxSendWindow, rxi_nSendFrags, rxi_nRecvFrags, rxi_OrphanFragSize;
74 afs_int32 rx_maxReceiveSize, rx_MyMaxSendSize;
78 /* struct for checkservers */
93 /* CM inititialization parameters. What CM actually used after calculations
94 * based on passed in arguments.
96 #define CMI_VERSION 1 /* increment when adding new fields. */
97 struct cm_initparams {
102 int cmi_nVolumeCaches;
103 int cmi_firstChunkSize;
104 int cmi_otherChunkSize;
105 int cmi_cacheSize; /* The original cache size, in 1K blocks. */
106 unsigned cmi_setTime:1;
107 unsigned cmi_memCache:1;
108 int spare[16 - 9]; /* size of struct is 16 * 4 = 64 bytes */
111 #endif /* !defined(UKERNEL) */
113 /* IOCTLS to Venus. Apply these to open file decriptors. */
114 #define VIOCCLOSEWAIT _VICEIOCTL(1) /* Force close to wait for store */
115 #define VIOCABORT _VICEIOCTL(2) /* Abort close on this fd */
116 #define VIOCIGETCELL _VICEIOCTL(3) /* ioctl to get cell name */
118 /* PIOCTLS to Venus. Apply these to path names with pioctl. */
119 #define VIOCSETAL _VICEIOCTL(1) /* Set access control list */
120 #define VIOCGETAL _VICEIOCTL(2) /* Get access control list */
121 #define VIOCSETTOK _VICEIOCTL(3) /* Set authentication tokens */
122 #define VIOCGETVOLSTAT _VICEIOCTL(4) /* Get volume status */
123 #define VIOCSETVOLSTAT _VICEIOCTL(5) /* Set volume status */
124 #define VIOCFLUSH _VICEIOCTL(6) /* Invalidate cache entry */
125 #define VIOCSTAT _VICEIOCTL(7) /* Get file status */
126 #define VIOCGETTOK _VICEIOCTL(8) /* Get authentication tokens */
127 #define VIOCUNLOG _VICEIOCTL(9) /* Invalidate tokens */
128 #define VIOCCKSERV _VICEIOCTL(10) /* Check that servers are up */
129 #define VIOCCKBACK _VICEIOCTL(11) /* Check backup volume mappings */
130 #define VIOCCKCONN _VICEIOCTL(12) /* Check connections for a user */
131 #define VIOCGETTIME _VICEIOCTL(13) /* Do a vice gettime for performance testing */
132 #define VIOCWHEREIS _VICEIOCTL(14) /* Find out where a volume is located */
133 #define VIOCPREFETCH _VICEIOCTL(15) /* Prefetch a file */
134 #define VIOCNOP _VICEIOCTL(16) /* Do nothing (more preformance) */
135 #define VIOCENGROUP _VICEIOCTL(17) /* Enable group access for a group */
136 #define VIOCDISGROUP _VICEIOCTL(18) /* Disable group access */
137 #define VIOCLISTGROUPS _VICEIOCTL(19) /* List enabled and disabled groups */
138 #define VIOCACCESS _VICEIOCTL(20) /* Access using PRS_FS bits */
139 #define VIOCUNPAG _VICEIOCTL(21) /* Invalidate pag */
140 #define VIOCGETFID _VICEIOCTL(22) /* Get file ID quickly */
141 #define VIOCWAITFOREVER _VICEIOCTL(23) /* Wait for dead servers forever */
142 #define VIOCSETCACHESIZE _VICEIOCTL(24) /* Set venus cache size in 1k units */
143 #define VIOCFLUSHCB _VICEIOCTL(25) /* Flush callback only */
144 #define VIOCNEWCELL _VICEIOCTL(26) /* Configure new cell */
145 #define VIOCGETCELL _VICEIOCTL(27) /* Get cell info */
146 #define VIOC_AFS_DELETE_MT_PT _VICEIOCTL(28) /* [AFS] Delete mount point */
147 #define VIOC_AFS_STAT_MT_PT _VICEIOCTL(29) /* [AFS] Stat mount point */
148 #define VIOC_FILE_CELL_NAME _VICEIOCTL(30) /* Get cell in which file lives */
149 #define VIOC_GET_WS_CELL _VICEIOCTL(31) /* Get cell in which workstation lives */
150 #define VIOC_AFS_MARINER_HOST _VICEIOCTL(32) /* [AFS] Get/set mariner host */
151 #define VIOC_GET_PRIMARY_CELL _VICEIOCTL(33) /* Get primary cell for caller */
152 #define VIOC_VENUSLOG _VICEIOCTL(34) /* Enable/Disable venus logging */
153 #define VIOC_GETCELLSTATUS _VICEIOCTL(35) /* get cell status info */
154 #define VIOC_SETCELLSTATUS _VICEIOCTL(36) /* set corresponding info */
155 #define VIOC_FLUSHVOLUME _VICEIOCTL(37) /* flush whole volume's data */
156 #define VIOC_AFS_SYSNAME _VICEIOCTL(38) /* Change @sys value */
157 #define VIOC_EXPORTAFS _VICEIOCTL(39) /* Export afs to nfs clients */
158 #define VIOCGETCACHEPARMS _VICEIOCTL(40) /* Get cache stats */
159 #define VIOCGETVCXSTATUS _VICEIOCTL(41)
160 #define VIOC_SETSPREFS33 _VICEIOCTL(42) /* Set server ranks */
161 #define VIOC_GETSPREFS _VICEIOCTL(43) /* Get server ranks */
162 #define VIOC_GAG _VICEIOCTL(44) /* silence CM */
163 #define VIOC_TWIDDLE _VICEIOCTL(45) /* adjust RX knobs */
164 #define VIOC_SETSPREFS _VICEIOCTL(46) /* Set server ranks */
165 #define VIOC_STORBEHIND _VICEIOCTL(47) /* adjust store asynchrony */
166 #define VIOC_GCPAGS _VICEIOCTL(48) /* disable automatic pag gc-ing */
167 #define VIOC_GETINITPARAMS _VICEIOCTL(49) /* get initial cm params */
168 #define VIOC_GETCPREFS _VICEIOCTL(50) /* Get client interface */
169 #define VIOC_SETCPREFS _VICEIOCTL(51) /* Set client interface */
170 #define VIOC_AFS_FLUSHMOUNT _VICEIOCTL(52) /* Flush mount symlink data */
171 #define VIOC_RXSTAT_PROC _VICEIOCTL(53) /* Control process RX stats */
172 #define VIOC_RXSTAT_PEER _VICEIOCTL(54) /* Control peer RX stats */
173 #define VIOC_GETRXKCRYPT _VICEIOCTL(55) /* Set rxkad enc flag */
174 #define VIOC_SETRXKCRYPT _VICEIOCTL(56) /* Set rxkad enc flag */
175 #define VIOC_PREFETCHTAPE _VICEIOCTL(66) /* MR-AFS prefetch from tape */
176 #define VIOC_RESIDENCY_CMD _VICEIOCTL(67) /* generic MR-AFS cmds */
177 #define VIOC_STATISTICS _VICEIOCTL(68) /* arla: fetch statistics */
178 #define VIOC_GETVCXSTATUS2 _VICEIOCTL(69) /* vcache statistics */
180 /* Coordinated 'C' pioctl's */
181 #define VIOC_NEWALIAS _CVICEIOCTL(1) /* create new cell alias */
182 #define VIOC_GETALIAS _CVICEIOCTL(2) /* get alias info */
183 #define VIOC_CBADDR _CVICEIOCTL(3) /* push callback addr */
184 #define VIOC_DISCON _CVICEIOCTL(5) /* set/get discon mode */
186 /* OpenAFS-specific 'O' pioctl's */
187 #define VIOC_NFS_NUKE_CREDS _OVICEIOCTL(1) /* nuke creds for all PAG's */
189 #endif /* AFS_VENUS_H */