afs_int32 locktype, struct cell *cellp);
extern int afs_CheckCode(afs_int32 acode, struct vrequest *areq, int where);
extern void afs_CopyError(register struct vrequest *afrom, register struct vrequest *ato);
-
+extern void init_sys_error_to_et(void);
/* afs_axscache.c */
extern afs_rwlock_t afs_xaxs;
/* afs_buffer.c */
extern void DInit (int abuffers);
-extern char *DRead(register ino_t *fid, register int page);
+extern char *DRead(register afs_inode_t *fid, register int page);
extern void DRelease (register struct buffer *bp, int flag);
extern int DVOffset (register void *ap);
-extern void DZap (ino_t *fid);
+extern void DZap (afs_inode_t *fid);
extern void DFlush (void);
-extern char *DNew (register ino_t *fid, register int page);
+extern char *DNew (register afs_inode_t *fid, register int page);
extern void shutdown_bufferpackage(void);
/* afs_call.c */
afs_int32 lAndT, long p1);
extern int afs_icl_Event0(register struct afs_icl_set *setp, afs_int32 eventID,
afs_int32 lAndT);
-extern int afs_icl_AppendRecord(register struct afs_icl_log *logp, afs_int32 op,
+extern void afs_icl_AppendRecord(register struct afs_icl_log *logp, afs_int32 op,
afs_int32 types, long p1, long p2, long p3, long p4);
extern int afs_CheckInit(void);
extern int afs_CellNumValid(afs_int32 cellnum);
extern afs_int32 afs_NewCellAlias(char *alias, char *cell);
extern struct cell_alias *afs_GetCellAlias(int index);
+extern void afs_PutCellAlias(struct cell_alias *a);
extern int afs_AFSDBHandler(char *acellName, int acellNameLen,
afs_int32 *kernelMsg);
extern void afs_LookupAFSDB(char *acellName);
extern struct brequest *afs_BQueue(register short aopcode, register struct vcache *avc,
afs_int32 dontwait, afs_int32 ause, struct AFS_UCRED *acred,
afs_size_t asparm0, afs_size_t asparm1, void *apparm0);
-extern int afs_CheckServerDaemon(void);
+extern void afs_CheckServerDaemon(void);
extern int afs_CheckRootVolume (void);
extern void afs_BRelease(register struct brequest *ab);
extern int afs_BBusy(void);
afs_int32 aflags, afs_int32 ninodes, afs_int32 nusers);
extern void afs_ComputeCacheParms(void);
extern int afs_InitCacheInfo(register char *afile);
+extern int afs_InitVolumeInfo(char *afile);
+extern int afs_InitCellInfo(char *afile);
extern int afs_ResourceInit(int preallocs);
extern void shutdown_cache(void);
extern void shutdown_vnodeops(void);
/* afs_memcache.c */
-extern void *afs_MemCacheOpen(ino_t blkno);
-extern int afs_InitMemCache(int size, int blkSize, int flags);
+extern int afs_InitMemCache(int blkCount, int blkSize, int flags);
extern int afs_MemCacheClose(char *file);
extern void *afs_MemCacheOpen(ino_t blkno);
extern int afs_MemReadBlk(register struct memCacheEntry *mceP, int offset, char *dest, int size);
#endif
/* afs_osi_pag.c */
+extern int afs_setpag();
extern afs_uint32 genpag(void);
extern afs_uint32 getpag(void);
+#if defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+extern int AddPag(struct proc *p, afs_int32 aval, struct AFS_UCRED **credpp);
+#else
+extern int AddPag(afs_int32 aval, struct AFS_UCRED **credpp);
+#endif
extern int afs_InitReq(register struct vrequest *av, struct AFS_UCRED *acred);
extern afs_uint32 afs_get_pag_from_groups(gid_t g0a, gid_t g1a);
extern void afs_get_groups_from_pag(afs_uint32 pag, gid_t *g0p, gid_t *g1p);
extern char *osi_AllocSmall(register afs_int32 size, register afs_int32 morespace);
#endif
+/* afs_osi_uio.c */
+extern int afsio_copy(struct uio *ainuio, struct uio *aoutuio, struct iovec *aoutvec);
+extern int afsio_trim(struct uio *auio, afs_int32 asize);
+extern int afsio_skip(struct uio *auio, afs_int32 asize);
+
/* ARCH/osi_misc.c */
extern void osi_iput(struct inode *ip);
+extern void afs_osi_SetTime(osi_timeval_t *atv);
/* LINUX/osi_misc.c */
-#if AFS_LINUX24_ENV
+#ifdef AFS_LINUX20_ENV
+#ifdef AFS_LINUX24_ENV
extern int osi_lookupname(char *aname, uio_seg_t seg, int followlink,
vnode_t **dirvpp, struct dentry **dpp);
extern int osi_InitCacheInfo(char *aname);
afs_offs_t pos, int count, uio_flag_t flag,
uio_seg_t seg);
extern int uiomove(char *dp, int length, uio_flag_t rw, uio_t *uiop);
-extern void afs_osi_SetTime(osi_timeval_t *tvp);
extern void osi_linux_free_inode_pages(void);
extern void osi_clear_inode(struct inode *ip);
extern void check_bad_parent(struct dentry *dp);
extern void osi_linux_mask(void);
extern void osi_linux_unmask(void);
extern void osi_linux_rxkreg(void);
+extern int setpag(cred_t **cr, afs_uint32 pagvalue, afs_uint32 *newpag, int change_parent);
+#endif
+
+/* OBSD/osi_misc.c */
+#ifdef AFS_OBSD_ENV
+extern int setpag(struct proc *proc, struct ucred **cred, afs_uint32 pagvalue,
+ afs_uint32 *newpag, int change_parent);
+#endif
/* ARCH/osi_sleep.c */
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);
#ifndef afs_osi_Wakeup
-extern void afs_osi_Wakeup(void *event);
+extern int afs_osi_Wakeup(void *event);
#endif
#ifndef afs_osi_Sleep
extern void afs_osi_Sleep(void *event);
extern int afs_osi_SleepSig(void *event);
#endif
+
+/* ARCH/osi_inode.c */
+extern int afs_syscall_icreate();
+extern int afs_syscall_iopen();
+extern int afs_syscall_iincdec();
+
+
/* ARCH/osi_file.c */
extern int afs_osicred_initialized;
#if defined(AFS_SUN57_64BIT_ENV) || defined(AFS_SGI62_ENV)
extern short afs_waitForeverCount;
extern afs_int32 afs_showflags;
extern int afs_defaultAsynchrony;
+extern int afs_syscall_pioctl();
/* afs_segments.c */
extern int afs_StoreMini(register struct vcache *avc, struct vrequest *areq);
extern struct afs_stats_CMFullPerf afs_stats_cmfullperf;
extern afs_int32 afs_stats_XferSumBytes[AFS_STATS_NUM_FS_XFER_OPS];
extern void afs_InitStats(void);
-extern int afs_GetCMStat(char **ptr, unsigned *size);
+extern void afs_GetCMStat(char **ptr, unsigned *size);
#ifndef AFS_NOSTATS
-extern int afs_AddToMean(struct afs_MeanStats *oldMean, afs_int32 newValue);
+extern void afs_AddToMean(struct afs_MeanStats *oldMean, afs_int32 newValue);
#endif
/* afs_util.c */
+#ifndef afs_cv2string
extern char *afs_cv2string(char *ttp, afs_uint32 aval);
+#endif
+#ifndef afs_strcasecmp
extern int afs_strcasecmp(char *s1, char *s2);
+#endif
+#ifndef afs_strcat
+extern char *afs_strcat(char *s1, char *s2);
+#endif
+#ifndef afs_strchr
+extern char *afs_strchr(char *s, int c);
+#endif
extern char *afs_strdup(char *s);
extern void print_internet_address(char *preamble, struct srvAddr *sa,
char *postamble, int flag);
/* VNOPS/afs_vnop_lookup.c */
-extern char *afs_strcat(register char *s1, register char *s2);
-extern char *afs_index(register char *a, register char c);
extern int EvalMountPoint(register struct vcache *avc, struct vcache *advc,
struct volume **avolpp, register struct vrequest *areq);
extern void afs_InitFakeStat(struct afs_fakestat_state *state);
extern int afs_ENameOK(register char *aname);
extern int afs_getsysname(register struct vrequest *areq, register struct vcache *adp,
register char *bufp);
-extern int Check_AtSys(register struct vcache *avc, const char *aname,
+extern void Check_AtSys(register struct vcache *avc, const char *aname,
struct sysname_info *state, struct vrequest *areq);
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);
-
+extern int afs_lookup();
/* VNOPS/afs_vnop_read.c */
extern afs_int32 usedihint;
extern int afs_MemRead(register struct vcache *avc, struct uio *auio, struct AFS_UCRED *acred,
daddr_t albn, struct buf **abpp, int noLock);
+extern int afs_UFSRead(register struct vcache *avc, struct uio *auio,
+ struct AFS_UCRED *acred, daddr_t albn, struct buf **abpp, int noLock);
/* VNOPS/afs_vnop_readdir.c */
extern int afs_remunlink(register struct vcache *avc, register int doit);
+/* VNOPS/afs_vnop_rename.c */
+extern int afsrename();
+
+
/* VNOPS/afs_vnop_symlink.c */
extern int afs_MemHandleLink(register struct vcache *avc, struct vrequest *areq);
+extern int afs_UFSHandleLink(register struct vcache *avc, struct vrequest *areq);
/* VNOPS/afs_vnop_flock.c */
extern afs_int32 lastWarnTime;
extern int afs_DoPartialWrite(register struct vcache *avc, struct vrequest *areq);
extern int afs_closex(register struct file *afd);
+/* other VNOPS (please fix these) */
+extern int afs_open();
+extern int afs_close();
+extern int vnode_pager_freepage();
+extern int HandleIoctl();
+extern int afs_fsync();
+extern int afs_remove();
+extern int afs_link();
+extern int afs_rename();
+extern int afs_mkdir();
+extern int afs_rmdir();
+extern int afs_symlink();
+extern int afs_readdir();
+extern int afs_readlink();
+extern int afs_ustrategy();
+extern int afs_lockctl();
+
/* afs_volume.c */
extern afs_int32 afs_FVIndex;
afs_int32 locktype);
extern struct volume *afs_GetVolumeByName(register char *aname, afs_int32 acell,
int agood, struct vrequest *areq, afs_int32 locktype);
-
extern struct volume *afs_UFSGetVolSlot(void);
extern void afs_CheckVolumeNames(int flags);
/* MISC PROTOTYPES - THESE SHOULD NOT BE HERE */
/* MOVE THEM TO APPROPRIATE LOCATIONS */
-extern int RXAFSCB_ExecuteRequest();
-extern int RXSTATS_ExecuteRequest();
+extern afs_int32 RXAFSCB_ExecuteRequest(struct rx_call *acall);
+extern afs_int32 RXSTATS_ExecuteRequest(struct rx_call *acall);
-#if defined(AFS_SUN5_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_AIX_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV)
-#include "../afs/osi_prototypes.h"
+#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)
+#include "osi_prototypes.h"
#endif
#endif /* _AFS_PROTOTYPES_H_ */
-