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