windows-fs-getcacheparms-20070515
[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 #define CM_IOCTLCACHEPARMS              16
44 typedef struct cm_cacheParms {
45         afs_uint64 parms[CM_IOCTLCACHEPARMS];
46 } cm_cacheParms_t;
47
48
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];
54
55 /* flags for rxstats pioctl */
56
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 */
61
62 #ifndef __CM_IOCTL_INTERFACES_ONLY__
63
64 void cm_InitIoctl(void);
65
66 void cm_ResetACLCache(cm_user_t *userp);
67
68 extern long cm_IoctlGetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
69
70 extern long cm_IoctlGetFileCellName(smb_ioctl_t *ioctlp, cm_user_t *userp);
71
72 extern long cm_IoctlSetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
73
74 extern long cm_IoctlFlushAllVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp);
75
76 extern long cm_IoctlFlushVolume(smb_ioctl_t *ioctlp, cm_user_t *userp);
77
78 extern long cm_IoctlFlushFile(smb_ioctl_t *ioctlp, cm_user_t *userp);
79
80 extern long cm_IoctlSetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
81
82 extern long cm_IoctlGetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
83
84 extern long cm_IoctlGetFid(smb_ioctl_t *ioctlp, cm_user_t *userp);
85
86 extern long cm_IoctlGetOwner(smb_ioctl_t *ioctlp, cm_user_t *userp);
87
88 extern long cm_IoctlWhereIs(smb_ioctl_t *ioctlp, cm_user_t *userp);
89
90 extern long cm_IoctlStatMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
91
92 extern long cm_IoctlDeleteMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
93
94 extern long cm_IoctlCheckServers(smb_ioctl_t *ioctlp, cm_user_t *userp);
95
96 extern long cm_IoctlGag(smb_ioctl_t *ioctlp, cm_user_t *userp);
97
98 extern long cm_IoctlCheckVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp);
99
100 extern long cm_IoctlSetCacheSize(smb_ioctl_t *ioctlp, cm_user_t *userp);
101
102 extern long cm_IoctlGetCacheParms(smb_ioctl_t *ioctlp, cm_user_t *userp);
103
104 extern long cm_IoctlGetCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
105
106 extern long cm_IoctlNewCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
107
108 extern long cm_IoctlGetWsCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
109
110 extern long cm_IoctlSysName(smb_ioctl_t *ioctlp, cm_user_t *userp);
111
112 extern long cm_IoctlGetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
113
114 extern long cm_IoctlSetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
115
116 extern long cm_IoctlSetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
117
118 extern long cm_IoctlGetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
119
120 extern long cm_IoctlStoreBehind(smb_ioctl_t *ioctlp, cm_user_t *userp);
121
122 extern long cm_IoctlCreateMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
123
124 extern long cm_CleanFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
125
126 extern long cm_FlushFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
127
128 extern long cm_FlushVolume(cm_user_t *, cm_req_t *reqp, afs_uint32 cell, afs_uint32 volume);
129
130 extern long cm_FlushParent(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
131
132 extern long cm_IoctlTraceControl(smb_ioctl_t *ioctlp, cm_user_t *userp);
133
134 extern long cm_IoctlSetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
135
136 extern long cm_IoctlGetTokenIter(smb_ioctl_t *ioctlp, cm_user_t *userp);
137
138 extern long cm_IoctlGetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
139
140 extern long cm_IoctlDelToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
141
142 extern long cm_IoctlDelAllToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
143
144 extern long cm_IoctlSymlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
145
146 extern long cm_IoctlIslink(smb_ioctl_t *ioctlp, cm_user_t *userp);
147
148 extern long cm_IoctlListlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
149
150 extern long cm_IoctlDeletelink(smb_ioctl_t *ioctlp, cm_user_t *userp);
151
152 extern long cm_IoctlMakeSubmount(smb_ioctl_t *ioctlp, cm_user_t *userp);
153
154 extern long cm_IoctlGetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
155
156 extern long cm_IoctlSetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
157
158 extern long cm_IoctlShutdown(smb_ioctl_t *ioctlp, cm_user_t *userp);
159
160 extern long cm_IoctlFreemountAddCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
161
162 extern long cm_IoctlFreemountRemoveCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
163
164 extern long cm_IoctlMemoryDump(smb_ioctl_t *ioctlp, cm_user_t *userp);
165
166 extern long cm_IoctlRxStatProcess(smb_ioctl_t *ioctlp, cm_user_t *userp);
167
168 extern long cm_IoctlRxStatPeer(smb_ioctl_t *ioctlp, cm_user_t *userp);
169
170 extern long cm_IoctlUUIDControl(struct smb_ioctl * ioctlp, struct cm_user *userp);
171
172 extern long cm_IoctlPathAvailability(struct smb_ioctl * ioctlp, struct cm_user *userp);
173
174 #endif /* __CM_IOCTL_INTERFACES_ONLY__ */
175
176 #endif /*  __CM_IOCTL_H_ENV__ */