irix kill efs and start pruning pre-65

we haven't built on irix 6.4 in a while. likewise, no efs anymore.

just remove the extra code

Change-Id: I559f4bca5bf52f9a0344472ccf60b93751282a2b
Reviewed-on: http://gerrit.openafs.org/1380
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
This commit is contained in:
Derrick Brashear 2010-02-24 00:19:20 -05:00
parent 14ff060627
commit d1923139e6
12 changed files with 12 additions and 1037 deletions

View File

@ -57,7 +57,7 @@ osi_UFSOpen(afs_dcache_id_t *ainode)
}
afile = (struct osi_file *)osi_AllocSmallSpace(sizeof(struct osi_file));
AFS_GUNLOCK();
afile->vnode = AFS_SGI_IGETVNODE(ainode->ufs);
afile->vnode = afs_XFSIGetVnode(ainode->ufs);
AFS_GLOCK();
afile->size = VnodeToSize(afile->vnode);
afile->offset = 0;

View File

@ -11,8 +11,6 @@
* IRIX inode operations
*
* Implements:
* afsdptoip
* afsiptodp
* afsidestroy
* getinode
* igetinode
@ -26,7 +24,6 @@
* afs_syscall_iopen
* iopen
* iopen64
* efs_iincdec
* xfs_iincdec64
* iincdec64
* afs_syscall_idec64
@ -59,82 +56,6 @@
*/
#define INODESPECIAL 0xffffffff /* ... from ../vol/viceinode.h */
#endif
/*
* copy disk inode to incore inode and vice-versa
*/
void
afsdptoip(struct efs_dinode *dp, struct inode *ip)
{
struct afsparms *ap;
ip->i_afs = kmem_alloc(sizeof(struct afsparms), KM_SLEEP);
osi_Assert(ip->i_version == EFS_IVER_AFSSPEC
|| ip->i_version == EFS_IVER_AFSINO);
ap = (struct afsparms *)ip->i_afs;
/* vicep1 is VOLid */
ap->vicep1 =
dmag(dp, 0) << 24 | dmag(dp, 1) << 16 | dmag(dp, 2) << 8 | dmag(dp,
3) <<
0;
if (ip->i_version == EFS_IVER_AFSSPEC) {
ap->vicep3 = dmag(dp, 8); /* Type */
ap->vicep4 =
dmag(dp, 4) << 24 | dmag(dp, 5) << 16 | dmag(dp,
6) << 8 | dmag(dp,
7) <<
0;
} else {
/* vnode number */
ap->vicep2 = dmag(dp, 4) << 16 | dmag(dp, 5) << 8 | dmag(dp, 6) << 0;
/* disk uniqifier */
ap->vicep3 = dmag(dp, 7) << 16 | dmag(dp, 8) << 8 | dmag(dp, 9) << 0;
/* data version */
ap->vicep4 = dmag(dp, 10) << 16 | dmag(dp, 11) << 8 | (dp)->di_spare;
}
}
void
afsiptodp(struct inode *ip, struct efs_dinode *dp)
{
struct afsparms *ap;
if (ip->i_afs == NULL)
return;
osi_Assert(ip->i_version == EFS_IVER_AFSSPEC
|| ip->i_version == EFS_IVER_AFSINO);
ap = (struct afsparms *)ip->i_afs;
/* vicep1 is VOLid */
dmag(dp, 0) = ap->vicep1 >> 24;
dmag(dp, 1) = ap->vicep1 >> 16;
dmag(dp, 2) = ap->vicep1 >> 8;
dmag(dp, 3) = ap->vicep1 >> 0;
if (ip->i_version == EFS_IVER_AFSSPEC) {
/* Type */
dmag(dp, 8) = ap->vicep3;
/* ParentId */
dmag(dp, 4) = ap->vicep4 >> 24;
dmag(dp, 5) = ap->vicep4 >> 16;
dmag(dp, 6) = ap->vicep4 >> 8;
dmag(dp, 7) = ap->vicep4 >> 0;
} else {
/* vnode number */
dmag(dp, 4) = ap->vicep2 >> 16;
dmag(dp, 5) = ap->vicep2 >> 8;
dmag(dp, 6) = ap->vicep2 >> 0;
/* disk uniqifier */
dmag(dp, 7) = ap->vicep3 >> 16;
dmag(dp, 8) = ap->vicep3 >> 8;
dmag(dp, 9) = ap->vicep3 >> 0;
/* data version */
dmag(dp, 10) = ap->vicep4 >> 16;
dmag(dp, 11) = ap->vicep4 >> 8;
dp->di_spare = ap->vicep4 >> 0;
}
}
void
afsidestroy(struct inode *ip)
@ -145,52 +66,18 @@ afsidestroy(struct inode *ip)
}
}
extern int efs_fstype;
#ifdef AFS_SGI_XFS_IOPS_ENV
extern int xfs_fstype;
#endif
int
getinode(struct vfs *vfsp, dev_t dev, ino_t inode, struct inode **ipp)
{
struct inode *ip;
int error;
if (!vfsp) {
#ifdef AFS_SGI65_ENV
vfsp = vfs_devsearch(dev, efs_fstype);
#else
vfsp = vfs_devsearch(dev);
#endif
if (!vfsp) {
return ENXIO;
}
}
#ifndef AFS_SGI65_ENV
if (vfsp->vfs_fstype != efs_fstype)
return ENOSYS;
#endif
if (error =
iget((((struct mount *)((vfsp)->vfs_bh.bh_first)->bd_pdata)),
(unsigned int)(inode & 0xffffffff), &ip)) {
return error;
}
*ipp = ip;
return 0;
return ENOSYS;
}
int
igetinode(struct vfs *vfsp, dev_t dev, ino_t inode, struct inode **ipp)
{
struct inode *ip;
int error;
AFS_STATCNT(igetinode);
if (error = getinode(vfsp, dev, inode, &ip))
return error;
*ipp = ip;
return 0;
return ENOSYS;
}
int XFS_IGET_EPOS;
@ -206,22 +93,12 @@ xfs_getinode(struct vfs *vfsp, dev_t dev, ino_t inode, struct xfs_inode **ipp)
int error;
if (!vfsp) {
#ifdef AFS_SGI65_ENV
vfsp = vfs_devsearch(dev, xfs_fstype);
#else
vfsp = vfs_devsearch(dev);
#endif
if (!vfsp) {
SET_XFS_ERROR(1, dev, inode);
return ENXIO;
}
}
#ifndef AFS_SGI65_ENV
if (vfsp->vfs_fstype != xfs_fstype) {
SET_XFS_ERROR(2, vfsp->vfs_dev, inode);
return ENOSYS;
}
#endif
if (error = xfs_iget((((struct mount *)
((vfsp)->vfs_bh.bh_first)->bd_pdata)), (void *)0,
@ -286,7 +163,6 @@ struct icreateargs {
sysarg_t param4;
};
/* EFS only fs suite uses this entry point - icreate in afssyscalls.c. */
int
icreate(struct icreateargs *uap, rval_t * rvp)
{
@ -301,10 +177,8 @@ afs_syscall_icreate(dev, near_inode, param1, param2, param3, param4, rvp)
return ENOSYS;
}
#ifdef AFS_SGI_XFS_IOPS_ENV
/* inode creation routines for icreatename64 entry point. Use for EFS/XFS
* fileserver suite. For XFS, create a name in the namespace as well as the
* inode. For EFS, just call the original routine.
/* inode creation routines for icreatename64 entry point.
* Create a name in the namespace as well as the inode.
*/
#include <afs/xfsattrs.h>
@ -499,8 +373,8 @@ xfs_icreatename64(struct vfs *vfsp, int datap, int datalen,
}
/* afs_syscall_icreatename64
* This is the icreatename64 entry point used by the combined EFS/XFS
* fileserver suite. The datap and datalen do not need to be set for EFS.
* This is the icreatename64 entry point used by the XFS
* fileserver suite.
*/
int
afs_syscall_icreatename64(int dev, int datap, int datalen, int paramp,
@ -516,11 +390,7 @@ afs_syscall_icreatename64(int dev, int datap, int datalen, int paramp,
if (!afs_suser(NULL))
return EPERM;
#ifdef AFS_SGI65_ENV
vfsp = vfs_devsearch(dev, VFS_FSTYPE_ANY);
#else
vfsp = vfs_devsearch(dev);
#endif
if (vfsp == NULL) {
return ENXIO;
}
@ -535,29 +405,14 @@ afs_syscall_icreatename64(int dev, int datap, int datalen, int paramp,
AFS_COPYOUT((char *)&ino, (char *)inop, sizeof(ino_t), code);
return code;
}
} else if (vfsp->vfs_fstype == efs_fstype) {
code =
afs_syscall_icreate(dev, 0, param[0], param[1], param[2],
param[3], &rval);
if (code)
return code;
else {
ino = (ino_t) rval.r_val1;
AFS_COPYOUT((char *)&ino, (char *)inop, sizeof(ino_t), code);
return code;
}
}
return ENXIO;
}
#endif /* AFS_SGI_XFS_IOPS_ENV */
/*
* iopen system calls -- open an inode for reading/writing
* Restricted to super user.
* Any IFREG files.
* The original EFS only system calls are still present in the kernel for
* in case a kernel upgrade is done for a fix, but the EFS fileserver is
* still in use.
*/
struct iopenargs {
sysarg_t dev;
@ -565,7 +420,6 @@ struct iopenargs {
sysarg_t usrmod;
};
#ifdef AFS_SGI_XFS_IOPS_ENV
struct iopenargs64 {
sysarg_t dev;
sysarg_t inode_hi;
@ -573,7 +427,6 @@ struct iopenargs64 {
sysarg_t usrmod;
};
#ifdef AFS_SGI65_ENV
int
afs_syscall_iopen(int dev, ino_t inode, int usrmod, rval_t * rvp)
{
@ -587,8 +440,6 @@ afs_syscall_iopen(int dev, ino_t inode, int usrmod, rval_t * rvp)
if (!afs_suser(NULL))
return EPERM;
vfsp = vfs_devsearch(dev, xfs_fstype);
if (!vfsp)
vfsp = vfs_devsearch(dev, efs_fstype);
if (!vfsp)
return ENXIO;
@ -608,54 +459,6 @@ afs_syscall_iopen(int dev, ino_t inode, int usrmod, rval_t * rvp)
rvp->r_val1 = fd;
return 0;
}
#else
/* afs_syscall_iopen
* EFS/XFS version vectors to correct code based vfs_fstype. Expects a
* 64 bit inode number.
*/
int
afs_syscall_iopen(int dev, ino_t inode, int usrmod, rval_t * rvp)
{
struct file *fp;
int fd;
int error;
struct vfs *vfsp;
AFS_STATCNT(afs_syscall_iopen);
if (!afs_suser(NULL))
return EPERM;
vfsp = vfs_devsearch(dev);
if (!vfsp) {
return ENXIO;
}
if (vfsp->vfs_fstype == xfs_fstype) {
struct xfs_inode *xip;
struct vnode *vp;
if (error = xfs_igetinode(vfsp, (dev_t) dev, inode, &xip))
return error;
vp = XFS_ITOV(xip);
if (error = falloc(vp, (usrmod + 1) & (FMASK), &fp, &fd)) {
VN_RELE(vp);
return error;
}
} else if (vfsp->vfs_fstype == efs_fstype) {
struct inode *ip;
if (error = igetinode(vfsp, (dev_t) dev, inode, &ip))
return error;
if (error = falloc(EFS_ITOV(ip), (usrmod + 1) & (FMASK), &fp, &fd)) {
iput(ip);
return error;
}
iunlock(ip);
} else {
osi_Panic("afs_syscall_iopen: bad fstype = %d\n", vfsp->vfs_fstype);
}
fready(fp);
rvp->r_val1 = fd;
return 0;
}
#endif /* AFS_SGI65_ENV */
int
iopen(struct iopenargs *uap, rval_t * rvp)
@ -674,57 +477,16 @@ iopen64(struct iopenargs64 *uap, rval_t * rvp)
uap->usrmod, rvp));
}
#else /* AFS_SGI_XFS_IOPS_ENV */
/* iopen/afs_syscall_iopen
*
* Original EFS only 32 bit iopen call.
*/
int
iopen(struct iopenargs *uap, rval_t * rvp)
{
AFS_STATCNT(iopen);
return (afs_syscall_iopen(uap->dev, uap->inode, uap->usrmod, rvp));
}
int
afs_syscall_iopen(dev, inode, usrmod, rvp)
int dev, inode, usrmod;
rval_t *rvp;
{
struct file *fp;
struct inode *ip;
int fd;
int error;
AFS_STATCNT(afs_syscall_iopen);
if (!afs_suser(NULL))
return EPERM;
if (error = igetinode(0, (dev_t) dev, inode, &ip))
return error;
if (error = falloc(EFS_ITOV(ip), (usrmod + 1) & (FMASK), &fp, &fd)) {
iput(ip);
return error;
}
iunlock(ip);
rvp->r_val1 = fd;
#ifdef AFS_SGI53_ENV
fready(fp);
#endif
return 0;
}
#endif /* AFS_SGI_XFS_IOPS_ENV */
/*
* Support for iinc() and idec() system calls--increment or decrement
* count on inode.
* Restricted to super user.
* Only VICEMAGIC type inodes.
*/
#ifdef AFS_SGI_XFS_IOPS_ENV
/* xfs_iincdec
*
* XFS/EFS iinc/idec code for EFS. Uses 64 bit inode numbers.
* XFS iinc/idec code. Uses 64 bit inode numbers.
*/
static int
xfs_iincdec64(struct vfs *vfsp, ino_t inode, int inode_p1, int amount)
@ -872,11 +634,7 @@ iincdec64(int dev, int inode_hi, int inode_lo, int inode_p1, int amount)
if (!afs_suser(NULL))
return EPERM;
#ifdef AFS_SGI65_ENV
vfsp = vfs_devsearch(dev, VFS_FSTYPE_ANY);
#else
vfsp = vfs_devsearch(dev);
#endif
if (!vfsp) {
return ENXIO;
}
@ -903,16 +661,12 @@ afs_syscall_iinc64(int dev, int inode_hi, int inode_lo, int inode_p1)
return iincdec64(dev, inode_hi, inode_lo, inode_p1, 1);
}
struct iincargs {
sysarg_t dev;
sysarg_t inode;
sysarg_t inode_p1;
};
#ifdef AFS_SGI65_ENV
int
iinc(struct iincargs *uap, rval_t * rvp)
{
@ -926,102 +680,7 @@ idec(struct iincargs *uap, rval_t * rvp)
AFS_STATCNT(idec);
return ENOTSUP;
}
#else
/* iincdec
*
* XFS/EFS iinc/idec entry points for EFS only fileservers.
*
*/
int
iincdec(dev, inode, inode_p1, amount)
int dev, inode, inode_p1, amount;
{
struct vfs *vfsp;
if (!afs_suser(NULL))
return EPERM;
vfsp = vfs_devsearch(dev);
if (!vfsp) {
return ENXIO;
}
if (vfsp->vfs_fstype != efs_fstype)
return ENOSYS;
return efs_iincdec(vfsp, inode, inode_p1, amount);
}
int
iinc(struct iincargs *uap, rval_t * rvp)
{
AFS_STATCNT(iinc);
return (iincdec(uap->dev, uap->inode, uap->inode_p1, 1));
}
int
idec(struct iincargs *uap, rval_t * rvp)
{
AFS_STATCNT(idec);
return (iincdec(uap->dev, uap->inode, uap->inode_p1, -1));
}
#endif /* AFS_SGI65_ENV */
#else /* AFS_SGI_XFS_IOPS_ENV */
/* afs_syscall_iincdec iinc idec
*
* These are the original EFS only entry points.
*/
int
afs_syscall_iincdec(dev, inode, inode_p1, amount)
int dev, inode, inode_p1, amount;
{
struct inode *ip;
int error = 0;
if (!afs_suser(NULL))
return EPERM;
if (error = igetinode(0, (dev_t) dev, inode, &ip))
return error;
if (!IS_VICEMAGIC(ip))
error = EPERM;
else if (((struct afsparms *)ip->i_afs)->vicep1 != inode_p1)
error = ENXIO;
else {
ip->i_nlink += amount;
osi_Assert(ip->i_nlink >= 0);
if (ip->i_nlink == 0) {
CLEAR_VICEMAGIC(ip);
afsidestroy(ip);
}
ip->i_flags |= ICHG;
}
/* XXX sync write?? */
iput(ip);
return error;
}
struct iincargs {
sysarg_t dev;
sysarg_t inode;
sysarg_t inode_p1;
};
int
iinc(struct iincargs *uap, rval_t * rvp)
{
AFS_STATCNT(iinc);
return (afs_syscall_iincdec(uap->dev, uap->inode, uap->inode_p1, 1));
}
int
idec(struct iincargs *uap, rval_t * rvp)
{
AFS_STATCNT(idec);
return (afs_syscall_iincdec(uap->dev, uap->inode, uap->inode_p1, -1));
}
#endif /* AFS_SGI_XFS_IOPS_ENV */
#ifdef AFS_SGI_XFS_IOPS_ENV
/* afs_syscall_ilistinode64
* Gathers up all required info for ListViceInodes in one system call.
*/
@ -1042,18 +701,10 @@ afs_syscall_ilistinode64(int dev, int inode_hi, int inode_lo, int datap,
if (!afs_suser(NULL))
return EPERM;
#ifdef AFS_SGI65_ENV
vfsp = vfs_devsearch(dev, xfs_fstype);
#else
vfsp = vfs_devsearch(dev);
#endif
if (!vfsp) {
return ENXIO;
}
#ifndef AFS_SGI65_ENV
if (vfsp->vfs_fstype != xfs_fstype)
return ENOSYS;
#endif
AFS_COPYIN((char *)datalenp, &idatalen, sizeof(int), code);
if (idatalen < sizeof(i_list_inode_t)) {
@ -1122,4 +773,3 @@ afs_syscall_ilistinode64(int dev, int inode_hi, int inode_lo, int datap,
VN_RELE(vp);
return code;
}
#endif /* AFS_SGI_XFS_IOPS_ENV */

View File

@ -15,7 +15,6 @@
#define BAD_IGET -1000
#define VICEMAGIC 0x84fa1cb6
/* chown can't set the high bit - used for XFS based filesystem */
#define XFS_VICEMAGIC 0x74fa1cb6
@ -55,14 +54,4 @@ struct afsparms {
#define dmag(p,n) ((p)->di_u.di_extents[n].ex_magic)
#define IS_VICEMAGIC(ip) (((ip)->i_version == EFS_IVER_AFSSPEC || \
(ip)->i_version == EFS_IVER_AFSINO) \
? 1 : 0)
#define IS_DVICEMAGIC(dp) (((dp)->di_version == EFS_IVER_AFSSPEC || \
(dp)->di_version == EFS_IVER_AFSINO) \
? 1 : 0)
#define CLEAR_VICEMAGIC(ip) (ip)->i_version = EFS_IVER_EFS
#define CLEAR_DVICEMAGIC(dp) dp->di_version = EFS_IVER_EFS
#endif /* _OSI_INODE_H_ */

