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 #ifndef __CM_IOCTL_INTERFACES_ONLY__
46 void cm_InitIoctl(void);
48 void cm_ResetACLCache(cm_user_t *userp);
50 extern long cm_IoctlGetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
52 extern long cm_IoctlGetFileCellName(smb_ioctl_t *ioctlp, cm_user_t *userp);
54 extern long cm_IoctlSetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
56 extern long cm_IoctlFlushVolume(smb_ioctl_t *ioctlp, cm_user_t *userp);
58 extern long cm_IoctlFlushFile(smb_ioctl_t *ioctlp, cm_user_t *userp);
60 extern long cm_IoctlSetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
62 extern long cm_IoctlGetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
64 extern long cm_IoctlWhereIs(smb_ioctl_t *ioctlp, cm_user_t *userp);
66 extern long cm_IoctlStatMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
68 extern long cm_IoctlDeleteMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
70 extern long cm_IoctlCheckServers(smb_ioctl_t *ioctlp, cm_user_t *userp);
72 extern long cm_IoctlGag(smb_ioctl_t *ioctlp, cm_user_t *userp);
74 extern long cm_IoctlCheckVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp);
76 extern long cm_IoctlSetCacheSize(smb_ioctl_t *ioctlp, cm_user_t *userp);
78 extern long cm_IoctlGetCacheParms(smb_ioctl_t *ioctlp, cm_user_t *userp);
80 extern long cm_IoctlGetCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
82 extern long cm_IoctlNewCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
84 extern long cm_IoctlGetWsCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
86 extern long cm_IoctlSysName(smb_ioctl_t *ioctlp, cm_user_t *userp);
88 extern long cm_IoctlGetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
90 extern long cm_IoctlSetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
92 extern long cm_IoctlSetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
94 extern long cm_IoctlGetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
96 extern long cm_IoctlStoreBehind(smb_ioctl_t *ioctlp, cm_user_t *userp);
98 extern long cm_IoctlCreateMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
100 extern long cm_FlushFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
102 extern long cm_IoctlTraceControl(smb_ioctl_t *ioctlp, cm_user_t *userp);
104 extern long cm_IoctlSetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
106 extern long cm_IoctlGetTokenIter(smb_ioctl_t *ioctlp, cm_user_t *userp);
108 extern long cm_IoctlGetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
110 extern long cm_IoctlDelToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
112 extern long cm_IoctlDelAllToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
114 extern long cm_IoctlSymlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
116 extern long cm_IoctlListlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
118 extern long cm_IoctlDeletelink(smb_ioctl_t *ioctlp, cm_user_t *userp);
120 extern long cm_IoctlMakeSubmount(smb_ioctl_t *ioctlp, cm_user_t *userp);
122 extern long cm_IoctlGetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
124 extern long cm_IoctlSetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
126 extern long cm_IoctlShutdown(smb_ioctl_t *ioctlp, cm_user_t *userp);
128 extern long cm_IoctlFreemountAddCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
130 extern long cm_IoctlFreemountRemoveCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
132 #endif /* __CM_IOCTL_INTERFACES_ONLY__ */
134 #endif /* __CM_IOCTL_H_ENV__ */