/*
* Copyright 2000, International Business Machines Corporation and others.
* All Rights Reserved.
- *
+ *
* This software has been released under the terms of the IBM Public
* License. For details, see the LICENSE file in the top-level source
* directory or online at http://www.openafs.org/dl/license10.html
*/
-#ifndef __CM_IOCTL_H_ENV__
-#define __CM_IOCTL_H_ENV__ 1
+#ifndef OPENAFS_WINNT_AFSD_CM_IOCTL_H
+#define OPENAFS_WINNT_AFSD_CM_IOCTL_H 1
#ifndef __CM_IOCTL_INTERFACES_ONLY__
#include "cm_user.h"
unsigned short rank;
} cm_SPref_t;
-typedef struct cm_SPrefRequest {
+typedef struct cm_SPrefRequest {
unsigned short offset;
unsigned short num_servers;
unsigned short flags;
char *outDatap; /* output results assembled so far */
char *outAllocp; /* output results assembled so far */
afs_uint32 outCopied; /* # of output bytes copied back so far
-
+
/* flags */
afs_uint32 flags;
} cm_ioctl_t;
#define CM_IOCTLFLAG_DATAIN 1 /* reading data from client to server */
#define CM_IOCTLFLAG_LOGON 2 /* got tokens from integrated logon */
#define CM_IOCTLFLAG_USEUTF8 4 /* this request is using UTF-8 strings */
+#define CM_IOCTLFLAG_DATAOUT 8 /* sending data from server to client */
-/*
+/*
* The cm_IoctlQueryOptions structure is designed to be extendible.
- * None of the fields are required but when specified
- * by the client and understood by the server will be
+ * None of the fields are required but when specified
+ * by the client and understood by the server will be
* used to more precisely specify the desired data.
*
- * size must be set to the size of the structure
+ * size must be set to the size of the structure
* sent by the client including any variable length
* data appended to the end of the static structure.
*
* been filled in and should be used.
*
* variable length data can be specified with fields
- * that include offsets to data appended to the
+ * that include offsets to data appended to the
* structure.
*
* when adding new fields you must:
*
* It is critical that flags be consistent across all
* implementations of the pioctl interface for a given
- * platform. This should be considered a public
+ * platform. This should be considered a public
* interface used by third party application developers.
*/
typedef struct cm_IoctlQueryOptions {
- afs_uint32 size;
+ afs_uint32 size;
afs_uint32 field_flags;
afs_uint32 literal;
cm_fid_t fid;
#define MAXNUMSYSNAMES 16 /* max that current constants allow */
#define MAXSYSNAME 128 /* max sysname (i.e. @sys) size */
-extern clientchar_t *cm_sysName;
extern unsigned int cm_sysNameCount;
extern clientchar_t *cm_sysNameList[MAXNUMSYSNAMES];
+extern unsigned int cm_sysName64Count;
+extern clientchar_t *cm_sysName64List[MAXNUMSYSNAMES];
/* Paths that are passed into pioctl calls can be specified using
UTF-8. These strings are prefixed with UTF8_PREFIX defined below.
#define AFSCALL_RXSTATS_DISABLE 0x2 /* Disable RX stats */
#define AFSCALL_RXSTATS_CLEAR 0x4 /* Clear RX stats */
+/* pioctl flags */
+
+#define AFSCALL_FLAG_LOCAL_SYSTEM 0x1
+
#ifndef __CM_IOCTL_INTERFACES_ONLY__
extern void cm_InitIoctl(void);
-extern void cm_ResetACLCache(cm_user_t *userp);
-
extern cm_ioctlQueryOptions_t *
cm_IoctlGetQueryOptions(struct cm_ioctl *ioctlp, struct cm_user *userp);
extern afs_int32 cm_IoctlSetACL(cm_ioctl_t *ioctlp, cm_user_t *userp, cm_scache_t *scp, cm_req_t *reqp);
-extern afs_int32 cm_IoctlFlushAllVolumes(cm_ioctl_t *ioctlp, cm_user_t *userp);
+extern afs_int32 cm_IoctlFlushAllVolumes(cm_ioctl_t *ioctlp, cm_user_t *userp, cm_req_t *reqp);
extern afs_int32 cm_IoctlFlushVolume(cm_ioctl_t *ioctlp, cm_user_t *userp, cm_scache_t *scp, cm_req_t *reqp);
extern afs_int32 cm_IoctlGetOwner(cm_ioctl_t *ioctlp, cm_user_t *userp, cm_scache_t *scp, cm_req_t *reqp);
+extern afs_int32 cm_IoctlSetOwner(cm_ioctl_t *ioctlp, cm_user_t *userp, cm_scache_t *scp, cm_req_t *reqp);
+
+extern afs_int32 cm_IoctlSetGroup(cm_ioctl_t *ioctlp, cm_user_t *userp, cm_scache_t *scp, cm_req_t *reqp);
+
extern afs_int32 cm_IoctlWhereIs(cm_ioctl_t *ioctlp, cm_user_t *userp, cm_scache_t *scp, cm_req_t *reqp);
extern afs_int32 cm_IoctlStatMountPoint(cm_ioctl_t *ioctlp, cm_user_t *userp, cm_scache_t *scp, cm_req_t *reqp);
extern afs_int32 cm_IoctlNewCell(cm_ioctl_t *ioctlp, cm_user_t *userp);
+extern afs_int32 cm_IoctlNewCell2(cm_ioctl_t *ioctlp, cm_user_t *userp);
+
extern afs_int32 cm_IoctlGetWsCell(cm_ioctl_t *ioctlp, cm_user_t *userp);
extern afs_int32 cm_IoctlSysName(cm_ioctl_t *ioctlp, cm_user_t *userp);
extern afs_int32 cm_IoctlGetFileType(cm_ioctl_t *ioctlp, cm_user_t *userp, struct cm_scache *scp, struct cm_req *reqp);
-extern afs_int32 cm_IoctlVolStatTest(struct cm_ioctl *ioctlp, struct cm_user *userp);
+extern afs_int32 cm_IoctlVolStatTest(struct cm_ioctl *ioctlp, struct cm_user *userp, cm_req_t *reqp);
extern afs_int32 cm_IoctlUnicodeControl(struct cm_ioctl *ioctlp, struct cm_user * userp);
extern void TranslateExtendedChars(char *str);
+extern afs_int32 cm_IoctlGetUnixMode(cm_ioctl_t *ioctlp, cm_user_t *userp, cm_scache_t *scp, cm_req_t *reqp);
+
+extern afs_int32 cm_IoctlSetUnixMode(cm_ioctl_t *ioctlp, cm_user_t *userp, cm_scache_t *scp, cm_req_t *reqp);
+
+extern afs_int32 cm_IoctlGetVerifyData(cm_ioctl_t *ioctlp);
+
+extern afs_int32 cm_IoctlSetVerifyData(cm_ioctl_t *ioctlp);
+
+extern afs_int32 cm_IoctlGetCallerAccess(cm_ioctl_t *ioctlp, struct cm_user *userp, cm_scache_t *scp, cm_req_t *reqp);
+
#endif /* __CM_IOCTL_INTERFACES_ONLY__ */
-#endif /* __CM_IOCTL_H_ENV__ */
+#endif /* OPENAFS_WINNT_AFSD_CM_IOCTL_H */