View File

@ -13,34 +13,15 @@
#ifndef _SGI_VFS_H_
#define _SGI_VFS_H_
#if !defined(AFS_SGI65_ENV)
/* In Irix 6.5, the r/w-vops rwlocks the vnode if not already locked. */
#define IO_ISLOCKED 0
#endif
/*
* UFS -> EFS/XFS translations
* UFS -> XFS translations
*/
#ifdef AFS_SGI62_ENV
#ifdef AFS_SGI64_ENV
#define EFS_VTOI(vp) bhvtoi(VNODE_TO_FIRST_BHV(vp))
/* Note: If SGI ever has more than one behavior per vnode, we'll have
* to search for the one we want.
*/
#define XFS_VTOI(V) ((xfs_inode_t*)((V)->v_fbhv->bd_pdata))
#define vfstom(V) (bhvtom((V)->vfs_fbhv))
#else
#define EFS_VTOI(vp) vtoi(vp)
#endif
#define EFS_ITOV(ip) itov(ip)
#else
#define ITOV(ip) itov(ip)
#define VTOI(vp) vtoi(vp)
#define EFS_ITOV ITOV
#define EFS_VTOI VTOI
#endif
#ifdef AFS_SGI62_ENV
struct xfs_inode;
typedef struct xfs_inode xfs_inode_t;
#define xfs_ino_t uint64_t
@ -59,45 +40,21 @@ extern int xfs_iget(struct mount *, struct xfs_trans *, xfs_ino_t, uint,
/* When we have XFS only clients, then these macros will be defined in
* terms of the XFS inode only.
*/
#ifdef AFS_SGI_DUAL_FS_CACHE
#define AFS_SGI_EFS_CACHE 0
#define AFS_SGI_XFS_CACHE 1
extern int afs_CacheFSType;
extern vnode_t *(*afs_IGetVnode) (ino_t);
extern struct vnodeops *afs_efs_vnodeopsp;
extern struct vnodeops *afs_xfs_vnodeopsp;
#define AFS_SGI_IGETVNODE(INO) (*afs_IGetVnode)(INO)
/* These need to be functions to wrap the vnode op calls. */
extern ino_t VnodeToIno(vnode_t * vp);
extern dev_t VnodeToDev(vnode_t * vp);
extern off_t VnodeToSize(vnode_t * vp);
#else
/* Just the EFS variants exist for now. */
#define VnodeToIno(vp) ((ino_t)(EFS_VTOI((vp))->i_number))
#define VnodeToDev(vp) EFS_VTOI((vp))->i_dev
#define VnodeToSize(vp) EFS_VTOI((vp))->i_size
#define AFS_SGI_IGETVNODE(INO) afs_EFSIGetVnode(INO)
#endif
#else /* AFS_SGI62_ENV */
#define AFS_SGI_IGETVNODE(INO) afs_EFSIGetVnode(INO)
#endif
/* Page routines are vnode ops in Irix 6.5. These macros paper over the
* differences.
*/
#ifdef AFS_SGI65_ENV
#define PTOSSVP(vp, off, len) VOP_TOSS_PAGES((vp), (off), (len), 0)
#define PFLUSHINVALVP(vp, off, len) VOP_FLUSHINVAL_PAGES((vp), (off), (len), 0)
#define PFLUSHVP(vp, len, flags, code) \
VOP_FLUSH_PAGES((vp), 0, (len), (flags), 0, code)
#define PINVALFREE(vp, off) VOP_INVALFREE_PAGES((vp), (off))
#else
#define PTOSSVP ptossvp
#define PFLUSHINVALVP pflushinvalp
#define PFLUSHVP(vp, len, flags, code) code = pflushvp(vp, len, flags)
#define PINVALFREE pinvalfree
#endif
/*
@ -187,7 +144,6 @@ extern int afs_is_numa_arch;
vn_open((path), (seg), (mode), (perm), (dvp), (why), 0)
#else /* AFS_SGI_VNODE_GLUE */
#define VFS_STATFS VFS_STATVFS
#ifdef AFS_SGI65_ENV
#define AFS_VOP_ATTR_SET VOP_ATTR_SET
#define AFS_VOP_ATTR_GET VOP_ATTR_GET
#define AFS_VOP_SETATTR VOP_SETATTR
@ -202,28 +158,6 @@ extern int afs_is_numa_arch;
#define AFS_VN_OPEN(path, seg, mode, perm, dvp, why) \
vn_open((path), (seg), (mode), (perm), (dvp), (why), 0, NULL)
#else
#define AFS_VOP_ATTR_SET(dvp, name, attr, size, flags, cred, code) \
code = VOP_ATTR_SET((dvp), (name), (attr), (size), (flags), (cred))
#define AFS_VOP_ATTR_GET(dvp, name, attr, sizep, flags, cred, code) \
code = VOP_ATTR_GET((dvp), (name), (attr), (sizep), (flags), (cred))
#define AFS_VOP_SETATTR(vp, vattr, flags, cred, code) \
code = VOP_SETATTR((vp), (vattr), (flags), (cred))
#define AFS_VOP_GETATTR(vp, vattr, flags, cred, code) \
code = VOP_GETATTR((vp), (vattr), (flags), (cred))
#define AFS_VOP_REMOVE(dvp, path, cred, code) \
code = VOP_REMOVE((dvp), (path), (cred))
#define AFS_VOP_LOOKUP(dvp, name, dvpp, path, flags, rdir, cred, code) \
code = VOP_LOOKUP((dvp), (name), (dvpp), (path), (flags), \
(rdir), (cred))
#define AFS_VOP_RMDIR(ddvp, path, cdir, cred, code) \
code = VOP_RMDIR((ddvp), (path), (cdir), (cred))
#define AFS_VOP_READ(vp,uiop,iof,cr,code) \
code = VOP_READ((vp), (uiop), (iof), (cr))
#define AFS_VOP_WRITE(vp,uiop,iof,cr,code) \
code = VOP_WRITE((vp), (uiop), (iof), (cr))
#define AFS_VN_OPEN vn_open
#endif /* AFS_SGI65_ENV */
#define AFS_VOP_RWLOCK(vp, flag) VOP_RWLOCK((vp), (flag))
#define AFS_VOP_RWUNLOCK(vp, flag) VOP_RWUNLOCK((vp), (flag))

View File

@ -55,11 +55,7 @@ extern void afs_mpservice(void *);
extern struct vfsops Afs_vfsops, *afs_vfsopsp;
extern struct vnodeops Afs_vnodeops, *afs_vnodeopsp;
extern void (*afsidestroyp) (struct inode *);
extern void (*afsdptoipp) (struct efs_dinode *, struct inode *);
extern void (*afsiptodpp) (struct inode *, struct efs_dinode *);
extern void afsidestroy(struct inode *);
extern void afsdptoip(struct efs_dinode *, struct inode *);
extern void afsiptodp(struct inode *, struct efs_dinode *);
extern int (*idbg_prafsnodep) (vnode_t *);
extern int (*idbg_afsvfslistp) (void);
extern int idbg_prafsnode(vnode_t *);
@ -91,8 +87,6 @@ Afs_init(struct vfssw *vswp, int fstype)
afs_vnodeopsp = &Afs_vnodeops;
afs_vfsopsp = &Afs_vfsops;
afsidestroyp = afsidestroy;
afsiptodpp = afsiptodp;
afsdptoipp = afsdptoip;
idbg_prafsnodep = idbg_prafsnode;
idbg_afsvfslistp = idbg_afsvfslist;
NewSystemCall(AFS_SYSCALL, Afs_syscall, 6);

View File

@ -1886,51 +1886,15 @@ struct vnodeops *afs_ops = &Afs_vnodeops;
#endif /* MP */
#if defined(AFS_SGI62_ENV) && defined(AFS_SGI_DUAL_FS_CACHE)
/* Support for EFS and XFS caches. The assumption here is that the size of
/* Support for XFS caches. The assumption here is that the size of
* a cache file also does not exceed 32 bits.
*/
/* Initialized in osi_InitCacheFSType(). Used to determine inode type. */
int afs_CacheFSType = -1;
vnodeops_t *afs_efs_vnodeopsp;
vnodeops_t *afs_xfs_vnodeopsp;
vnode_t *(*afs_IGetVnode) (ino_t);
extern vnode_t *afs_EFSIGetVnode(ino_t); /* defined in osi_file.c */
extern vnode_t *afs_XFSIGetVnode(ino_t); /* defined in osi_file.c */
extern afs_lock_t afs_xosi; /* lock is for tvattr */
/* Initialize the cache operations. Called while initializing cache files. */
void
afs_InitDualFSCacheOps(struct vnode *vp)
{
static int inited = 0;
struct vfssw *swp;
int found = 0;
if (inited)
return;
inited = 1;
swp = vfs_getvfssw("xfs");
if (swp) {
afs_xfs_vnodeopsp = swp->vsw_vnodeops;
if (!found) {
if (vp && vp->v_op == afs_xfs_vnodeopsp) {
afs_CacheFSType = AFS_SGI_XFS_CACHE;
afs_IGetVnode = afs_XFSIGetVnode;
found = 1;
}
}
}
if (vp && !found)
osi_Panic("osi_InitCacheFSType: Can't find fstype for vnode 0x%llx\n",
vp);
}
ino_t
VnodeToIno(vnode_t * vp)
{
@ -1984,5 +1948,4 @@ VnodeToSize(vnode_t * vp)
ReleaseWriteLock(&afs_xosi);
return vattr.va_size;
}
#endif /* 6.2 and dual fs cache */
#endif /* AFS_SGI62_ENV */

View File

@ -458,7 +458,7 @@ afs_InitCacheInfo(register char *afile)
afs_cacheVfsp = filevp->v_vfsp;
#endif
#else
#if defined(AFS_SGI62_ENV) || defined(AFS_HAVE_VXFS) || defined(AFS_DARWIN_ENV)
#if defined(AFS_HAVE_VXFS) || defined(AFS_DARWIN_ENV)
afs_InitDualFSCacheOps(filevp);
#endif
#ifndef AFS_CACHE_VNODE_PATH

View File

@ -49,7 +49,7 @@ afs_InitMemCache(int blkCount, int blkSize, int flags)
(memCache + index)->data = blk;
memset((memCache + index)->data, 0, memCacheBlkSize);
}
#if defined(AFS_SGI62_ENV) || defined(AFS_HAVE_VXFS)
#if defined(AFS_HAVE_VXFS)
afs_InitDualFSCacheOps((struct vnode *)0);
#endif

