From: Kris Van Hees Date: Thu, 24 Jun 2004 18:38:19 +0000 (+0000) Subject: solaris10-20040624 X-Git-Tag: openafs-devel-1_3_65~2 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=51d766814160caa6ce6af0d08ac96af3c22a095b;p=packages%2Fo%2Fopenafs.git solaris10-20040624 FIXES 5396 as substantially done by Jeff Woodward , work diffed out and slightly rewritten --- diff --git a/acinclude.m4 b/acinclude.m4 index 67ee5d2c0..ff614a303 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -539,6 +539,9 @@ else sparc-sun-solaris2.9) AFS_SYSNAME="sun4x_59" ;; + sparc-sun-solaris2.10) + AFS_SYSNAME="sun4x_510" + ;; sparc-sun-sunos4*) AFS_SYSNAME="sun4_413" enable_login="yes" @@ -552,6 +555,9 @@ else i386-pc-solaris2.9) AFS_SYSNAME="sunx86_59" ;; + i386-pc-solaris2.10) + AFS_SYSNAME="sunx86_510" + ;; alpha*-dec-osf4.0*) AFS_SYSNAME="alpha_dux40" ;; diff --git a/src/afs/SOLARIS/osi_file.c b/src/afs/SOLARIS/osi_file.c index e06145b38..8316ea292 100644 --- a/src/afs/SOLARIS/osi_file.c +++ b/src/afs/SOLARIS/osi_file.c @@ -271,7 +271,15 @@ osi_UFSTruncate(register struct osi_file *afile, afs_int32 asize) * The only time a flag is used (ATTR_UTIME) is when we're changing the time */ AFS_GUNLOCK(); +#ifdef AFS_SUN510_ENV + { + caller_context_t ct; + + code = VOP_SETATTR(afile->vnode, &tvattr, 0, &afs_osi_cred, &ct); + } +#else code = VOP_SETATTR(afile->vnode, &tvattr, 0, &afs_osi_cred); +#endif AFS_GLOCK(); MReleaseWriteLock(&afs_xosi); return code; diff --git a/src/afs/SOLARIS/osi_inode.c b/src/afs/SOLARIS/osi_inode.c index 5a414fc13..5e0d5813f 100644 --- a/src/afs/SOLARIS/osi_inode.c +++ b/src/afs/SOLARIS/osi_inode.c @@ -129,7 +129,11 @@ igetinode(vfsp, dev, inode, ipp, credp, perror) * Don't call dnlc for the cm inodes since it's a big performance * penalty there! */ +#ifdef AFS_SUN510_ENV + dnlc_enter(ITOV(ip), "a", ITOV(ip)); +#else dnlc_enter(ITOV(ip), "a", ITOV(ip), (struct AFS_UCRED *)0); +#endif } *ipp = ip; @@ -201,7 +205,11 @@ afs_syscall_icreate(dev, near_inode, param1, param2, param3, param4, rvp, #endif newip->i_nlink = 1; newip->i_mode = IFREG; +#ifdef AFS_SUN510_ENV + newip->i_vnode->v_type = VREG; +#else newip->i_vnode.v_type = VREG; +#endif newip->i_vicep1 = param1; if (param2 == 0x1fffffff /*INODESPECIAL*/) { diff --git a/src/afs/SOLARIS/osi_vfsops.c b/src/afs/SOLARIS/osi_vfsops.c index 0ef96eccc..4a19d3337 100644 --- a/src/afs/SOLARIS/osi_vfsops.c +++ b/src/afs/SOLARIS/osi_vfsops.c @@ -237,6 +237,19 @@ afs_swapvp(struct vfs *afsp, struct vnode **avpp, char *nm) } +#ifdef AFS_SUN510_ENV +struct fs_operation_def afs_vfsops_template[] = { + { VFSNAME_MOUNT, afs_mount }, + { VFSNAME_UNMOUNT, afs_unmount }, + { VFSNAME_ROOT, afs_root }, + { VFSNAME_STATVFS, afs_statvfs }, + { VFSNAME_SYNC, afs_sync }, + { VFSNAME_VGET, afs_vget }, + { VFSNAME_MOUNTROOT, afs_mountroot }, + { VFSNAME_FREEVFS, fs_freevfs }, +}; +struct vfsops *afs_vfsopsp; +#else struct vfsops Afs_vfsops = { afs_mount, afs_unmount, @@ -250,6 +263,7 @@ struct vfsops Afs_vfsops = { fs_freevfs, #endif }; +#endif /* @@ -264,10 +278,14 @@ int (*afs_orig_ioctl) (), (*afs_orig_ioctl32) (); int (*afs_orig_setgroups) (), (*afs_orig_setgroups32) (); struct streamtab *udp_infop = 0; +#ifndef AFS_SUN510_ENV struct ill_s *ill_g_headp = 0; +#endif int afs_sinited = 0; +extern struct fs_operation_def afs_vnodeops_template[]; + #if !defined(AFS_NONFSTRANS) int (*nfs_rfsdisptab_v2) (); int (*nfs_rfsdisptab_v3) (); @@ -279,7 +297,11 @@ int (*nfs_checkauth) (); extern Afs_syscall(); +#ifdef AFS_SUN510_ENV +afsinit(int fstype, char *dummy) +#else afsinit(struct vfssw *vfsswp, int fstype) +#endif { extern int afs_xioctl(); extern int afs_xsetgroups(); @@ -298,8 +320,14 @@ afsinit(struct vfssw *vfsswp, int fstype) sysent32[SYS_ioctl].sy_call = afs_xioctl; #endif +#ifdef AFS_SUN510_ENV + vfs_setfsops(fstype, afs_vfsops_template, &afs_vfsopsp); + afsfstype = fstype; + vn_make_ops("afs", afs_vnodeops_template, &afs_ops); +#else vfsswp->vsw_vfsops = &Afs_vfsops; afsfstype = fstype; +#endif #if !defined(AFS_NONFSTRANS) @@ -337,23 +365,38 @@ afsinit(struct vfssw *vfsswp, int fstype) ufs_igetp = (int (*)())modlookup("ufs", "ufs_iget"); ufs_itimes_nolockp = (void (*)())modlookup("ufs", "ufs_itimes_nolock"); udp_infop = (struct streamtab *)modlookup("udp", "udpinfo"); +#ifdef AFS_SUN510_ENV + if (!ufs_iallocp || !ufs_iupdatp || !ufs_itimes_nolockp || !ufs_igetp + || !udp_infop) + afs_warn("AFS to UFS mapping cannot be fully initialised\n"); +#else ill_g_headp = (struct ill_s *)modlookup("ip", "ill_g_head"); if (!ufs_iallocp || !ufs_iupdatp || !ufs_itimes_nolockp || !ufs_igetp || !udp_infop || !ill_g_headp) afs_warn("AFS to UFS mapping cannot be fully initialised\n"); +#endif afs_sinited = 1; return 0; } +#ifdef AFS_SUN510_ENV +static struct vfsdef_v3 afs_vfsdef = { + VFSDEF_VERSION, + "afs", + afsinit, + 0 +}; +#else static struct vfssw afs_vfw = { "afs", afsinit, &Afs_vfsops, 0 }; +#endif static struct sysent afssysent = { 6, @@ -373,7 +416,11 @@ extern struct mod_ops mod_syscallops; static struct modlfs afsmodlfs = { &mod_fsops, "afs filesystem", +#ifdef AFS_SUN510_ENV + &afs_vfsdef +#else &afs_vfw +#endif }; static struct modlsys afsmodlsys = { diff --git a/src/afs/SOLARIS/osi_vnodeops.c b/src/afs/SOLARIS/osi_vnodeops.c index d495125c1..d86fbbe78 100644 --- a/src/afs/SOLARIS/osi_vnodeops.c +++ b/src/afs/SOLARIS/osi_vnodeops.c @@ -139,12 +139,22 @@ afs_delmap(avp, offset, asp, addr, length, prot, maxprot, flags, credp) return (0); } +#ifdef AFS_SUN510_ENV +int +afs_vmread(avp, auio, ioflag, acred, ct) + register struct vnode *avp; + struct uio *auio; + int ioflag; + struct AFS_UCRED *acred; + caller_context_t *ct; +#else int afs_vmread(avp, auio, ioflag, acred) register struct vnode *avp; struct uio *auio; int ioflag; struct AFS_UCRED *acred; +#endif { register int code; @@ -157,12 +167,22 @@ afs_vmread(avp, auio, ioflag, acred) } +#ifdef AFS_SUN510_ENV +int +afs_vmwrite(avp, auio, ioflag, acred, ct) + register struct vnode *avp; + struct uio *auio; + int ioflag; + struct AFS_UCRED *acred; + caller_context_t *ct; +#else int afs_vmwrite(avp, auio, ioflag, acred) register struct vnode *avp; struct uio *auio; int ioflag; struct AFS_UCRED *acred; +#endif { register int code; @@ -1761,6 +1781,55 @@ extern int gafs_fid(), gafs_readlink(), fs_setfl(), afs_pathconf(); extern int afs_lockctl(); extern void gafs_inactive(); +#ifdef AFS_SUN510_ENV +struct fs_operation_def afs_vnodeops_template[] = { + { VOPNAME_OPEN, gafs_open }, + { VOPNAME_CLOSE, gafs_close }, + { VOPNAME_READ, afs_vmread }, + { VOPNAME_WRITE, afs_vmwrite }, + { VOPNAME_IOCTL, afs_ioctl }, + { VOPNAME_SETFL, fs_setfl }, + { VOPNAME_GETATTR, gafs_getattr }, + { VOPNAME_SETATTR, gafs_setattr }, + { VOPNAME_ACCESS, gafs_access }, + { VOPNAME_LOOKUP, gafs_lookup }, + { VOPNAME_CREATE, gafs_create }, + { VOPNAME_REMOVE, gafs_remove }, + { VOPNAME_LINK, gafs_link }, + { VOPNAME_RENAME, gafs_rename }, + { VOPNAME_MKDIR, gafs_mkdir }, + { VOPNAME_RMDIR, gafs_rmdir }, + { VOPNAME_READDIR, gafs_readdir }, + { VOPNAME_SYMLINK, gafs_symlink }, + { VOPNAME_READLINK, gafs_readlink }, + { VOPNAME_FSYNC, gafs_fsync }, + { VOPNAME_INACTIVE, gafs_inactive }, + { VOPNAME_FID, gafs_fid }, + { VOPNAME_RWLOCK, afs_rwlock }, + { VOPNAME_RWUNLOCK, afs_rwunlock }, + { VOPNAME_SEEK, afs_seek }, + { VOPNAME_CMP, afs_cmp }, + { VOPNAME_FRLOCK, afs_frlock }, + { VOPNAME_SPACE, afs_space }, + { VOPNAME_REALVP, afs_realvp }, + { VOPNAME_GETPAGE, afs_getpage }, + { VOPNAME_PUTPAGE, afs_putpage }, + { VOPNAME_MAP, afs_map }, + { VOPNAME_ADDMAP, afs_addmap }, + { VOPNAME_DELMAP, afs_delmap }, + { VOPNAME_POLL, fs_poll }, + { VOPNAME_DUMP, afs_dump }, + { VOPNAME_PATHCONF, afs_pathconf }, + { VOPNAME_PAGEIO, afs_pageio }, + { VOPNAME_DUMPCTL, afs_dumpctl }, + { VOPNAME_DISPOSE, afs_dispose }, + { VOPNAME_GETSECATTR, afs_getsecattr }, + { VOPNAME_SETSECATTR, afs_setsecattr }, + { VOPNAME_SHRLOCK, fs_shrlock }, + NULL, +}; +struct vnodeops *afs_ops; +#else struct vnodeops Afs_vnodeops = { gafs_open, gafs_close, @@ -1811,6 +1880,7 @@ struct vnodeops Afs_vnodeops = { #endif }; struct vnodeops *afs_ops = &Afs_vnodeops; +#endif diff --git a/src/afs/VNOPS/afs_vnop_read.c b/src/afs/VNOPS/afs_vnop_read.c index b91e19f76..aa2ed8d6f 100644 --- a/src/afs/VNOPS/afs_vnop_read.c +++ b/src/afs/VNOPS/afs_vnop_read.c @@ -27,6 +27,7 @@ RCSID #include "afs/afs_cbqueue.h" #include "afs/nfsclient.h" #include "afs/afs_osidnlc.h" +#include "afs/afs_osi.h" extern char afs_zeros[AFS_ZEROS]; @@ -755,9 +756,19 @@ afs_UFSRead(register struct vcache *avc, struct uio *auio, &tuio, NULL, NULL, -1); #elif defined(AFS_SUN5_ENV) AFS_GUNLOCK(); +#ifdef AFS_SUN510_ENV + { + caller_context_t ct; + + VOP_RWLOCK(tfile->vnode, 0, &ct); + code = VOP_READ(tfile->vnode, &tuio, 0, afs_osi_credp, &ct); + VOP_RWUNLOCK(tfile->vnode, 0, &ct); + } +#else VOP_RWLOCK(tfile->vnode, 0); code = VOP_READ(tfile->vnode, &tuio, 0, afs_osi_credp); VOP_RWUNLOCK(tfile->vnode, 0); +#endif AFS_GLOCK(); #elif defined(AFS_SGI_ENV) AFS_GUNLOCK(); diff --git a/src/afs/VNOPS/afs_vnop_write.c b/src/afs/VNOPS/afs_vnop_write.c index 762f5c715..af43787bb 100644 --- a/src/afs/VNOPS/afs_vnop_write.c +++ b/src/afs/VNOPS/afs_vnop_write.c @@ -530,9 +530,19 @@ afs_UFSWrite(register struct vcache *avc, struct uio *auio, int aio, &tuio, NULL, NULL, -1); #elif defined(AFS_SUN5_ENV) AFS_GUNLOCK(); +#ifdef AFS_SUN510_ENV + { + caller_context_t ct; + + VOP_RWLOCK(tfile->vnode, 1, &ct); + code = VOP_WRITE(tfile->vnode, &tuio, 0, afs_osi_credp, &ct); + VOP_RWUNLOCK(tfile->vnode, 1, &ct); + } +#else VOP_RWLOCK(tfile->vnode, 1); code = VOP_WRITE(tfile->vnode, &tuio, 0, afs_osi_credp); VOP_RWUNLOCK(tfile->vnode, 1); +#endif AFS_GLOCK(); if (code == ENOSPC) afs_warnuser diff --git a/src/afs/afs_call.c b/src/afs/afs_call.c index 20effffc0..77fedc603 100644 --- a/src/afs/afs_call.c +++ b/src/afs/afs_call.c @@ -130,7 +130,7 @@ afs_InitSetup(int preallocs) rx_extraPackets = AFS_NRXPACKETS; /* smaller # of packets */ code = rx_Init(htons(7001)); if (code) { - printf("AFS: RX failed to initialize.\n"); + printf("AFS: RX failed to initialize %d).\n", code); return code; } rx_SetRxDeadTime(afs_rx_deadtime); diff --git a/src/afs/afs_osi.h b/src/afs/afs_osi.h index a573e8978..923c92e95 100644 --- a/src/afs/afs_osi.h +++ b/src/afs/afs_osi.h @@ -174,7 +174,7 @@ extern struct vnodeops *afs_ops; */ -#if defined(AFS_HPUX_ENV) || defined(AFS_SUN57_ENV) || defined(AFS_LINUX_64BIT_KERNEL) || (defined(AFS_SGI61_ENV) && defined(KERNEL) && defined(_K64U64)) +#if defined(AFS_HPUX_ENV) || (defined(AFS_SUN57_ENV) && !defined(AFS_SUN510_ENV)) || defined(AFS_LINUX_64BIT_KERNEL) || (defined(AFS_SGI61_ENV) && defined(KERNEL) && defined(_K64U64)) typedef struct { afs_int32 tv_sec; afs_int32 tv_usec; diff --git a/src/afs/afs_server.c b/src/afs/afs_server.c index b453f8aa8..fcc1f6546 100644 --- a/src/afs/afs_server.c +++ b/src/afs/afs_server.c @@ -1212,16 +1212,24 @@ static int afs_SetServerPrefs(struct srvAddr *sa) { } #else /* AFS_USERSPACE_IP_ADDR */ #if defined(AFS_SUN5_ENV) +#ifdef AFS_SUN510_ENV + ill_walk_context_t ctx; +#else extern struct ill_s *ill_g_headp; + long *addr = (long *)ill_g_headp; +#endif ill_t *ill; ipif_t *ipif; int subnet, subnetmask, net, netmask; - long *addr = (long *)ill_g_headp; if (sa) sa->sa_iprank = 0; +#ifdef AFS_SUN510_ENV + for (ill = ILL_START_WALK_ALL(&ctx) ; ill ; ill = ill_next(&ctx, ill)) { +#else for (ill = (struct ill_s *)*addr /*ill_g_headp */ ; ill; ill = ill->ill_next) { +#endif #ifdef AFS_SUN58_ENV /* Make sure this is an IPv4 ILL */ if (ill->ill_isv6) diff --git a/src/afs/sysincludes.h b/src/afs/sysincludes.h index c87b2a9c8..1b0fec866 100644 --- a/src/afs/sysincludes.h +++ b/src/afs/sysincludes.h @@ -186,6 +186,10 @@ typedef unsigned short etap_event_t; #include "h/stream.h" /* stops SUN56 socketvar.h errors */ #endif +#ifdef AFS_SUN510_ENV +#include +#endif + #include "h/socket.h" #include "h/socketvar.h" #include "h/protosw.h" diff --git a/src/cf/osconf.m4 b/src/cf/osconf.m4 index 44bec02b0..75d5ce4e1 100644 --- a/src/cf/osconf.m4 +++ b/src/cf/osconf.m4 @@ -685,7 +685,7 @@ case $AFS_SYSNAME in SHLIB_LINKER="${CC} -G -dy -Wl,-M\$(srcdir)/mapfile -Bsymbolic -z text" ;; - sunx86_57) + sun4x_510) CC="/opt/SUNWspro/bin/cc" CCOBJ="/opt/SUNWspro/bin/cc" LEX="lex" @@ -706,6 +706,26 @@ case $AFS_SYSNAME in SHLIB_LINKER="${CC} -G -dy -Wl,-M\$(srcdir)/mapfile -Bsymbolic -z text" ;; + sunx86_57) + CC="/opt/SUNWspro/bin/cc" + CCOBJ="/opt/SUNWspro/bin/cc" + LEX="lex" + LD="/usr/ccs/bin/ld" + MT_CC="/opt/SUNWspro/bin/cc" + MT_CFLAGS='-mt -DAFS_PTHREAD_ENV ${XCFLAGS}' + MT_LIBS="-lpthread -lsocket" + PAM_CFLAGS="-KPIC" + PAM_LIBS="-lc -lpam -lsocket -lnsl -lm" + SHLIB_CFLAGS="-KPIC" + SHLIB_LDFLAGS="-G -Bsymbolic" + TXLIBS="-lcurses" + XCFLAGS64='${XCFLAGS} -xarch=v9' + XCFLAGS="-dy -Bdynamic" + XLIBELFA="-lelf" + XLIBKVM="-lkvm" + XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl" + SHLIB_LINKER="${CC} -G -dy -Wl,-M\$(srcdir)/mapfile -Bsymbolic -z text" + ;; sunx86_58) CC="/opt/SUNWspro/bin/cc" @@ -728,7 +748,26 @@ case $AFS_SYSNAME in SHLIB_LINKER="${CC} -G -dy -Wl,-M\$(srcdir)/mapfile -Bsymbolic -z text" ;; - + sunx86_510) + CC="/opt/SUNWspro/bin/cc" + CCOBJ="/opt/SUNWspro/bin/cc" + LEX="lex" + LD="/usr/ccs/bin/ld" + MT_CC="/opt/SUNWspro/bin/cc" + MT_CFLAGS='-mt -DAFS_PTHREAD_ENV ${XCFLAGS}' + MT_LIBS="-lpthread -lsocket" + PAM_CFLAGS="-KPIC" + PAM_LIBS="-lc -lpam -lsocket -lnsl -lm" + SHLIB_CFLAGS="-KPIC" + SHLIB_LDFLAGS="-G -Bsymbolic" + TXLIBS="-lcurses" + XCFLAGS64='${XCFLAGS} -xarch=v9' + XCFLAGS="-dy -Bdynamic" + XLIBELFA="-lelf" + XLIBKVM="-lkvm" + XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl" + SHLIB_LINKER="${CC} -G -dy -Wl,-M\$(srcdir)/mapfile -Bsymbolic -z text" + ;; esac # diff --git a/src/config/afs_sysnames.h b/src/config/afs_sysnames.h index c568352cb..ceda90e57 100644 --- a/src/config/afs_sysnames.h +++ b/src/config/afs_sysnames.h @@ -46,8 +46,8 @@ #define SYS_NAME_ID_hp_ux102 414 #define SYS_NAME_ID_hp_ux110 415 #define SYS_NAME_ID_hp_ux11i 416 -#define SYS_NAME_ID_ia64_hpux1122 417 -#define SYS_NAME_ID_ia64_hpux1123 418 +#define SYS_NAME_ID_ia64_hpux1122 417 +#define SYS_NAME_ID_ia64_hpux1123 418 #define SYS_NAME_ID_mac2_51 500 #define SYS_NAME_ID_mac_aux10 501 @@ -92,12 +92,14 @@ #define SYS_NAME_ID_sun4x_57 938 #define SYS_NAME_ID_sun4x_58 939 #define SYS_NAME_ID_sun4x_59 940 +#define SYS_NAME_ID_sun4x_510 941 /* Sigh. If I leave a gap here IBM will do this sequentially. If I don't they won't allocate sunx86 IDs at all. So leave a gap and pray. */ -#define SYS_NAME_ID_sunx86_57 950 -#define SYS_NAME_ID_sunx86_58 951 -#define SYS_NAME_ID_sunx86_59 952 +#define SYS_NAME_ID_sunx86_57 950 +#define SYS_NAME_ID_sunx86_58 951 +#define SYS_NAME_ID_sunx86_59 952 +#define SYS_NAME_ID_sunx86_510 953 #define SYS_NAME_ID_vax_ul4 1003 #define SYS_NAME_ID_vax_ul40 1004 diff --git a/src/config/param.sun4x_510.h b/src/config/param.sun4x_510.h new file mode 100644 index 000000000..840314185 --- /dev/null +++ b/src/config/param.sun4x_510.h @@ -0,0 +1,190 @@ +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + +#define AFS_VFS_ENV 1 +/* Used only in vfsck code; is it needed any more???? */ + +#define AFS_VFSINCL_ENV 1 /* NOBODY uses this.... */ +#define AFS_GREEDY43_ENV 1 /* Used only in rx/rx_user.c */ +#define AFS_ENV 1 +#define AFS_SUN_ENV 1 +#define AFS_SUN5_ENV 1 +#define AFS_SUN52_ENV 1 +#define AFS_SUN53_ENV 1 +#define AFS_SUN54_ENV 1 +#define AFS_SUN55_ENV 1 +#define AFS_SUN56_ENV 1 +#define AFS_SUN57_ENV 1 +#define AFS_SUN58_ENV 1 +#define AFS_SUN59_ENV 1 +#define AFS_SUN510_ENV 1 + +#define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */ + +#define AFS_HAVE_FLOCK_SYSID 1 + +#ifdef AFS_NAMEI_ENV +#define AFS_64BIT_IOPS_ENV 1 /* needed for NAMEI... */ +#else /* AFS_NAMEI_ENV */ +#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */ +#endif /* AFS_NAMEI_ENV */ + +#include + +#define AFS_GLOBAL_SUNLOCK 1 /* For global locking */ +#define RXK_LISTENER_ENV 1 +#define AFS_GCPAGS 1 /* if nonzero, garbage collect PAGs */ + +#define AFS_SYSCALL 65 + +/* File system entry (used if mount.h doesn't define MOUNT_AFS */ +#define AFS_MOUNT_AFS "afs" + +/* Machine / Operating system information */ +#define sys_sun4x_510 1 +#define SYS_NAME "sun4x_510" +#define SYS_NAME_ID SYS_NAME_ID_sun4x_510 +#define AFSBIG_ENDIAN 1 +#define AFS_HAVE_FFS 1 /* Use system's ffs. */ +#define AFS_HAVE_VXFS 1 /* Support cache on Veritas vxfs file system */ +#define AFS_HAVE_STATVFS 1 /* System supports statvfs */ +#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */ +#define AFS_USE_GETTIMEOFDAY 1 /* use gettimeofday to implement rx clock */ + +#define NEARINODE_HINT 1 /* hint to ufs module to scatter inodes on disk */ +#define nearInodeHash(volid, hval) { \ + unsigned char* ts = (unsigned char*)&(volid)+sizeof(volid)-1;\ + for ( (hval)=0; ts >= (unsigned char*)&(volid); ts--){\ + (hval) *= 173; \ + (hval) += *ts; \ + } \ + } + +/* Extra kernel definitions (from kdefs file) */ +#ifdef KERNEL +/* sun definitions here */ +#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */ +#define AFS_SYSVLOCK 1 /* sys v locking supported */ +/*#define AFS_USEBUFFERS 1*/ +#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 +#define osi_GetTime(x) uniqtime(x) + +/** + * These defines are for the 64 bit Solaris 7 port + * AFS_SYSCALL32 is used to protect the ILP32 syscall interface + * AFS_64BIT_ENV is for use of 64 bit inode numbers + */ +#if defined(__sparcv9) +#define AFS_SUN57_64BIT_ENV 1 +#define AFS_64BIT_INO 1 +#endif + +/** + * Solaris 7 64 bit has two versions of uniqtime. Since we consistently + * use 32 bit quantities for time in afs, we now use uniqtime32 + */ +#if defined(AFS_SUN57_64BIT_ENV) +#undef osi_GetTime +#define osi_GetTime(x) uniqtime32(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 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 */ +#define AFS_DIRENT +#ifndef CMSERVERPREF +#define CMSERVERPREF +#endif +#define ROOTINO UFSROOTINO + +#endif /* AFS_PARAM_H */ + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#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 AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */ + +#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_SUN5_ENV 1 +#define AFS_USR_SUN6_ENV 1 +#define AFS_USR_SUN7_ENV 1 +#define AFS_USR_SUN8_ENV 1 +#define AFS_USR_SUN9_ENV 1 + +#define AFS_64BIT_ENV 1 + +#include + +#if 0 +#define AFS_GLOBAL_SUNLOCK 1 /* For global locking */ +#endif + +#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */ +#define AFS_SYSCALL 65 + +/* File system entry (used if mount.h doesn't define MOUNT_AFS */ +#define AFS_MOUNT_AFS 1 + +/* Machine / Operating system information */ +#define sys_sun4x_59 1 +#define SYS_NAME "sun4x_59" +#define SYS_NAME_ID SYS_NAME_ID_sun4x_59 +#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 AFS_USEBUFFERS 1*/ +#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) */ diff --git a/src/config/param.sunx86_510.h b/src/config/param.sunx86_510.h new file mode 100644 index 000000000..102a96f2f --- /dev/null +++ b/src/config/param.sunx86_510.h @@ -0,0 +1,204 @@ +#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_H +#define AFS_PARAM_H + +#define AFS_VFS_ENV 1 +/* Used only in vfsck code; is it needed any more???? */ + +#define AFS_VFSINCL_ENV 1 /* NOBODY uses this.... */ +#define AFS_GREEDY43_ENV 1 /* Used only in rx/rx_user.c */ +#define AFS_ENV 1 +#define AFS_SUN_ENV 1 +#define AFS_SUN5_ENV 1 +#define AFS_SUN52_ENV 1 +#define AFS_SUN53_ENV 1 +#define AFS_SUN54_ENV 1 +#define AFS_SUN55_ENV 1 +#define AFS_SUN56_ENV 1 +#define AFS_SUN57_ENV 1 +#define AFS_SUN58_ENV 1 +#define AFS_SUN59_ENV 1 +#define AFS_SUN510_ENV 1 +#define AFS_X86_ENV 1 + +#define AFS_64BIT_ENV 1 /* Defines afs_int32 as int, not long. */ + +#define AFS_HAVE_FLOCK_SYSID 1 + +#include + +#define AFS_GLOBAL_SUNLOCK 1 /* For global locking */ +#define RXK_LISTENER_ENV 1 +#define AFS_GCPAGS 1 /* if nonzero, garbage collect PAGs */ + +#ifdef AFS_NAMEI_ENV +#define AFS_64BIT_IOPS_ENV 1 /* needed for NAMEI... */ +#else /* AFS_NAMEI_ENV */ +#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */ +#endif /* AFS_NAMEI_ENV */ + +#define AFS_SYSCALL 65 + +/* File system entry (used if mount.h doesn't define MOUNT_AFS */ +#define AFS_MOUNT_AFS "afs" + +/* Machine / Operating system information */ +#define sys_sunx86_510 1 +#define SYS_NAME "sunx86_510" +#define SYS_NAME_ID SYS_NAME_ID_sunx86_510 +#define AFSLITTLE_ENDIAN 1 +#define AFS_HAVE_FFS 1 /* Use system's ffs. */ +#define AFS_HAVE_VXFS 1 /* Support cache on Veritas vxfs file system */ +#define AFS_HAVE_STATVFS 1 /* System supports statvfs */ +#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */ +#define AFS_USE_GETTIMEOFDAY 1 /* use gettimeofday to implement rx clock */ + +#define NEARINODE_HINT 1 /* hint to ufs module to scatter inodes on disk */ +#define nearInodeHash(volid, hval) { \ + unsigned char* ts = (unsigned char*)&(volid)+sizeof(volid)-1;\ + for ( (hval)=0; ts >= (unsigned char*)&(volid); ts--){\ + (hval) *= 173; \ + (hval) += *ts; \ + } \ + } + +/* Extra kernel definitions (from kdefs file) */ +#ifdef KERNEL +/* sun definitions here */ +#define AFS_UIOFMODE 1 /* Only in afs/afs_vnodeops.c (afs_ustrategy) */ +#define AFS_SYSVLOCK 1 /* sys v locking supported */ +/*#define AFS_USEBUFFERS 1*/ +#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 +#define osi_GetTime(x) uniqtime(x) + +/** + * These defines are for the 64 bit Solaris 7 port + * AFS_SYSCALL32 is used to protect the ILP32 syscall interface + * AFS_64BIT_ENV is for use of 64 bit inode numbers + */ +#if defined(__sparcv9) +#define AFS_SUN57_64BIT_ENV 1 +#define AFS_64BIT_INO 1 +#endif + +/** + * Solaris 7 64 bit has two versions of uniqtime. Since we consistently + * use 32 bit quantities for time in afs, we now use uniqtime32 + */ +#if defined(AFS_SUN57_64BIT_ENV) +#undef osi_GetTime +#define osi_GetTime(x) uniqtime32(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 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 */ +#define AFS_DIRENT +#ifndef CMSERVERPREF +#define CMSERVERPREF +#endif +#define ROOTINO UFSROOTINO + +#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 AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */ + +#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_SUN5_ENV 1 +#define AFS_USR_SUN6_ENV 1 + +#include + +#if 0 +#define AFS_GLOBAL_SUNLOCK 1 /* For global locking */ +#endif + +#define AFS_3DISPARES 1 /* Utilize the 3 available disk inode 'spares' */ +#define AFS_SYSCALL 65 + +/* File system entry (used if mount.h doesn't define MOUNT_AFS */ +#define AFS_MOUNT_AFS 1 + +/* Machine / Operating system information */ +#define sys_sun4x_55 1 +#define SYS_NAME "sun4x_55" +#define SYS_NAME_ID SYS_NAME_ID_sun4x_55 +#define AFSLITTLE_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 AFS_USEBUFFERS 1*/ +#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) */ diff --git a/src/libafs/MakefileProto.SOLARIS.in b/src/libafs/MakefileProto.SOLARIS.in index 8cc86d72c..ae3886a9f 100644 --- a/src/libafs/MakefileProto.SOLARIS.in +++ b/src/libafs/MakefileProto.SOLARIS.in @@ -33,7 +33,7 @@ DEFINES= -DAFSDEBUG -DKERNEL -DAFS -DVICE -DNFS -DUFS -DINET -DQUOTA -DGETMOUNT KDEFS= -Dsun4c -DSUN4C_60 -DNFSCLIENT -DSYSACCT -DOLDSCSI -DVDDRV -D_KERNEL \ -DSYSV -dn ${ARCH_DEFS} - + KDEFS_32 = KDEFS_64 = -xarch=v9 @@ -43,7 +43,7 @@ CFLAGS=-I. -I.. -I${TOP_OBJDIR}/src/config ${FSINCLUDES} $(DEFINES) $(KDEFS) $(K # Name of directory to hold object files and libraries. KOBJ = MODLOAD - + KOBJ = MODLOAD32 MODLOAD64 @@ -53,7 +53,7 @@ COMPDIRS = single_compdir INSTDIRS = single_instdir DESTDIRS = single_destdir - + COMPDIRS = solaris_compdirs INSTDIRS = solaris_instdirs DESTDIRS = solaris_destdirs @@ -85,7 +85,7 @@ setup: ## This is the target for a Solaris 7. Here we build both the 32 bit and ## the 64 bit libafs in MODLOAD32 and MODLOAD64 directories respectively - + ${COMPDIRS} ${INSTDIRS} ${DESTDIRS}: for t in ${KOBJ} ; do \ echo Building directory: $$t ; \ @@ -121,7 +121,7 @@ INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/${LIBAFSNONFS} DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS} DEST_LIBAFSNONFS = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFSNONFS} - + INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/libafs${BITS}.nonfs.o INST_LIBAFS = ${DESTDIR}${afskerneldir}/libafs${BITS}.o diff --git a/src/lwp/Makefile.in b/src/lwp/Makefile.in index ec4625470..903903f4f 100644 --- a/src/lwp/Makefile.in +++ b/src/lwp/Makefile.in @@ -56,7 +56,7 @@ process.o : process.s process.i386.s process.c ${AS} process.ss -o process.o ; \ $(RM) -f process.S ;;\ ncrx86_* | sunx86_*) \ - /usr/ccs/lib/cpp -P -I${TOP_INCDIR} ${srcdir}/process.i386.s process.ss; \ + /usr/ccs/lib/cpp -P -D__i386 -DIGNORE_STDS_H -I${TOP_INCDIR} -I${srcdir} ${srcdir}/process.i386.s process.ss; \ ${AS} -o process.o process.ss; \ $(RM) process.ss ;; \ alpha_nbsd* ) \ @@ -71,7 +71,7 @@ process.o : process.s process.i386.s process.c ia64_hpux11* | hp_ux11* ) \ ${CC} ${CFLAGS} -c ${srcdir}/process.c;; \ i386_*) \ - /lib/cpp -P -I${TOP_INCDIR} ${srcdir}/process.i386.s process.ss; \ + /lib/cpp -P -I${TOP_INCDIR} -I${srcdir} ${srcdir}/process.i386.s process.ss; \ ${AS} process.ss -o process.o; \ $(RM) process.ss ;; \ *) \ diff --git a/src/lwp/lwp_elf.h b/src/lwp/lwp_elf.h index fd8f8c5b0..277082380 100644 --- a/src/lwp/lwp_elf.h +++ b/src/lwp/lwp_elf.h @@ -36,6 +36,7 @@ * * $Id$ */ +#include #ifndef _C_LABEL #if !defined(SYSV) && !defined(__ELF__) && !defined(AFS_SUN5_ENV) diff --git a/src/rx/SOLARIS/rx_knet.c b/src/rx/SOLARIS/rx_knet.c index 42c569313..43314c1c0 100644 --- a/src/rx/SOLARIS/rx_knet.c +++ b/src/rx/SOLARIS/rx_knet.c @@ -52,10 +52,12 @@ int (*sockfs_sosendmsg) (struct sonode *, struct nmsghdr *, struct uio *) = NULL; int (*sockfs_sosetsockopt) (struct sonode *, int, int, void *, int) = NULL; +#ifndef AFS_SUN510_ENV int (*sockfs_sounbind) (struct sonode *, int); void (*sockfs_sockfree) (struct sonode *); +#endif static afs_uint32 myNetAddrs[ADDRSPERSITE]; static int myNetMTUs[ADDRSPERSITE]; @@ -70,6 +72,9 @@ rxi_GetIFInfo() ill_t *ill; ipif_t *ipif; int rxmtu, maxmtu; +#ifdef AFS_SUN510_ENV + ill_walk_context_t ctx; +#endif int mtus[ADDRSPERSITE]; afs_uint32 addrs[ADDRSPERSITE]; @@ -78,7 +83,11 @@ rxi_GetIFInfo() memset(mtus, 0, sizeof(mtus)); memset(addrs, 0, sizeof(addrs)); +#ifdef AFS_SUN510_ENV + for (ill = ILL_START_WALK_ALL(&ctx) ; ill ; ill = ill_next(&ctx, ill)) { +#else for (ill = ill_g_head; ill; ill = ill->ill_next) { +#endif #ifdef AFS_SUN58_ENV /* Make sure this is an IPv4 ILL */ if (ill->ill_isv6) @@ -144,6 +153,9 @@ rxi_FindIfMTU(afs_uint32 addr) afs_uint32 myAddr, netMask; int match_value = 0; int mtu = -1; +#ifdef AFS_SUN510_ENV + ill_walk_context_t ctx; +#endif if (numMyNetAddrs == 0) rxi_GetIFInfo(); @@ -158,7 +170,11 @@ rxi_FindIfMTU(afs_uint32 addr) else netMask = 0; +#ifdef AFS_SUN510_ENV + for (ill = ILL_START_WALK_ALL(&ctx) ; ill ; ill = ill_next(&ctx, ill)) { +#else for (ill = ill_g_head; ill; ill = ill->ill_next) { +#endif #ifdef AFS_SUN58_ENV /* Make sure this is an IPv4 ILL */ if (ill->ill_isv6) @@ -254,6 +270,7 @@ rxk_NewSocket(short aport) return NULL; } } +#ifndef AFS_SUN510_ENV if (sockfs_sounbind == NULL) { sockfs_sounbind = (int (*)())modlookup("sockfs", "sounbind"); if (sockfs_sounbind == NULL) @@ -264,6 +281,7 @@ rxk_NewSocket(short aport) if (sockfs_sockfree == NULL) return NULL; } +#endif accessvp = sockfs_solookup(AF_INET, SOCK_DGRAM, 0, "/dev/udp", &error); if (accessvp == NULL) { @@ -307,6 +325,7 @@ osi_FreeSocket(register struct osi_socket *asocket) struct sockaddr_in taddr; struct iovec dvec; char c; + vnode_t *vp; AFS_STATCNT(osi_FreeSocket); @@ -322,8 +341,14 @@ osi_FreeSocket(register struct osi_socket *asocket) afs_osi_Sleep(&rxk_ListenerPid); } +#ifdef AFS_SUN510_ENV + vp = SOTOV(so); + VOP_CLOSE(vp, FREAD|FWRITE, 1, (offset_t)0, CRED()); + VN_RELE(vp); +#else sockfs_sounbind(so, 0); sockfs_sockfree(so); +#endif return 0; } diff --git a/src/sys/Makefile.in b/src/sys/Makefile.in index 23033ffb8..4a197c8e0 100644 --- a/src/sys/Makefile.in +++ b/src/sys/Makefile.in @@ -45,7 +45,7 @@ tests: pagsh pagsh.krb fixit iinc idec icreate iopen istat rmtsysd syscall.o: syscall.s case "$(SYS_NAME)" in \ - sun4c_51 | sun4c_52 | sun4m_51 | sun4m_52 | sun4c_53 | sun4m_53 | sun4_53 | sun4_52 | sun4_54 | sun4c_54 | sun4m_54 | sun4x_5? | sunx86_5?) \ + sun4c_51 | sun4c_52 | sun4m_51 | sun4m_52 | sun4c_53 | sun4m_53 | sun4_53 | sun4_52 | sun4_54 | sun4c_54 | sun4m_54 | sun4x_5? | sun4x_5?? | sunx86_5? | sunx86_5?? ) \ /usr/ccs/lib/cpp ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \ as -o syscall.o syscall.ss; \ $(RM) syscall.ss;; \ diff --git a/src/venus/Makefile.in b/src/venus/Makefile.in index 2a6ea4ebf..105e209a5 100644 --- a/src/venus/Makefile.in +++ b/src/venus/Makefile.in @@ -145,7 +145,7 @@ kdump: kdump.o case ${SYS_NAME} in \ sun4c_51 | sun4c_52 | sun4m_51 | sun4m_52 | sun4c_53 | sun4m_53 | sun4_53 | sun4_54 | sun4c_54 | sun4m_54 | sunx86_5? ) \ ${CC} -o kdump kdump.o ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a /usr/lib/libkvm.a -lelf ${XLIBS} ;; \ - sun*_5? ) \ + sun*_5? | sun*_5?? ) \ ${CC} -o kdump kdump.o ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a ${XLIBELFA} ${XLIBKVM} ${XLIBS} ;; \ sgi_6? ) \ for f in ../libafs/STATIC.IP*/CPU_KDEFS; \ diff --git a/src/vfsck/setup.c b/src/vfsck/setup.c index e7c7aa5d0..9930b359d 100644 --- a/src/vfsck/setup.c +++ b/src/vfsck/setup.c @@ -380,6 +380,7 @@ setup(dev) return (-1); #endif #ifdef AFS_NEWCG_ENV +# ifndef AFS_SUN510_ENV if (sblock.fs_interleave < 1) { pwarn("IMPOSSIBLE INTERLEAVE=%d IN SUPERBLOCK", sblock.fs_interleave); sblock.fs_interleave = 1; @@ -390,6 +391,7 @@ setup(dev) dirty(&asblk); } } +# endif /* AFS_SUN510_ENV */ #endif /* AFS_NEWCG_ENV */ #ifdef AFS_NEWCG_ENV if (sblock.fs_npsect < sblock.fs_nsect) { @@ -471,7 +473,9 @@ setup(dev) #if defined(AFS_SUN_ENV) && !defined(AFS_SUN3_ENV) #ifdef AFS_SUN5_ENV sblock.fs_npsect = 0; +# ifndef AFS_SUN510_ENV sblock.fs_interleave = 0; +# endif sblock.fs_state = FSOKAY - sblock.fs_time; /* make mountable */ #else fs_set_state(&sblock, FSOKAY - sblock.fs_time); @@ -739,7 +743,9 @@ readsb(listerr) */ altsblock.fs_fsbtodb = sblock.fs_fsbtodb; #ifdef AFS_NEWCG_ENV +# ifndef AFS_SUN510_ENV altsblock.fs_interleave = sblock.fs_interleave; +# endif altsblock.fs_npsect = sblock.fs_npsect; altsblock.fs_nrpos = sblock.fs_nrpos; #endif /* AFS_NEWCG_ENV */