windows-64bit-data-version-20071114
[openafs.git] / src / WINNT / afsd / smb_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 __SMB_IOCTL_H_ENV__
11 #define __SMB_IOCTL_H_ENV__ 1
12
13 /* magic file name for ioctl opens */
14 #define SMB_IOCTL_FILENAME      "\\_._AFS_IOCTL_._"     /* double backslashes for C compiler */
15 #define SMB_IOCTL_FILENAME_NOSLASH "_._AFS_IOCTL_._"
16
17 /* max parms for ioctl, in either direction */
18 #define SMB_IOCTL_MAXDATA       8192*2
19
20 #define SMB_IOCTL_MAXPROCS      64                      /* max # of calls */
21
22 /* procedure implementing an ioctl */
23 typedef long (smb_ioctlProc_t)(smb_ioctl_t *, struct cm_user *userp);
24
25 extern void smb_InitIoctl(void);
26
27 extern void smb_SetupIoctlFid(smb_fid_t *fidp, cm_space_t *prefix);
28
29 extern long smb_IoctlRead(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp);
30
31 extern long smb_IoctlWrite(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp);
32
33 extern long smb_IoctlV3Write(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp);
34
35 extern long smb_IoctlV3Read(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp);
36
37 extern long smb_IoctlReadRaw(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp,
38         smb_packet_t *outp);
39
40 extern long smb_IoctlPrepareRead(smb_fid_t *fidp, smb_ioctl_t *ioctlp, cm_user_t *userp);
41
42 #endif /*  __SMB_IOCTL_H_ENV__ */