afs: Return to userspace after AFS_NEW_BKG reqs
[openafs.git] / src / config / afs_args.h
index 7e48d9c..af09c81 100644 (file)
  * directory or online at http://www.openafs.org/dl/license10.html
  */
 
+#ifndef _AFS_ARGS_H_
+#define _AFS_ARGS_H_
+
 /*
  * AFS system call opcodes
+ *
+ * When adding new opcodes, please also update afsd_init_syscall_opcodes()
+ * for syscall tracing.
  */
 
-#ifndef _AFS_ARGS_H_
-#define _AFS_ARGS_H_
-
-#define        AFSOP_START_RXCALLBACK    0     /* no aux parms */
-#define        AFSOP_START_AFS           1     /* no aux parms */
-#define        AFSOP_START_BKG           2     /* no aux parms */
-#define        AFSOP_START_TRUNCDAEMON   3     /* no aux parms */
+#define AFSOP_START_RXCALLBACK   0     /* no aux parms */
+#define AFSOP_START_AFS                  1     /* no aux parms */
+#define AFSOP_START_BKG                  2     /* no aux parms */
+#define AFSOP_START_TRUNCDAEMON          3     /* no aux parms */
 #define AFSOP_START_CS           4     /* no aux parms */
-
-#define        AFSOP_ADDCELL             5     /* parm 2 = cell str */
-#define        AFSOP_CACHEINIT           6     /* parms 2-4 -> cache sizes */
-#define        AFSOP_CACHEINFO           7     /* the cacheinfo file */
-#define        AFSOP_VOLUMEINFO          8     /* the volumeinfo file */
-#define        AFSOP_CACHEFILE           9     /* a random cache file (V*) */
-#define        AFSOP_CACHEINODE         10     /* random cache file by inode */
-#define        AFSOP_AFSLOG             11     /* output log file */
-#define        AFSOP_ROOTVOLUME         12     /* non-standard root volume name */
-#define        AFSOP_STARTLOG           14     /* temporary: Start afs logging */
-#define        AFSOP_ENDLOG             15     /* temporary: End afs logging */
+#define AFSOP_ADDCELL            5     /* parm 2 = cell str */
+#define AFSOP_CACHEINIT                  6     /* parms 2-4 -> cache sizes */
+#define AFSOP_CACHEINFO                  7     /* the cacheinfo file */
+#define AFSOP_VOLUMEINFO         8     /* the volumeinfo file */
+#define AFSOP_CACHEFILE                  9     /* a random cache file (V*) */
+#define AFSOP_CACHEINODE        10     /* random cache file by inode */
+#define AFSOP_AFSLOG            11     /* output log file */
+#define AFSOP_ROOTVOLUME        12     /* non-standard root volume name */
+
+#define AFSOP_STARTLOG          14     /* temporary: Start afs logging */
+#define AFSOP_ENDLOG            15     /* temporary: End afs logging */
 #define AFSOP_AFS_VFSMOUNT      16     /* vfsmount cover for hpux */
 #define AFSOP_ADVISEADDR        17     /* to init rx cid generator */
-#define AFSOP_CLOSEWAIT         18     /* make all closes synchronous */
-#define        AFSOP_RXEVENT_DAEMON     19     /* rxevent daemon */
-#define        AFSOP_GETMTU             20     /* stand-in for SIOCGIFMTU, for now */
-#define        AFSOP_GETIFADDRS         21     /* get machine's ethernet interfaces */
-
-#define        AFSOP_ADDCELL2           29     /* 2nd add cell protocol interface */
-#define        AFSOP_AFSDB_HANDLER      30     /* userspace AFSDB lookup handler */
-#define        AFSOP_SET_DYNROOT        31     /* enable/disable dynroot support */
-#define        AFSOP_ADDCELLALIAS       32     /* create alias for existing cell */
-#define        AFSOP_SET_FAKESTAT       33     /* enable/disable fakestat support */
-#define        AFSOP_CELLINFO           34     /* set the cellinfo file name */
-#define        AFSOP_SET_THISCELL       35     /* set the primary cell */
+#define AFSOP_CLOSEWAIT                 18     /* make all closes synchronous */
+#define AFSOP_RXEVENT_DAEMON    19     /* rxevent daemon */
+#define AFSOP_GETMTU            20     /* stand-in for SIOCGIFMTU, for now */
+#define AFSOP_GETIFADDRS        21     /* get machine's ethernet interfaces */
+
+#define AFSOP_ADDCELL2          29     /* 2nd add cell protocol interface */
+#define AFSOP_AFSDB_HANDLER     30     /* userspace AFSDB lookup handler */
+#define AFSOP_SET_DYNROOT       31     /* enable/disable dynroot support */
+#define AFSOP_ADDCELLALIAS      32     /* create alias for existing cell */
+#define AFSOP_SET_FAKESTAT      33     /* enable/disable fakestat support */
+#define AFSOP_CELLINFO          34     /* set the cellinfo file name */
+#define AFSOP_SET_THISCELL      35     /* set the primary cell */
 #define AFSOP_BASIC_INIT        36     /* used to be part of START_AFS */
 #define AFSOP_SET_BACKUPTREE    37     /* enable backup tree support */
 #define AFSOP_SET_RXPCK                 38     /* set rx_extraPackets*/
