windows-multi-fix-20061003
[openafs.git] / src / WINNT / afsd / cm_ioctl.h
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
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
8  */
9
10 #ifndef __CM_IOCTL_H_ENV__
11 #define __CM_IOCTL_H_ENV__ 1
12
13 #ifndef __CM_IOCTL_INTERFACES_ONLY__
14 #include "smb.h"
15 #include "cm_user.h"
16 #endif /* __CM_IOCTL_INTERFACES_ONLY__ */
17
18 /* the following four structures are used for fs get/set serverprefs command*/
19 #define         CM_SPREF_VLONLY         0x01
20 typedef struct cm_SPref {
21         struct in_addr host;
22         unsigned short rank;
23 } cm_SPref_t;
24
25 typedef struct cm_SPrefRequest {             
26         unsigned short offset;
27         unsigned short num_servers;
28         unsigned short flags;
29 } cm_SPrefRequest_t;
30
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...*/
35 } cm_SPrefInfo_t;
36
37 typedef struct cm_SSetPref {
38         unsigned short flags;
39         unsigned short num_servers;
40         struct cm_SPref servers[1];/* we overrun this array intentionally...*/
41 } cm_SSetPref_t;
42
43
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];
49
50 /* flags for rxstats pioctl */
51
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 */
56
57 #ifndef __CM_IOCTL_INTERFACES_ONLY__
58
59 void cm_InitIoctl(void);
60
61 void cm_ResetACLCache(cm_user_t *userp);
62
63 extern long cm_IoctlGetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
64
65 extern long cm_IoctlGetFileCellName(smb_ioctl_t *ioctlp, cm_user_t *userp);
66
67 extern long cm_IoctlSetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
68
69 extern long cm_IoctlFlushAllVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp);
70
71 extern long cm_IoctlFlushVolume(smb_ioctl_t *ioctlp, cm_user_t *userp);
72
73 extern long cm_IoctlFlushFile(smb_ioctl_t *ioctlp, cm_user_t *userp);
74
75 extern long cm_IoctlSetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
76
77 extern long cm_IoctlGetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
78
79 extern long cm_IoctlGetFid(smb_ioctl_t *ioctlp, cm_user_t *userp);
80
81 extern long cm_IoctlGetOwner(smb_ioctl_t *ioctlp, cm_user_t *userp);
82
83 extern long cm_IoctlWhereIs(smb_ioctl_t *ioctlp, cm_user_t *userp);
84
85 extern long cm_IoctlStatMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
86
87 extern long cm_IoctlDeleteMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
88
89 extern long cm_IoctlCheckServers(smb_ioctl_t *ioctlp, cm_user_t *userp);
90
91 extern long cm_IoctlGag(smb_ioctl_t *ioctlp, cm_user_t *userp);
92
93 extern long cm_IoctlCheckVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp);
94
95 extern long cm_IoctlSetCacheSize(smb_ioctl_t *ioctlp, cm_user_t *userp);
96
97 extern long cm_IoctlGetCacheParms(smb_ioctl_t *ioctlp, cm_user_t *userp);
98
99 extern long cm_IoctlGetCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
100
101 extern long cm_IoctlNewCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
102
103 extern long cm_IoctlGetWsCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
104
105 extern long cm_IoctlSysName(smb_ioctl_t *ioctlp, cm_user_t *userp);
106
107 extern long cm_IoctlGetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
108
109 extern long cm_IoctlSetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
110
111 extern long cm_IoctlSetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
112
113 extern long cm_IoctlGetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
114
115 extern long cm_IoctlStoreBehind(smb_ioctl_t *ioctlp, cm_user_t *userp);
116
117 extern long cm_IoctlCreateMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
118
119 extern long cm_CleanFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
120
121 extern long cm_FlushFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
122
123 extern long cm_FlushVolume(cm_user_t *, cm_req_t *reqp, afs_uint32 cell, afs_uint32 volume);
124
125 extern long cm_FlushParent(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
126
127 extern long cm_IoctlTraceControl(smb_ioctl_t *ioctlp, cm_user_t *userp);
128
129 extern long cm_IoctlSetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
130
131 extern long cm_IoctlGetTokenIter(smb_ioctl_t *ioctlp, cm_user_t *userp);
132
133 extern long cm_IoctlGetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
134
135 extern long cm_IoctlDelToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
136
137 extern long cm_IoctlDelAllToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
138
139 extern long cm_IoctlSymlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
140
141 extern long cm_IoctlIslink(smb_ioctl_t *ioctlp, cm_user_t *userp);
142
143 extern long cm_IoctlListlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
144
145 extern long cm_IoctlDeletelink(smb_ioctl_t *ioctlp, cm_user_t *userp);
146
147 extern long cm_IoctlMakeSubmount(smb_ioctl_t *ioctlp, cm_user_t *userp);
148
149 extern long cm_IoctlGetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
150
151 extern long cm_IoctlSetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
152
153 extern long cm_IoctlShutdown(smb_ioctl_t *ioctlp, cm_user_t *userp);
154
155 extern long cm_IoctlFreemountAddCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
156
157 extern long cm_IoctlFreemountRemoveCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
158
159 extern long cm_IoctlMemoryDump(smb_ioctl_t *ioctlp, cm_user_t *userp);
160
161 extern long cm_IoctlRxStatProcess(smb_ioctl_t *ioctlp, cm_user_t *userp);
162
163 extern long cm_IoctlRxStatPeer(smb_ioctl_t *ioctlp, cm_user_t *userp);
164
165 extern long cm_IoctlUUIDControl(struct smb_ioctl * ioctlp, struct cm_user *userp);
166
167 #endif /* __CM_IOCTL_INTERFACES_ONLY__ */
168
169 #endif /*  __CM_IOCTL_H_ENV__ */