mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 15:00:12 +00:00
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:
parent
14ff060627
commit
d1923139e6
@ -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;
|
||||
|
@ -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 */
|
||||
|
@ -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_ */
|
||||
|
@ -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))
|
||||
|
@ -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);
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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) */
|
@ -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) */
|
@ -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) */
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user