Use unsigned addresses in the NFS exporter
[openafs.git] / src / afs / afs_prototypes.h
index abde0ff..362bed1 100644 (file)
@@ -22,6 +22,7 @@ extern struct axscache *afs_SlowFindAxs(struct axscache **cachep,
 extern struct axscache *axs_Alloc(void);
 extern void afs_RemoveAxs(struct axscache **headp, struct axscache *axsp);
 extern void afs_FreeAllAxs(struct axscache **headp);
+extern void shutdown_xscache(void);
 
 /* afs_buffer.c */
 extern void DInit(int abuffers);
@@ -42,7 +43,6 @@ extern void afs_FlushCBs(void);
 extern int afs_CheckInit(void);
 extern void afs_shutdown(void);
 extern void shutdown_afstest(void);
-extern void afs_shutdown_BKG(void);
 extern int afs_syscall_call(long parm, long parm2, long parm3,
                            long parm4, long parm5, long parm6);
 #if defined(AFS_DARWIN100_ENV)
@@ -126,10 +126,8 @@ extern void afs_DequeueCallback(struct vcache *avc);
 /* afs_cell.c */
 extern afs_int32 afs_cellindex;
 extern afs_rwlock_t afs_xcell;
-#ifdef AFS_AFSDB_ENV
 extern afs_rwlock_t afsdb_client_lock;
 extern afs_rwlock_t afsdb_req_lock;
-#endif
 extern struct afs_q CellLRU;           
 
 extern void afs_CellInit(void);
@@ -212,14 +210,19 @@ extern struct brequest *afs_BQueue(register short aopcode,
                                   afs_int32 dontwait, afs_int32 ause,
                                   afs_ucred_t *acred,
                                   afs_size_t asparm0, afs_size_t asparm1,
-                                  void *apparm0);
+                                  void *apparm0, void *apparm1,
+                                  void *apparm2);
 extern void afs_SetCheckServerNATmode(int isnat);
 extern void afs_CheckServerDaemon(void);
 extern int afs_CheckRootVolume(void);
 extern void afs_BRelease(register struct brequest *ab);
 extern int afs_BBusy(void);
 extern int afs_BioDaemon(afs_int32 nbiods);
+#ifdef AFS_DARWIN80_ENV
+extern int afs_BackgroundDaemon(struct afs_uspc_param *uspc, void *param1, void *param2);
+#else
 extern void afs_BackgroundDaemon(void);
+#endif
 extern void shutdown_daemons(void);
 extern int afs_sgidaemon(void);
 
