win-power-mgmt-flush-test-20041003
[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 int   cm_sysNameCount;
48 extern char *cm_sysNameList[MAXNUMSYSNAMES];
49
50 #ifndef __CM_IOCTL_INTERFACES_ONLY__
51
52 void cm_InitIoctl(void);
53
54 void cm_ResetACLCache(cm_user_t *userp);
55
56 extern long cm_IoctlGetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
57
58 extern long cm_IoctlGetFileCellName(smb_ioctl_t *ioctlp, cm_user_t *userp);
59
60 extern long cm_IoctlSetACL(smb_ioctl_t *ioctlp, cm_user_t *userp);
61
62 extern long cm_IoctlFlushVolume(smb_ioctl_t *ioctlp, cm_user_t *userp);
63
64 extern long cm_IoctlFlushFile(smb_ioctl_t *ioctlp, cm_user_t *userp);
65
66 extern long cm_IoctlSetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
67
68 extern long cm_IoctlGetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
69
70 extern long cm_IoctlWhereIs(smb_ioctl_t *ioctlp, cm_user_t *userp);
71
72 extern long cm_IoctlStatMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
73
74 extern long cm_IoctlDeleteMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
75
76 extern long cm_IoctlCheckServers(smb_ioctl_t *ioctlp, cm_user_t *userp);
77
78 extern long cm_IoctlGag(smb_ioctl_t *ioctlp, cm_user_t *userp);
79
80 extern long cm_IoctlCheckVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp);
81
82 extern long cm_IoctlSetCacheSize(smb_ioctl_t *ioctlp, cm_user_t *userp);
83
84 extern long cm_IoctlGetCacheParms(smb_ioctl_t *ioctlp, cm_user_t *userp);
85
86 extern long cm_IoctlGetCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
87
88 extern long cm_IoctlNewCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
89
90 extern long cm_IoctlGetWsCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
91
92 extern long cm_IoctlSysName(smb_ioctl_t *ioctlp, cm_user_t *userp);
93
94 extern long cm_IoctlGetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
95
96 extern long cm_IoctlSetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp);
97
98 extern long cm_IoctlSetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
99
100 extern long cm_IoctlGetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp);
101
102 extern long cm_IoctlStoreBehind(smb_ioctl_t *ioctlp, cm_user_t *userp);
103
104 extern long cm_IoctlCreateMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp);
105
106 extern long cm_FlushFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
107
108 extern long cm_IoctlTraceControl(smb_ioctl_t *ioctlp, cm_user_t *userp);
109
110 extern long cm_IoctlSetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
111
112 extern long cm_IoctlGetTokenIter(smb_ioctl_t *ioctlp, cm_user_t *userp);
113
114 extern long cm_IoctlGetToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
115
116 extern long cm_IoctlDelToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
117
118 extern long cm_IoctlDelAllToken(smb_ioctl_t *ioctlp, cm_user_t *userp);
119
120 extern long cm_IoctlSymlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
121
122 extern long cm_IoctlIslink(smb_ioctl_t *ioctlp, cm_user_t *userp);
123
124 extern long cm_IoctlListlink(smb_ioctl_t *ioctlp, cm_user_t *userp);
125
126 extern long cm_IoctlDeletelink(smb_ioctl_t *ioctlp, cm_user_t *userp);
127
128 extern long cm_IoctlMakeSubmount(smb_ioctl_t *ioctlp, cm_user_t *userp);
129
130 extern long cm_IoctlGetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
131
132 extern long cm_IoctlSetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp);
133
134 extern long cm_IoctlShutdown(smb_ioctl_t *ioctlp, cm_user_t *userp);
135
136 extern long cm_IoctlFreemountAddCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
137
138 extern long cm_IoctlFreemountRemoveCell(smb_ioctl_t *ioctlp, cm_user_t *userp);
139
140 extern long cm_IoctlMemoryDump(smb_ioctl_t *ioctlp, cm_user_t *userp);
141 #endif /* __CM_IOCTL_INTERFACES_ONLY__ */
142
143 #endif /*  __CM_IOCTL_H_ENV__ */