View File

@ -1,184 +0,0 @@
#ifndef UKERNEL
/* This section for kernel libafs compiles only */
/*
* 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 AFS_PARAM_HH
#define AFS_PARAM_HH
#define AFS_VFS_ENV 1
#define AFS_VFSINCL_ENV 1
#define AFS_ENV 1 /* NOBODY uses this.... */
#define CMUSTD_ENV 1 /* NOBODY uses this.... */
#define AFS_SGI_ENV 1
#define AFS_SGI51_ENV 1 /* Dist from 5.0.1 */
#define AFS_SGI52_ENV 1
#define AFS_SGI53_ENV 1
#define AFS_SGI61_ENV 1
#define AFS_SGI62_ENV 1
#define AFS_SGI_EXMAG 1 /* use magic fields in extents for AFS extra fields */
/* AFS_SGI_SHORTSTACK not required since we have a 16K stack. */
#define AFS_HAVE_FLOCK_SYSID 1
#define AFS_PAG_LAST_ENV 1 /* PAG comes last in groups. */
#define _ANSI_C_SOURCE 1 /* rx_user.h */
#define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */
#define AFS_64BITPOINTER_ENV 1 /* pointers are 64 bits. */
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_HAVE_STATVFS 1 /* System supports statvfs */
#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
#include <afs/afs_sysnames.h>
#if defined(KERNEL) && defined(MP)
#define AFS_GLOBAL_SUNLOCK 1
#endif
#define AFS_PIOCTL 64+1000
#define AFS_SETPAG 65+1000
#define AFS_IOPEN 66+1000
#define AFS_ICREATE 67+1000
#define AFS_IREAD 68+1000
#define AFS_IWRITE 69+1000
#define AFS_IINC 70+1000
#define AFS_IDEC 71+1000
#define AFS_IOPEN64 72+1000 /* was never-used aux call. */
#define AFS_SYSCALL 73+1000
/* For the XFS fileserver */
#define AFS_SGI_XFS_IOPS_ENV 1 /* turns on XFS inode ops. */
#define AFS_64BIT_IOPS_ENV 1 /* inode ops expect 64 bit inodes */
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS "afs"
/* Machine / Operating system information */
#define sys_sgi_50 1
#define SYS_NAME "sgi_62"
#define SYS_NAME_ID SYS_NAME_ID_sgi_62
#define AFSBIG_ENDIAN 1
#define KERNEL_HAVE_UERROR 1
/* Extra kernel definitions (from kdefs file) */
#ifdef KERNEL
/* definitions here */
#define AFS_VFS34 1 /* afs/afs_vfsops.c (afs_vget), afs/afs_vnodeops.c (afs_lockctl, afs_noop) */
#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
#define AFS_SYSVLOCK 1 /* sys v locking supported */
#define afsio_iov uio_iov
#define afsio_iovcnt uio_iovcnt
#define afsio_offset uio_offset
#define afsio_seg uio_segflg
#define afsio_fmode uio_fmode
#define afsio_resid uio_resid
#define AFS_UIOSYS UIO_SYSSPACE
#define AFS_UIOUSER UIO_USERSPACE
#define AFS_CLBYTES MCLBYTES
#define AFS_MINCHANGE 2
#ifdef _K64U64
#define osi_GetTime(x) irix5_microtime((struct __irix5_timeval*)(x))
#else
#define osi_GetTime(x) microtime(x)
#endif
#define AFS_KALLOC(n) kmem_alloc(n, KM_SLEEP)
#define AFS_KALLOC_NOSLEEP(n) kmem_alloc(n, KM_NOSLEEP)
#define AFS_KFREE kmem_free
#define VATTR_NULL vattr_null
#define DEBUG 1
#define AFS_SGI_DUAL_FS_CACHE 1 /* implies supports EFS or XFS cache */
#define memset(A, B, S) bzero(A, S)
#define memcpy(B, A, S) bcopy(A, B, S)
#define memcmp(A, B, S) bcmp(A, B, S)
#endif /* KERNEL */
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#endif /* AFS_PARAM_H */
#else /* !defined(UKERNEL) */
/* This section for user space compiles only */
/*
* 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 AFS_PARAM_H
#define AFS_PARAM_H
#define AFS_VFS_ENV 1
/* Used only in vfsck code; is it needed any more???? */
#define RXK_LISTENER_ENV 1
#define AFS_USERSPACE_IP_ADDR 1
#define UKERNEL 1 /* user space kernel */
#define AFS_GREEDY43_ENV 1 /* Used only in rx/rx_user.c */
#define AFS_ENV 1
#define AFS_USR_SGI_ENV 1
#define AFS_USR_SGI62_ENV 1
#include <afs/afs_sysnames.h>
/*#define AFS_GLOBAL_SUNLOCK 1 *//* For global locking */
#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */
#define AFS_PIOCTL 64+1000
#define AFS_SYSCALL 73+1000
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS 1
/* Machine / Operating system information */
#define sgi_62 1
#define SYS_NAME "sgi_62"
#define SYS_NAME_ID SYS_NAME_ID_sgi_62
#define AFSBIG_ENDIAN 1
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
/* Extra kernel definitions (from kdefs file) */
#ifdef KERNEL
#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
#define AFS_SYSVLOCK 1 /* sys v locking supported */
#define afsio_iov uio_iov
#define afsio_iovcnt uio_iovcnt
#define afsio_offset uio_offset
#define afsio_seg uio_segflg
#define afsio_fmode uio_fmode
#define afsio_resid uio_resid
#define AFS_UIOSYS 1
#define AFS_UIOUSER UIO_USERSPACE
#define AFS_CLBYTES MCLBYTES
#define AFS_MINCHANGE 2
#define VATTR_NULL usr_vattr_null
#endif /* KERNEL */
#define AFS_DIRENT
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#define ROOTINO UFSROOTINO
#endif /* AFS_PARAM_H */
#endif /* !defined(UKERNEL) */