-#define AFSOP_BUCKETPCT          39     /* bucket percentage */
-#define AFSOP_SET_RXMAXMTU       40     /* set rx_MyMaxSendSize,rx_maxReceiveSizeUser,rx_maxReceiveSize */
-#define AFSOP_BKG_HANDLER        41     /* userspace-capable Bkg daemon */
-#define AFSOP_SET_RXMAXFRAGS     43     /* set rxi_nSendFrags, rxi_nRecvFrags */
+#define AFSOP_BUCKETPCT                 39     /* bucket percentage */
+#define AFSOP_SET_RXMAXMTU      40     /* set rx_MyMaxSendSize,rx_maxReceiveSizeUser,rx_maxReceiveSize */
+#define AFSOP_BKG_HANDLER       41     /* userspace-capable Bkg daemon */
+#define AFSOP_GETMASK           42     /* stand-in for SIOCGIFNETMASK */
+#define AFSOP_SET_RXMAXFRAGS    43     /* set rxi_nSendFrags, rxi_nRecvFrags */
+#define AFSOP_SET_RMTSYS_FLAG   44     /* set flag if rmtsys is enabled */
+#define AFSOP_SEED_ENTROPY      45     /* Give the kernel hcrypto entropy */
+#define AFSOP_SET_INUMCALC      46     /* set inode number calculation method */
+#define AFSOP_SET_VOLUME_TTL     47     /* set the vldb cache timeout */
+
+#define AFSOP_RXLISTENER_DAEMON  48    /* starts kernel RX listener */
+
+#define AFSOP_CACHEBASEDIR      50     /* cache base dir */
+#define AFSOP_CACHEDIRS                 51     /* number of files per dir */
+#define AFSOP_CACHEFILES        52     /* number of files */
+
+#define AFSOP_SETINT            60     /* set key/value pairs for ints */
+
+#define AFSOP_GO               100     /* whether settime is being done */
+
+#define AFSOP_CHECKLOCKS       200     /* dump lock state */
+#define AFSOP_SHUTDOWN         201     /* Totally shutdown afs (deallocate all) */
+
+#define AFSOP_STOP_RXCALLBACK  210     /* Stop CALLBACK process */
+#define AFSOP_STOP_AFS         211     /* Stop AFS process */
+#define AFSOP_STOP_BKG         212     /* Stop BKG process */
+#define AFSOP_STOP_TRUNCDAEMON 213     /* Stop cache truncate daemon */
+/* AFSOP_STOP_RXEVENT          214        defined in osi.h */
+/* AFSOP_STOP_COMPLETE         215        defined in osi.h */
+#define AFSOP_STOP_CS          216     /* Stop CheckServer daemon */
+/* AFSOP_STOP_RXK_LISTENER     217        defined in osi.h */
+#define AFSOP_STOP_AFSDB       218     /* Stop AFSDB handler */
+#define AFSOP_STOP_NETIF       219     /* Stop Netif poller */
+
+#define AFSOP_MAX_OPCODE       AFSOP_STOP_NETIF /* Largest defined opcode. */
+
+/*
+ * AFS system call types and flags.
+ */
 
 /* The range 20-30 is reserved for AFS system offsets in the afs_syscall */
-#define        AFSCALL_PIOCTL          20
-#define        AFSCALL_SETPAG          21
-#define        AFSCALL_IOPEN           22
-#define        AFSCALL_ICREATE         23
-#define        AFSCALL_IREAD           24
-#define        AFSCALL_IWRITE          25
-#define        AFSCALL_IINC            26
-#define        AFSCALL_IDEC            27
-#define        AFSCALL_CALL            28
-
-#define AFSCALL_ICL             30
+#define AFSCALL_PIOCTL         20
+#define AFSCALL_SETPAG         21
+#define AFSCALL_IOPEN          22
+#define AFSCALL_ICREATE                23
+#define AFSCALL_IREAD          24
+#define AFSCALL_IWRITE         25
+#define AFSCALL_IINC           26
+#define AFSCALL_IDEC           27
+#define AFSCALL_CALL           28
+
+#define AFSCALL_ICL            30
 
 /* 64 bit versions of inode system calls. */
 #define AFSCALL_IOPEN64                41
 #define AFSCALL_INIT_KERNEL_CONFIG 47  /* set vnode glue ops. */
 #endif
 
