Windows: fs getcalleraccess
[openafs.git] / src / WINNT / afsd / cm_ioctl.h
index c62422f..8227fb3 100644 (file)
@@ -1,14 +1,14 @@
 /*
  * 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"
@@ -28,7 +28,7 @@ typedef struct cm_SPref {
         unsigned short rank;
 } cm_SPref_t;
 
-typedef struct cm_SPrefRequest {             
+typedef struct cm_SPrefRequest {
         unsigned short offset;
         unsigned short num_servers;
         unsigned short flags;
@@ -62,7 +62,7 @@ typedef struct cm_ioctl {
     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;
@@ -74,13 +74,13 @@ typedef struct cm_ioctl {
 #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.
  *
@@ -88,7 +88,7 @@ typedef struct cm_ioctl {
  * 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:
@@ -98,12 +98,12 @@ typedef struct cm_ioctl {
  *
  * 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;
@@ -118,9 +118,10 @@ typedef struct cm_IoctlQueryOptions {
 
 #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.
@@ -138,6 +139,10 @@ extern const int  utf8_prefix_size;
 #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);
@@ -201,6 +206,8 @@ extern afs_int32 cm_IoctlGetCell(cm_ioctl_t *ioctlp, cm_user_t *userp);
 
 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);
@@ -275,6 +282,16 @@ extern afs_int32 cm_IoctlUnicodeControl(struct cm_ioctl *ioctlp, struct cm_user
 
 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 */