View File

@ -1,177 +0,0 @@
#ifndef UKERNEL
/* This section for kernel libafs compiles only */
/*
* 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 AFS_PARAM_HH
#define AFS_PARAM_HH
#define AFS_VFS_ENV 1
#define AFS_VFSINCL_ENV 1
#define AFS_ENV 1 /* NOBODY uses this.... */
#define CMUSTD_ENV 1 /* NOBODY uses this.... */
#define AFS_SGI_ENV 1
#define AFS_SGI51_ENV 1 /* Dist from 5.0.1 */
#define AFS_SGI52_ENV 1
#define AFS_SGI53_ENV 1
#define AFS_SGI61_ENV 1
#define AFS_SGI62_ENV 1
#define AFS_SGI63_ENV 1
#define AFS_SGI_EXMAG 1 /* use magic fields in extents for AFS extra fields */
/* AFS_SGI_SHORTSTACK not required since we have a 16K stack. */
#define AFS_HAVE_FLOCK_SYSID 1
#define _ANSI_C_SOURCE 1 /* rx_user.h */
#define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */
#define AFS_64BITPOINTER_ENV 1 /* pointers are 64 bits. */
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_HAVE_STATVFS 1 /* System supports statvfs */
#include <afs/afs_sysnames.h>
#define AFS_PIOCTL 64+1000
#define AFS_SETPAG 65+1000
#define AFS_IOPEN 66+1000
#define AFS_ICREATE 67+1000
#define AFS_IREAD 68+1000
#define AFS_IWRITE 69+1000
#define AFS_IINC 70+1000
#define AFS_IDEC 71+1000
#define AFS_IOPEN64 72+1000 /* was never-used aux call. */
#define AFS_SYSCALL 73+1000
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS "afs"
/* Machine / Operating system information */
#define sys_sgi_63 1
#define SYS_NAME "sgi_63"
#define SYS_NAME_ID SYS_NAME_ID_sgi_63
#define AFSBIG_ENDIAN 1
#define AFS_VM_RDWR_ENV 1
#define KERNEL_HAVE_UERROR 1
/* Extra kernel definitions (from kdefs file) */
#ifdef KERNEL
/* definitions here */
#define AFS_VFS34 1 /* afs/afs_vfsops.c (afs_vget), afs/afs_vnodeops.c (afs_lockctl, afs_noop) */
#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
#define AFS_SYSVLOCK 1 /* sys v locking supported */
#define afsio_iov uio_iov
#define afsio_iovcnt uio_iovcnt
#define afsio_offset uio_offset
#define afsio_seg uio_segflg
#define afsio_fmode uio_fmode
#define afsio_resid uio_resid
#define AFS_UIOSYS UIO_SYSSPACE
#define AFS_UIOUSER UIO_USERSPACE
#define AFS_CLBYTES MCLBYTES
#define AFS_MINCHANGE 2
#ifdef _K64U64
#define osi_GetTime(x) irix5_microtime((struct __irix5_timeval*)(x))
#else
#define osi_GetTime(x) microtime(x)
#endif
#define AFS_KALLOC(n) kmem_alloc(n, KM_SLEEP)
#define AFS_KALLOC_NOSLEEP(n) kmem_alloc(n, KM_NOSLEEP)
#define AFS_KFREE kmem_free
#define VATTR_NULL vattr_null
#define DEBUG 1
#define AFS_EVENT_LOCK 1 /* osi_Sleep/osi_Wakeup use spinlock. */
#define AFS_SGI_DUAL_FS_CACHE 1 /* implies supports EFS or XFS cache */
#define memset(A, B, S) bzero(A, S)
#define memcpy(B, A, S) bcopy(A, B, S)
#define memcmp(A, B, S) bcmp(A, B, S)
#endif /* KERNEL */
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#endif /* AFS_PARAM_H */
#else /* !defined(UKERNEL) */
/* This section for user space compiles only */
/*
* 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 AFS_PARAM_H
#define AFS_PARAM_H
#define AFS_VFS_ENV 1
/* Used only in vfsck code; is it needed any more???? */
#define RXK_LISTENER_ENV 1
#define AFS_USERSPACE_IP_ADDR 1
#define UKERNEL 1 /* user space kernel */
#define AFS_GREEDY33_ENV 1 /* Used only in rx/rx_user.c */
#define AFS_ENV 1
#define AFS_USR_SGI_ENV 1
#define AFS_USR_SGI62_ENV 1
#define AFS_USR_SGI63_ENV 1
#include <afs/afs_sysnames.h>
/*#define AFS_GLOBAL_SUNLOCK 1 *//* For global locking */
#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */
#define AFS_PIOCTL 64+1000
#define AFS_SYSCALL 73+1000
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS 1
/* Machine / Operating system information */
#define sgi_63 1
#define SYS_NAME "sgi_63"
#define SYS_NAME_ID SYS_NAME_ID_sgi_63
#define AFSBIG_ENDIAN 1
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
/* Extra kernel definitions (from kdefs file) */
#ifdef KERNEL
#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
#define AFS_SYSVLOCK 1 /* sys v locking supported */
#define afsio_iov uio_iov
#define afsio_iovcnt uio_iovcnt
#define afsio_offset uio_offset
#define afsio_seg uio_segflg
#define afsio_fmode uio_fmode
#define afsio_resid uio_resid
#define AFS_UIOSYS 1
#define AFS_UIOUSER UIO_USERSPACE
#define AFS_CLBYTES MCLBYTES
#define AFS_MINCHANGE 2
#define VATTR_NULL usr_vattr_null
#endif /* KERNEL */
#define AFS_DIRENT
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#define ROOTINO UFSROOTINO
#endif /* AFS_PARAM_H */
#endif /* !defined(UKERNEL) */

