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 __SMB_IOCTL_H_ENV__
11 #define __SMB_IOCTL_H_ENV__ 1
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_._"
17 /* max parms for ioctl, in either direction */
18 #define SMB_IOCTL_MAXDATA 8192*2
20 #define SMB_IOCTL_MAXPROCS 64 /* max # of calls */
22 /* procedure implementing an ioctl */
23 typedef long (smb_ioctlProc_t)(smb_ioctl_t *, struct cm_user *userp);
25 extern void smb_InitIoctl(void);
27 extern void smb_SetupIoctlFid(smb_fid_t *fidp, cm_space_t *prefix);
29 extern long smb_IoctlRead(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp);
31 extern long smb_IoctlWrite(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp);
33 extern long smb_IoctlV3Write(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp);
35 extern long smb_IoctlV3Read(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp);
37 extern long smb_IoctlReadRaw(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp,
40 extern long smb_IoctlPrepareRead(smb_fid_t *fidp, smb_ioctl_t *ioctlp, cm_user_t *userp);
42 #endif /* __SMB_IOCTL_H_ENV__ */