@@ -338,7 +341,7 @@ extern int afs_UFSCacheStoreProc(struct rx_call *, struct osi_file *,
 /* afs_icl.c */
 extern struct afs_icl_set *afs_icl_allSets;
 extern int afs_icl_InitLogs(void);
-extern int shutdown_icl(void);
+extern void shutdown_icl(void);
 extern int afs_icl_CreateLog(char *name, afs_int32 logSize,
                             struct afs_icl_log **outLogpp);
 extern int afs_icl_CreateLogWithFlags(char *name, afs_int32 logSize,
@@ -520,7 +523,7 @@ extern struct afs_exporter *afs_nfsexporter;
 extern void afs_nfsclient_init(void);
 extern int afs_nfsclient_reqhandler(struct afs_exporter *exporter,
                                    afs_ucred_t **cred,
-                                   afs_int32 host, afs_int32 *pagparam,
+                                   afs_uint32 host, afs_int32 *pagparam,
                                    struct afs_exporter **outexporter);
 extern void shutdown_nfsclnt(void);
 
@@ -550,6 +553,7 @@ extern const afs_ucred_t *afs_osi_proc2cred(afs_proc_t * pr);
 extern afs_lock_t osi_fsplock;
 extern afs_lock_t osi_flplock;
 #endif
+
 extern void *afs_osi_Alloc_debug(size_t x, char *func, int line);
 #ifndef afs_osi_Alloc_NoSleep
 extern void *afs_osi_Alloc_NoSleep(size_t x);
@@ -569,7 +573,9 @@ extern void shutdown_osinet(void);
 /* afs_osi_pag.c */
 #if defined(AFS_SUN5_ENV)
 extern int afs_setpag(afs_ucred_t **credpp);
-#elif  defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+#elif defined(AFS_FBSD_ENV)
+extern int afs_setpag(struct thread *td, void *args);
+#elif defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
 extern int afs_setpag(afs_proc_t *p, void *args, int *retval);
 #else
 extern int afs_setpag(void);
@@ -577,19 +583,15 @@ extern int afs_setpag(void);
        
 extern afs_uint32 genpag(void);
 extern afs_uint32 getpag(void);
-#if defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+#if defined(AFS_FBSD_ENV)
+extern int AddPag(struct thread *td, afs_int32 aval, afs_ucred_t **credpp);
+#elif defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
 extern int AddPag(afs_proc_t *p, afs_int32 aval, afs_ucred_t **credpp);
 #else
 extern int AddPag(afs_int32 aval, afs_ucred_t **credpp);
 #endif
 extern int afs_InitReq(register struct vrequest *av, afs_ucred_t *acred);
-#if defined(UKERNEL)
 extern afs_uint32 afs_get_pag_from_groups(gid_t g0a, gid_t g1a);
-#else
-#ifdef AFS_LINUX26_ONEGROUP_ENV
-extern afs_uint32 afs_get_pag_from_groups(struct group_info *gi);
-#endif
-#endif
 extern void afs_get_groups_from_pag(afs_uint32 pag, gid_t * g0p, gid_t * g1p);
 extern afs_int32 PagInCred(afs_ucred_t *cred);
 
@@ -610,6 +612,11 @@ extern void osi_ReleaseVM(struct vcache *avc, afs_ucred_t *acred);
 #endif
 
 
+/* LINUX/osi_fetchstore.c */
+#ifdef AFS_LINUX26_ENV
+extern int afs_linux_storeproc(struct storeOps *, void *, struct dcache *,
+                              int *, afs_size_t *);
+#endif
 
 /* ARCH/osi_misc.c */
 extern void afs_osi_SetTime(osi_timeval_t * atv);
@@ -639,6 +646,7 @@ extern void afs_osi_InitWaitHandle(struct afs_osi_WaitHandle *achandle);
 extern void afs_osi_CancelWait(struct afs_osi_WaitHandle *achandle);
 extern int afs_osi_Wait(afs_int32 ams, struct afs_osi_WaitHandle *ahandle,
                        int aintok);
+extern int afs_osi_TimedSleep(void *event, afs_int32 ams, int aintok);
 #ifndef afs_osi_Wakeup
 extern int afs_osi_Wakeup(void *event);
 #endif
@@ -661,7 +669,7 @@ extern int afs_syscall_iincdec(dev_t, int, int, int, rval_t *,
 extern int afs_syscall_icreate(afs_uint32, afs_uint32, afs_uint32, afs_uint32, afs_uint32, afs_uint32, rval_t *);
 extern int afs_syscall_iopen(int, ino_t, int, rval_t *);
 extern int afs_syscall_iincdec(int, int, int, int);
-#elif defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+#elif defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
 extern int afs_syscall_icreate(long, long, long, long, long, long, long*);
 extern int afs_syscall_iopen(int dev, int inode, int usrmod, long *retval);
 extern int afs_syscall_iincdec(int dev, int inode, int inode_p1, int amount);
@@ -698,13 +706,27 @@ extern int usr_setpag(afs_ucred_t **cred, afs_uint32 pagvalue,
 #else
 # if defined AFS_XBSD_ENV
 #  if !defined(AFS_DFBSD_ENV)
+#   if defined(AFS_FBSD_ENV)
+extern int setpag(struct thread *td, struct ucred **cred, afs_uint32 pagvalue,
+                 afs_uint32 * newpag, int change_parent);
+
+#   elif defined(AFS_NBSD40_ENV)
+extern int setpag(struct proc *proc, afs_ucred_t *cred, afs_uint32 pagvalue,
+                 afs_uint32 * newpag, int change_parent);
+#   else
 extern int setpag(afs_proc_t *proc, struct ucred **cred, afs_uint32 pagvalue,
                  afs_uint32 * newpag, int change_parent);
-#  endif
-# endif
+#   endif /* AFS_FBSD_ENV */
+#  endif /* ! AFS_DFBSD_ENV */
+# endif /* AFS_XBSD_ENV */
+#endif /* UKERNEL */
+
+#if defined(AFS_LINUX26_ENV)
+extern afs_int32 osi_get_group_pag(afs_ucred_t *cred);
 #endif
 
 
+
 /* ARCH/osi_vm.c */
 extern int osi_VM_FlushVCache(struct vcache *avc, int *slept);
 extern void osi_VM_StoreAllSegments(struct vcache *avc);
@@ -726,17 +748,6 @@ extern void osi_VM_PreTruncate(struct vcache *avc, int alen,
 
 /* ARCH/osi_vnodeops.c */
 extern struct vnodeops Afs_vnodeops;
-#if defined(AFS_OSF_ENV)
-#if defined(AFS_OSF30_ENV)
-extern int max_vnodes;         /* number of total system vnodes */
-#else
-extern int nvnode;             /* number of total system vnodes */
-extern int numvnodes;          /* number vnodes in use now */
-#endif
-#ifdef AFS_DUX40_ENV
-extern struct vfs_ubcops afs_ubcops;
-#endif
-#endif
 extern int afs_inactive(struct vcache *avc, afs_ucred_t *acred);
 
 /* afs_osifile.c */
@@ -746,7 +757,7 @@ extern afs_uint32 pag_epoch;
 extern afs_uint32 pagCounter;
 
 /* OS/osi_vfsops.c */
-#if defined(AFS_OSF_ENV) || defined(AFS_XBSD_ENV) || defined(AFS_DARWIN_ENV)
+#if defined(AFS_XBSD_ENV) || defined(AFS_DARWIN_ENV)
 extern struct mount *afs_globalVFS;
 #else
 extern struct vfs *afs_globalVFS;
@@ -804,7 +815,6 @@ extern int HandleIoctl(register struct vcache *avc, register afs_int32 acom,
 
 
 /* afs_segments.c */
-extern int afs_StoreMini(register struct vcache *avc, struct vrequest *areq);
 extern int afs_StoreAllSegments(register struct vcache *avc,
                                struct vrequest *areq, int sync);
 extern int afs_InvalidateAllSegments(struct vcache *avc);
@@ -828,6 +838,7 @@ extern struct server *afs_GetServer(afs_uint32 * aserver, afs_int32 nservers,
                                    afs_int32 acell, u_short aport,
                                    afs_int32 locktype, afsUUID * uuidp,
                                    afs_int32 addr_uniquifier);
+extern void afs_GetCapabilities(struct server *ts);
 extern void ForceAllNewConnections(void);
 extern void afs_MarkServerUpOrDown(struct srvAddr *sa, int a_isDown);
 extern afs_int32 afs_ServerDown(struct srvAddr *sa);
@@ -850,7 +861,6 @@ void afsi_SetServerIPRank(struct srvAddr *sa, struct in_ifaddr *ifa);
 #endif
 #endif
 extern int afs_HaveCallBacksFrom(struct server *aserver);
-extern void shutdown_server(void);
 extern void afs_RemoveAllConns(void);
 extern void afs_MarkAllServersUp(void);
 
@@ -888,6 +898,19 @@ extern int copyin_afs_ioctl(user_addr_t cmarg, struct afs_ioctl *dst);
 #else
 extern int copyin_afs_ioctl(caddr_t cmarg, struct afs_ioctl *dst);
 #endif
+
+#if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+#ifdef AFS_DARWIN100_ENV
+extern int afs3_syscall(afs_proc_t *p, void *args, unsigned int *retval);
+#elif defined(AFS_FBSD_ENV)
+extern int afs3_syscall(struct thread *p, void *args);
+#elif defined(AFS_NBSD40_ENV)
+extern int afs3_syscall(struct lwp *p, void *args);
+#else
+extern int afs3_syscall(afs_proc_t *p, void *args, long *retval);
+#endif
+#endif
+
 #ifdef UKERNEL
 extern int Afs_syscall(void);
 #endif
@@ -915,6 +938,8 @@ extern struct unixuser *afs_FindUser(afs_int32 auid, afs_int32 acell,
                                     afs_int32 locktype);
 extern struct unixuser *afs_GetUser(register afs_int32 auid, afs_int32 acell,
                                    afs_int32 locktype);
+extern void afs_NotifyUser(struct unixuser *auser, int event);
+
 #if AFS_GCPAGS
 extern afs_int32 afs_GCPAGs(afs_int32 * ReleasedCount);
 extern void afs_GCPAGs_perproc_func(afs_proc_t * pproc);
@@ -926,9 +951,10 @@ extern void afs_CheckTokenCache(void);
 extern void afs_ResetAccessCache(afs_int32 uid, int alock);
 extern void afs_ResetUserConns(register struct unixuser *auser);
 extern void afs_SetPrimary(register struct unixuser *au, register int aflag);
-
+extern void afs_MarkUserExpired(afs_int32 pag);
 
 /* afs_util.c */
+extern afs_int32 afs_strtoi_r(const char *str, char **endptr, afs_uint32 *ret);
 extern afs_int32 afs_calc_inum (afs_int32 volume, afs_int32 vnode);
 #ifndef afs_cv2string
 extern char *afs_cv2string(char *ttp, afs_uint32 aval);
@@ -965,8 +991,10 @@ extern afs_int32 afs_data_pointer_to_int32(const void *p);
 extern void afs_warn();
 extern void afs_warnuser();
 #else
-extern void afs_warn(char *fmt, ...);
-extern void afs_warnuser(char *fmt, ...);
+extern void afs_warn(char *fmt, ...)
+       AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
+extern void afs_warnuser(char *fmt, ...)
+       AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
 #endif
 
 /* afs_vcache.c */
@@ -1009,6 +1037,8 @@ extern struct vcache *afs_GetRootVCache(struct VenusFid *afid,
                                        struct volume *tvolp);
 extern struct vcache *afs_NewVCache(struct VenusFid *afid,
                                    struct server *serverp);
+extern struct vcache *afs_NewBulkVCache(struct VenusFid *afid,
+                                       struct server *serverp, int seq);
 extern int afs_VerifyVCache2(struct vcache *avc, struct vrequest *areq);
 extern struct vcache *afs_GetVCache(register struct VenusFid *afid,
                                    struct vrequest *areq, afs_int32 * cached,
@@ -1077,9 +1107,6 @@ extern int afs_setattr(OSI_VC_DECL(avc), register struct vattr *attrs,
 #endif
 
 /* VNOPS/afs_vnop_create.c */
-#ifdef  AFS_OSF_ENV
-extern int afs_create(struct nameidata *ndp, struct vattr *attrs);
-#else /* AFS_OSF_ENV */
 #ifdef AFS_SGI64_ENV
 extern int afs_create(OSI_VC_DECL(adp), char *aname, struct vattr *attrs,
                      int flags, int amode, struct vcache **avcp,
@@ -1089,7 +1116,6 @@ extern int afs_create(OSI_VC_DECL(adp), char *aname, struct vattr *attrs,
                      enum vcexcl aexcl, int amode, struct vcache **avcp,
                      afs_ucred_t *acred);
 #endif /* AFS_SGI64_ENV */
-#endif /* AFS_OSF_ENV */
 extern int afs_LocalHero(register struct vcache *avc,
                         register struct dcache *adc,
                         register AFSFetchStatus * astat, register int aincr);
@@ -1110,7 +1136,7 @@ struct fid;
 #if !defined(AFS_ATHENA_ENV)
 #ifdef AFS_AIX41_ENV
 int afs_fid(OSI_VC_DECL(avc), struct fid *fidpp, struct ucred *credp);
-#elif defined(AFS_OSF_ENV) || defined(AFS_SUN54_ENV)
+#elif defined(AFS_SUN54_ENV)
 int afs_fid(OSI_VC_DECL(avc), struct fid *fidpp);
 #else
 int afs_fid(OSI_VC_DECL(avc), struct fid **fidpp);
@@ -1125,10 +1151,7 @@ extern void lockIdSet(struct AFS_FLOCK *flock, struct SimpleLocks *slp,
 extern int HandleFlock(register struct vcache *avc, int acom,
                       struct vrequest *areq, pid_t clid, int onlymine);
 
-#ifdef AFS_OSF_ENV
-extern int afs_lockctl(struct vcache * avc, struct eflock * af, int flag,
-                      afs_ucred_t * acred, pid_t clid, off_t offset);
-#elif defined(AFS_SGI_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+#if defined(AFS_SGI_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
 extern int afs_lockctl(struct vcache * avc, struct AFS_FLOCK * af, int acmd,
                       afs_ucred_t * acred, pid_t clid);
 #else
@@ -1164,10 +1187,8 @@ extern int Next_AtSys(register struct vcache *avc, struct vrequest *areq,
                      struct sysname_info *state);
 extern int afs_DoBulkStat(struct vcache *adp, long dirCookie,
                          struct vrequest *areqp);
-#ifdef AFS_OSF_ENV
-extern int afs_lookup(OSI_VC_DECL(adp), char *aname, struct vcache **avcp, 
-                     afs_ucred_t *acred, int opflag, int wantparent);
-#elif defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV)
+
+#if defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV)
 extern int afs_lookup(OSI_VC_DECL(adp), char *aname, struct vcache **avcp, 
                      struct pathname *pnp, int flags, struct vnode *rdir, 
                      afs_ucred_t *acred);
@@ -1190,9 +1211,6 @@ extern int afs_open(struct vcache **avcp, afs_int32 aflags,
 
 
 /* VNOPS/afs_vnop_read.c */
-extern afs_int32 maxIHint;
-extern afs_int32 nihints;
-extern afs_int32 usedihint;
 extern int afs_MemRead(register struct vcache *avc, struct uio *auio,
                       afs_ucred_t *acred, daddr_t albn,
                       struct buf **abpp, int noLock);
@@ -1205,7 +1223,7 @@ extern void afs_PrefetchChunk(struct vcache *avc, struct dcache *adc,
 
 /* VNOPS/afs_vnop_readdir.c */
 extern int afs_rd_stash_i;
-#if defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV) || defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+#if defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
 extern int afs_readdir(OSI_VC_DECL(avc), struct uio *auio, 
                       afs_ucred_t *acred, int *eofp);
 #elif defined(AFS_HPUX100_ENV)
@@ -1238,7 +1256,7 @@ extern int afs_rename(OSI_VC_DECL(aodp), char *aname1, struct vcache *andp,
 #endif
        
 /* VNOPS/afs_vnop_strategy.c */
-#if defined(AFS_SUN5_ENV) || defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+#if defined(AFS_SUN5_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
 extern int afs_ustrategy(register struct buf *adp, afs_ucred_t *credp);
 #else
 extern int afs_ustrategy(register struct buf *adp);
@@ -1285,10 +1303,7 @@ extern int afs_close(OSI_VC_DECL(avc), afs_int32 aflags,
                     afs_ucred_t *acred);
 #endif
 
-#ifdef AFS_OSF_ENV
-extern int afs_fsync(OSI_VC_DECL(avc), int fflags, afs_ucred_t *acred, 
-                    int waitfor);
-#elif defined(AFS_SGI65_ENV)
+#if defined(AFS_SGI65_ENV)
 extern int afs_fsync(OSI_VC_DECL(avc), int flags, afs_ucred_t *acred, 
                     off_t start, off_t stop);
 #elif defined(AFS_SGI_ENV) || defined(AFS_SUN53_ENV)
@@ -1328,7 +1343,6 @@ extern struct volume *afs_GetVolumeByName(register char *aname,
 extern struct volume *afs_UFSGetVolSlot(void);
 extern void afs_CheckVolumeNames(int flags);
 
-
 /* Prototypes for generated files that aren't really in src/afs/ */
 
 /* afs_uuid.c */
@@ -1339,7 +1353,7 @@ extern void afs_ntohuuid(afsUUID * uuidp);
 extern afs_int32 afs_uuid_create(afsUUID * uuid);
 extern u_short afs_uuid_hash(afsUUID * uuid);
 
-#if defined(AFS_SUN5_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_AIX_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SGI62_ENV) || defined(AFS_OSF_ENV)
+#if defined(AFS_SUN5_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_AIX_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SGI62_ENV) || defined(UKERNEL)
 #include "osi_prototypes.h"
 #endif