X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2FWINNT%2Fafsd%2Fsmb_ioctl.h;h=ba136d31f706295c6af1224239f7bde2de6ecea9;hp=db157b95b21f7ff6855d4ef8ad852bdd1ac4fcbd;hb=380f9a46a3feda44621cfe94d93a9c70d3e9ff7f;hpb=7f4414ae3983fe7260de19cf3ccb7659d76a33f3 diff --git a/src/WINNT/afsd/smb_ioctl.h b/src/WINNT/afsd/smb_ioctl.h index db157b9..ba136d3 100644 --- a/src/WINNT/afsd/smb_ioctl.h +++ b/src/WINNT/afsd/smb_ioctl.h @@ -10,33 +10,200 @@ #ifndef __SMB_IOCTL_H_ENV__ #define __SMB_IOCTL_H_ENV__ 1 +#include +#include + /* magic file name for ioctl opens */ -#define SMB_IOCTL_FILENAME "\\_._AFS_IOCTL_._" /* double backslashes for C compiler */ +#define SMB_IOCTL_FILENAME CM_IOCTL_FILENAME +#define SMB_IOCTL_FILENAME_NOSLASH CM_IOCTL_FILENAME_NOSLASH /* max parms for ioctl, in either direction */ -#define SMB_IOCTL_MAXDATA 8192 +#define SMB_IOCTL_MAXDATA CM_IOCTL_MAXDATA +#define SMB_IOCTL_MAXPROCS CM_IOCTL_MAXPROCS + +struct smb_fid; +struct smb_user; +struct smb_vc; + +/* ioctl parameter, while being assembled and/or processed */ +typedef struct smb_ioctl { + /* fid pointer */ + struct smb_fid *fidp; + + /* uid pointer */ + struct smb_user *uidp; + + /* pathname associated with the Tree ID */ + clientchar_t *tidPathp; + + /* prefix for subst drives */ + cm_space_t *prefix; -#define SMB_IOCTL_MAXPROCS 64 /* max # of calls */ + cm_ioctl_t ioctl; +} smb_ioctl_t; /* procedure implementing an ioctl */ typedef long (smb_ioctlProc_t)(smb_ioctl_t *, struct cm_user *userp); -extern void smb_InitIoctl(void); +extern void +smb_InitIoctl(void); + +extern void +smb_SetupIoctlFid(struct smb_fid *fidp, cm_space_t *prefix); + +extern afs_int32 +smb_IoctlRead(struct smb_fid *fidp, struct smb_vc *vcp, + struct smb_packet *inp, struct smb_packet *outp); + +extern afs_int32 +smb_IoctlWrite(struct smb_fid *fidp, struct smb_vc *vcp, + struct smb_packet *inp, struct smb_packet *outp); + +extern afs_int32 +smb_IoctlV3Write(struct smb_fid *fidp, struct smb_vc *vcp, + struct smb_packet *inp, struct smb_packet *outp); + +extern afs_int32 +smb_IoctlV3Read(struct smb_fid *fidp, struct smb_vc *vcp, + struct smb_packet *inp, struct smb_packet *outp); + +extern afs_int32 +smb_IoctlReadRaw(struct smb_fid *fidp, struct smb_vc *vcp, + struct smb_packet *inp, struct smb_packet *outp); + +extern afs_int32 +smb_IoctlPrepareRead(struct smb_fid *fidp, smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 +smb_ParseIoctlPath(smb_ioctl_t *ioctlp, cm_user_t *userp, cm_req_t *reqp, + cm_scache_t **scpp, afs_uint32 flags); + +extern afs_int32 +smb_ParseIoctlParent(smb_ioctl_t *ioctlp, cm_user_t *userp, cm_req_t *reqp, + cm_scache_t **scpp, clientchar_t *leafp); + +extern afs_int32 +smb_IoctlSetToken(struct smb_ioctl *ioctlp, struct cm_user *userp); + +extern afs_int32 +smb_IoctlGetSMBName(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetACL(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetFileCellName(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlSetACL(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlFlushAllVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlFlushVolume(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlFlushFile(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlSetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetVolumeStatus(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetFid(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetOwner(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlWhereIs(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlStatMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlDeleteMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlCheckServers(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGag(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlCheckVolumes(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlSetCacheSize(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetCacheParms(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetCell(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlNewCell(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlNewCell2(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetWsCell(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlSysName(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlSetCellStatus(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlSetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetSPrefs(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlStoreBehind(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlCreateMountPoint(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 cm_CleanFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp); + +extern afs_int32 cm_FlushFile(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp); + +extern afs_int32 cm_FlushVolume(cm_user_t *, cm_req_t *reqp, afs_uint32 cell, afs_uint32 volume); + +extern afs_int32 cm_FlushParent(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp); + +extern afs_int32 smb_IoctlTraceControl(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlSetToken(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetTokenIter(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetToken(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlDelToken(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlDelAllToken(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlSymlink(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlIslink(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlListlink(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlDeletelink(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlMakeSubmount(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlGetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlSetRxkcrypt(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlShutdown(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlFreemountAddCell(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlFreemountRemoveCell(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlMemoryDump(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlRxStatProcess(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlRxStatPeer(smb_ioctl_t *ioctlp, cm_user_t *userp); + +extern afs_int32 smb_IoctlUUIDControl(struct smb_ioctl * ioctlp, struct cm_user *userp); + +extern afs_int32 smb_IoctlPathAvailability(struct smb_ioctl * ioctlp, struct cm_user *userp); -extern void smb_SetupIoctlFid(smb_fid_t *fidp, cm_space_t *prefix); +extern afs_int32 smb_IoctlGetFileType(smb_ioctl_t *ioctlp, cm_user_t *userp); -extern long smb_IoctlRead(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp); +extern afs_int32 smb_IoctlVolStatTest(struct smb_ioctl *ioctlp, struct cm_user *userp); -extern long smb_IoctlWrite(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp); +extern afs_int32 smb_IoctlUnicodeControl(struct smb_ioctl *ioctlp, struct cm_user * userp); -extern long smb_IoctlV3Read(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp); +extern afs_int32 smb_IoctlSetOwner(struct smb_ioctl *ioctlp, struct cm_user *userp); -#ifndef DJGPP -extern long smb_IoctlReadRaw(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, - smb_packet_t *outp); -#else /* DJGPP */ -extern long smb_IoctlReadRaw(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, - smb_packet_t *outp, dos_ptr rawBuf); -#endif /* !DJGPP */ +extern afs_int32 smb_IoctlSetGroup(struct smb_ioctl *ioctlp, struct cm_user *userp); #endif /* __SMB_IOCTL_H_ENV__ */