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...*/
44 #define MAXNUMSYSNAMES 16 /* max that current constants allow */
45 #define MAXSYSNAME 128 /* max sysname (i.e. @sys) size */
46 extern char * cm_sysName;
47 extern unsigned int cm_sysNameCount;
48 extern char * cm_sysNameList[MAXNUMSYSNAMES];
50 /* flags for rxstats pioctl */
52 #define AFSCALL_RXSTATS_MASK 0x7 /* Valid flag bits */
53 #define AFSCALL_RXSTATS_ENABLE 0x1 /* Enable RX stats */
54 #define AFSCALL_RXSTATS_DISABLE 0x2 /* Disable RX stats */
55 #define AFSCALL_RXSTATS_CLEAR 0x4 /* Clear RX stats */
57 #ifndef __CM_IOCTL_INTERFACES_ONLY__
59 void cm_InitIoctl(void);
61 void cm_ResetACLCache(cm_user_t *userp);
63 extern long cm_IoctlGetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
65 extern long cm_IoctlGetFileCellName(smb_ioctl_t *ioctlp, cm_user_t *userp);
67 extern long cm_IoctlSetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
69 extern long cm_IoctlFlushAllVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp);
71 extern long cm_IoctlFlushVolume(smb_ioctl_t *ioctlp, cm_user_t *userp);
73 extern long cm_IoctlFlushFile(smb_ioctl_t *ioctlp, cm_user_t *userp);
75 extern long cm_IoctlSetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
77 extern long cm_IoctlGetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
79 extern long cm_IoctlGetFid(smb_ioctl_t *ioctlp, cm_user_t *userp);
81 extern long cm_IoctlGetOwner(smb_ioctl_t *ioctlp, cm_user_t *userp);
83 extern long cm_IoctlWhereIs(smb_ioctl_t *ioctlp, cm_user_t *userp);
85 extern long cm_IoctlStatMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
87 extern long cm_IoctlDeleteMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
89 extern long cm_IoctlCheckServers(smb_ioctl_t *ioctlp, cm_user_t *userp);
91 extern long cm_IoctlGag(smb_ioctl_t *ioctlp, cm_user_t *userp);
93 extern long cm_IoctlCheckVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp);
95 extern long cm_IoctlSetCacheSize(smb_ioctl_t *ioctlp, cm_user_t *userp);
97 extern long cm_IoctlGetCacheParms(smb_ioctl_t *ioctlp, cm_user_t *userp);
99 extern long cm_IoctlGetCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
101 extern long cm_IoctlNewCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
103 extern long cm_IoctlGetWsCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
105 extern long cm_IoctlSysName(smb_ioctl_t *ioctlp, cm_user_t *userp);
107 extern long cm_IoctlGetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
109 extern long cm_IoctlSetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
111 extern long cm_IoctlSetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
113 extern long cm_IoctlGetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
115 extern long cm_IoctlStoreBehind(smb_ioctl_t *ioctlp, cm_user_t *userp);
117 extern long cm_IoctlCreateMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
119 extern long cm_CleanFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
121 extern long cm_FlushFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
123 extern long cm_FlushVolume(cm_user_t *, cm_req_t *reqp, afs_uint32 cell, afs_uint32 volume);
125 extern long cm_FlushParent(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
127 extern long cm_IoctlTraceControl(smb_ioctl_t *ioctlp, cm_user_t *userp);
129 extern long cm_IoctlSetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
131 extern long cm_IoctlGetTokenIter(smb_ioctl_t *ioctlp, cm_user_t *userp);
133 extern long cm_IoctlGetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
135 extern long cm_IoctlDelToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
137 extern long cm_IoctlDelAllToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
139 extern long cm_IoctlSymlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
141 extern long cm_IoctlIslink(smb_ioctl_t *ioctlp, cm_user_t *userp);
143 extern long cm_IoctlListlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
145 extern long cm_IoctlDeletelink(smb_ioctl_t *ioctlp, cm_user_t *userp);
147 extern long cm_IoctlMakeSubmount(smb_ioctl_t *ioctlp, cm_user_t *userp);
149 extern long cm_IoctlGetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
151 extern long cm_IoctlSetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
153 extern long cm_IoctlShutdown(smb_ioctl_t *ioctlp, cm_user_t *userp);
155 extern long cm_IoctlFreemountAddCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
157 extern long cm_IoctlFreemountRemoveCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
159 extern long cm_IoctlMemoryDump(smb_ioctl_t *ioctlp, cm_user_t *userp);
161 extern long cm_IoctlRxStatProcess(smb_ioctl_t *ioctlp, cm_user_t *userp);
163 extern long cm_IoctlRxStatPeer(smb_ioctl_t *ioctlp, cm_user_t *userp);
165 extern long cm_IoctlUUIDControl(struct smb_ioctl * ioctlp, struct cm_user *userp);
167 #endif /* __CM_IOCTL_INTERFACES_ONLY__ */
169 #endif /* __CM_IOCTL_H_ENV__ */