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 #ifndef __CM_IOCTL_H_ENV__
11 #define __CM_IOCTL_H_ENV__ 1
13 #ifndef __CM_IOCTL_INTERFACES_ONLY__
16 #endif /* __CM_IOCTL_INTERFACES_ONLY__ */
18 /* the following four structures are used for fs get/set serverprefs command*/
19 #define CM_SPREF_VLONLY 0x01
20 typedef struct cm_SPref {
25 typedef struct cm_SPrefRequest {
26 unsigned short offset;
27 unsigned short num_servers;
31 typedef struct cm_SPrefInfo {
32 unsigned short next_offset;
33 unsigned short num_servers;
34 struct cm_SPref servers[1];/* we overrun this array intentionally...*/
37 typedef struct cm_SSetPref {
39 unsigned short num_servers;
40 struct cm_SPref servers[1];/* we overrun this array intentionally...*/
43 #define CM_IOCTLCACHEPARMS 16
44 typedef struct cm_cacheParms {
45 afs_uint64 parms[CM_IOCTLCACHEPARMS];
49 #define MAXNUMSYSNAMES 16 /* max that current constants allow */
50 #define MAXSYSNAME 128 /* max sysname (i.e. @sys) size */
51 extern char * cm_sysName;
52 extern unsigned int cm_sysNameCount;
53 extern char * cm_sysNameList[MAXNUMSYSNAMES];
55 /* flags for rxstats pioctl */
57 #define AFSCALL_RXSTATS_MASK 0x7 /* Valid flag bits */
58 #define AFSCALL_RXSTATS_ENABLE 0x1 /* Enable RX stats */
59 #define AFSCALL_RXSTATS_DISABLE 0x2 /* Disable RX stats */
60 #define AFSCALL_RXSTATS_CLEAR 0x4 /* Clear RX stats */
62 #ifndef __CM_IOCTL_INTERFACES_ONLY__
64 void cm_InitIoctl(void);
66 void cm_ResetACLCache(cm_user_t *userp);
68 extern long cm_IoctlGetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
70 extern long cm_IoctlGetFileCellName(smb_ioctl_t *ioctlp, cm_user_t *userp);
72 extern long cm_IoctlSetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
74 extern long cm_IoctlFlushAllVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp);
76 extern long cm_IoctlFlushVolume(smb_ioctl_t *ioctlp, cm_user_t *userp);
78 extern long cm_IoctlFlushFile(smb_ioctl_t *ioctlp, cm_user_t *userp);
80 extern long cm_IoctlSetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
82 extern long cm_IoctlGetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
84 extern long cm_IoctlGetFid(smb_ioctl_t *ioctlp, cm_user_t *userp);
86 extern long cm_IoctlGetOwner(smb_ioctl_t *ioctlp, cm_user_t *userp);
88 extern long cm_IoctlWhereIs(smb_ioctl_t *ioctlp, cm_user_t *userp);
90 extern long cm_IoctlStatMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
92 extern long cm_IoctlDeleteMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
94 extern long cm_IoctlCheckServers(smb_ioctl_t *ioctlp, cm_user_t *userp);
96 extern long cm_IoctlGag(smb_ioctl_t *ioctlp, cm_user_t *userp);
98 extern long cm_IoctlCheckVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp);
100 extern long cm_IoctlSetCacheSize(smb_ioctl_t *ioctlp, cm_user_t *userp);
102 extern long cm_IoctlGetCacheParms(smb_ioctl_t *ioctlp, cm_user_t *userp);
104 extern long cm_IoctlGetCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
106 extern long cm_IoctlNewCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
108 extern long cm_IoctlGetWsCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
110 extern long cm_IoctlSysName(smb_ioctl_t *ioctlp, cm_user_t *userp);
112 extern long cm_IoctlGetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
114 extern long cm_IoctlSetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
116 extern long cm_IoctlSetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
118 extern long cm_IoctlGetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
120 extern long cm_IoctlStoreBehind(smb_ioctl_t *ioctlp, cm_user_t *userp);
122 extern long cm_IoctlCreateMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
124 extern long cm_CleanFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
126 extern long cm_FlushFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
128 extern long cm_FlushVolume(cm_user_t *, cm_req_t *reqp, afs_uint32 cell, afs_uint32 volume);
130 extern long cm_FlushParent(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
132 extern long cm_IoctlTraceControl(smb_ioctl_t *ioctlp, cm_user_t *userp);
134 extern long cm_IoctlSetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
136 extern long cm_IoctlGetTokenIter(smb_ioctl_t *ioctlp, cm_user_t *userp);
138 extern long cm_IoctlGetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
140 extern long cm_IoctlDelToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
142 extern long cm_IoctlDelAllToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
144 extern long cm_IoctlSymlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
146 extern long cm_IoctlIslink(smb_ioctl_t *ioctlp, cm_user_t *userp);
148 extern long cm_IoctlListlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
150 extern long cm_IoctlDeletelink(smb_ioctl_t *ioctlp, cm_user_t *userp);
152 extern long cm_IoctlMakeSubmount(smb_ioctl_t *ioctlp, cm_user_t *userp);
154 extern long cm_IoctlGetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
156 extern long cm_IoctlSetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
158 extern long cm_IoctlShutdown(smb_ioctl_t *ioctlp, cm_user_t *userp);
160 extern long cm_IoctlFreemountAddCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
162 extern long cm_IoctlFreemountRemoveCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
164 extern long cm_IoctlMemoryDump(smb_ioctl_t *ioctlp, cm_user_t *userp);
166 extern long cm_IoctlRxStatProcess(smb_ioctl_t *ioctlp, cm_user_t *userp);
168 extern long cm_IoctlRxStatPeer(smb_ioctl_t *ioctlp, cm_user_t *userp);
170 extern long cm_IoctlUUIDControl(struct smb_ioctl * ioctlp, struct cm_user *userp);
172 extern long cm_IoctlPathAvailability(struct smb_ioctl * ioctlp, struct cm_user *userp);
174 #endif /* __CM_IOCTL_INTERFACES_ONLY__ */
176 #endif /* __CM_IOCTL_H_ENV__ */