-#define        AFSOP_GETMASK            42     /* stand-in for SIOCGIFNETMASK */
-/* For SGI, this can't interfere with any of the 64 bit inode calls. */
-#define AFSOP_RXLISTENER_DAEMON  48    /* starts kernel RX listener */
-
-/* skip 64 bit calls */
-#define AFSOP_CACHEBASEDIR       50     /* cache base dir */
-#define AFSOP_CACHEDIRS          51     /* number of files per dir */
-#define AFSOP_CACHEFILES         52     /* number of files */
-
-#define AFSOP_SETINT             60     /* we should just set key/value pairs
-                                          for things which are just ints */
-
 /* these are for initialization flags */
 
 #define AFSCALL_INIT_MEMCACHE 0x1
 #define AFSCALL_RXSTATS_DISABLE        0x2     /* Disable RX stats */
 #define AFSCALL_RXSTATS_CLEAR  0x4     /* Clear RX stats */
 
-#define        AFSOP_GO                100     /* whether settime is being done */
-/* not for initialization: debugging assist */
-#define        AFSOP_CHECKLOCKS        200     /* dump lock state */
-#define        AFSOP_SHUTDOWN          201     /* Totally shutdown afs (deallocate all) */
-
-/* The following aren't used by afs_initState but by afs_termState! */
-#define        AFSOP_STOP_RXCALLBACK   210     /* Stop CALLBACK process */
-#define        AFSOP_STOP_AFS          211     /* Stop AFS process */
-#define AFSOP_STOP_CS          216     /* Stop CheckServer daemon. */
-#define        AFSOP_STOP_BKG          212     /* Stop BKG process */
-#define        AFSOP_STOP_TRUNCDAEMON  213     /* Stop cache truncate daemon */
-/* #define AFSOP_STOP_RXEVENT   214     defined in osi.h             */
-/* #define AFSOP_STOP_COMPLETE     215  defined in osi.h             */
-/* #define AFSOP_STOP_RXK_LISTENER   217     defined in osi.h        */
-#define AFSOP_STOP_AFSDB       218     /* Stop AFSDB handler */
-#define AFSOP_STOP_NETIF        219     /* Stop Netif poller */
-
-/* Main afs syscall entry; this number may vary per system (i.e. defined in afs/param.h) */
-#ifndef        AFS_SYSCALL
-#define        AFS_SYSCALL             31
-#endif
-
 /* arguments passed by afsd */
 #define IDTYPE_UID 0
 
@@ -141,7 +145,11 @@ struct afs_umv_param {
     afs_int32 dUnique;
 };
 
-#define AFS_USPC_UMV 1
+#ifdef AFS_DARWIN_ENV
+# define AFS_USPC_UMV 1
+#endif
+#define AFS_USPC_SHUTDOWN 2
+#define AFS_USPC_NOOP 3
 
 struct afs_uspc_param {
     afs_int32 retval;
@@ -167,6 +175,16 @@ struct afs_cacheParams {
     afs_int32 dynamic_vcaches;
 };
 
+/* Supported values for AFSOP_SET_INUMCALC. */
+enum {
+    AFS_INUMCALC_COMPAT = 0,
+    AFS_INUMCALC_MD5 = 1
+};
+
+/* Supported volume ttl range. */
+#define AFS_MIN_VOLUME_TTL 600
+#define AFS_MAX_VOLUME_TTL MAX_AFS_INT32
+
 /*
  * Note that the AFS_*ALLOCSIZ values should be multiples of sizeof(void*) to
  * accomodate pointer alignment.
@@ -174,12 +192,11 @@ struct afs_cacheParams {
 /* Used in rx.c as well as afs directory. */
 #if    defined(AFS_AIX32_ENV) || defined(AFS_HPUX_ENV)
 /* XXX Because of rxkad_cprivate... XXX */
-#define        AFS_MDALLOCSIZ  (127*sizeof(void *))    /* "Medium" allocated size */
-#define        AFS_MALLOC_LOW_WATER    50      /* Min free blocks before allocating more */
-#define        AFS_SMALLOCSIZ  (38*sizeof(void *))     /* "Small" allocated size */
+#define AFS_SMALLOCSIZ         (38*sizeof(void *))     /* "Small" allocated size */
 #else
-#define        AFS_SMALLOCSIZ  (64*sizeof(void *))     /*  "Small" allocated size */
+#define AFS_SMALLOCSIZ         (64*sizeof(void *))     /*  "Small" allocated size */
 #endif
+#define AFS_LRALLOCSIZ  4096    /* "Large" allocated size */
 
 /* Cache configuration available through the client callback interface */
 typedef struct cm_initparams_v1 {