View File

@ -1,193 +0,0 @@
#ifndef UKERNEL
/* This section for kernel libafs compiles only */
/*
* 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 AFS_PARAM_HH
#define AFS_PARAM_HH
#define AFS_VFS_ENV 1
#define AFS_VFSINCL_ENV 1
#define AFS_ENV 1 /* NOBODY uses this.... */
#define CMUSTD_ENV 1 /* NOBODY uses this.... */
#define AFS_SGI_ENV 1
#define AFS_SGI51_ENV 1 /* Dist from 5.0.1 */
#define AFS_SGI52_ENV 1
#define AFS_SGI53_ENV 1
#define AFS_SGI61_ENV 1
#define AFS_SGI62_ENV 1
#define AFS_SGI63_ENV 1
#define AFS_SGI64_ENV 1
#define AFS_SGI_EXMAG 1 /* use magic fields in extents for AFS extra fields */
/* AFS_SGI_SHORTSTACK not required since we have a 16K stack. */
#define AFS_HAVE_FLOCK_SYSID 1
#define _ANSI_C_SOURCE 1 /* rx_user.h */
#define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */
#define AFS_64BITPOINTER_ENV 1 /* pointers are 64 bits. */
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_HAVE_STATVFS 1 /* System supports statvfs */
#include <afs/afs_sysnames.h>
#define AFS_GLOBAL_SUNLOCK 1
#define AFS_PIOCTL 64+1000
#define AFS_SETPAG 65+1000
#define AFS_IOPEN 66+1000
#define AFS_ICREATE 67+1000
#define AFS_IREAD 68+1000
#define AFS_IWRITE 69+1000
#define AFS_IINC 70+1000
#define AFS_IDEC 71+1000
#define AFS_IOPEN64 72+1000 /* was never-used aux call. */
#define AFS_SYSCALL 73+1000
/* For the XFS fileserver */
#define AFS_SGI_XFS_IOPS_ENV 1 /* turns on XFS inode ops. */
#define AFS_64BIT_IOPS_ENV 1 /* inode ops expect 64 bit inodes */
/* Vnode size and access differs between Octane and Origin. The number
* can be used to indicate which altername vnodeX_t to use for future
* changes.
*/
#define AFS_SGI_VNODE_GLUE 1
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS "afs"
/* Machine / Operating system information */
#define sys_sgi_64 1
#define SYS_NAME "sgi_64"
#define SYS_NAME_ID SYS_NAME_ID_sgi_64
#define AFSBIG_ENDIAN 1
#define AFS_VM_RDWR_ENV 1
/* Extra kernel definitions (from kdefs file) */
#ifdef KERNEL
#if _MIPS_SIM == _ABI64
#define _K64U64
#endif
/* definitions here */
#define AFS_VFS34 1 /* afs/afs_vfsops.c (afs_vget), afs/afs_vnodeops.c (afs_lockctl, afs_noop) */
#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
#define AFS_SYSVLOCK 1 /* sys v locking supported */
#define afsio_iov uio_iov
#define afsio_iovcnt uio_iovcnt
#define afsio_offset uio_offset
#define afsio_seg uio_segflg
#define afsio_fmode uio_fmode
#define afsio_resid uio_resid
#define AFS_UIOSYS UIO_SYSSPACE
#define AFS_UIOUSER UIO_USERSPACE
#define AFS_CLBYTES MCLBYTES
#define AFS_MINCHANGE 2
#ifdef _K64U64
#define osi_GetTime(x) irix5_microtime((struct __irix5_timeval*)(x))
#else
#define osi_GetTime(x) microtime(x)
#endif
#define AFS_KALLOC(n) kmem_alloc(n, KM_SLEEP)
#define AFS_KALLOC_NOSLEEP(n) kmem_alloc(n, KM_NOSLEEP)
#define AFS_KFREE kmem_free
#define VATTR_NULL vattr_null
#define DEBUG 1
#define AFS_EVENT_LOCK 1 /* osi_Sleep/osi_Wakeup use spinlock. */
#define AFS_SGI_DUAL_FS_CACHE 1 /* implies supports EFS or XFS cache */
#define memset(A, B, S) bzero(A, S)
#define memcpy(B, A, S) bcopy(A, B, S)
#define memcmp(A, B, S) bcmp(A, B, S)
#endif /* KERNEL */
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#endif /* AFS_PARAM_H */
#else /* !defined(UKERNEL) */
/* This section for user space compiles only */
/*
* 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 AFS_PARAM_H
#define AFS_PARAM_H
#define AFS_VFS_ENV 1
/* Used only in vfsck code; is it needed any more???? */
#define RXK_LISTENER_ENV 1
#define AFS_USERSPACE_IP_ADDR 1
#define UKERNEL 1 /* user space kernel */
#define AFS_GREEDY43_ENV 1 /* Used only in rx/rx_user.c */
#define AFS_ENV 1
#define AFS_USR_SGI_ENV 1
#define AFS_USR_SGI62_ENV 1
#define AFS_USR_SGI63_ENV 1
#define AFS_USR_SGI64_ENV 1
#include <afs/afs_sysnames.h>
/*#define AFS_GLOBAL_SUNLOCK 1 *//* For global locking */
#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */
#define AFS_PIOCTL 64+1000
#define AFS_SYSCALL 73+1000
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS 1
/* Machine / Operating system information */
#define sgi_64 1
#define SYS_NAME "sgi_64"
#define SYS_NAME_ID SYS_NAME_ID_sgi_64
#define AFSBIG_ENDIAN 1
#define AFS_HAVE_FFS 1 /* Use system's ffs. */
#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
/* Extra kernel definitions (from kdefs file) */
#ifdef KERNEL
#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
#define AFS_SYSVLOCK 1 /* sys v locking supported */
#define afsio_iov uio_iov
#define afsio_iovcnt uio_iovcnt
#define afsio_offset uio_offset
#define afsio_seg uio_segflg
#define afsio_fmode uio_fmode
#define afsio_resid uio_resid
#define AFS_UIOSYS 1
#define AFS_UIOUSER UIO_USERSPACE
#define AFS_CLBYTES MCLBYTES
#define AFS_MINCHANGE 2
#define VATTR_NULL usr_vattr_null
#endif /* KERNEL */
#define AFS_DIRENT
#ifndef CMSERVERPREF
#define CMSERVERPREF
#endif
#define ROOTINO UFSROOTINO
#endif /* AFS_PARAM_H */
#endif /* !defined(UKERNEL) */

View File

@ -114,7 +114,6 @@
/* #define DEBUG 1 */
#define AFS_EVENT_LOCK 1 /* osi_Sleep/osi_Wakeup use spinlock. */
#define AFS_SGI_DUAL_FS_CACHE 1 /* implies supports EFS or XFS cache */
#ifndef IRIX_HAS_MEM_FUNCS
#define memset(A, B, S) bzero(A, S)