From: Jonathan A. Kollasch Date: Sat, 10 Apr 2010 15:55:17 +0000 (-0500) Subject: NetBSD 5.0 support. X-Git-Tag: openafs-devel-1_5_75~319 X-Git-Url: http://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=fb50f2478c0402eb3062208e173ebe33d00ac9c4 NetBSD 5.0 support. Change-Id: I5b9c5b8204ef729d9719f195ddbaf83c5f9cb4b5 Reviewed-on: http://gerrit.openafs.org/1738 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- diff --git a/acinclude.m4 b/acinclude.m4 index c607830..152bdd4 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -492,63 +492,33 @@ else i386-*-dragonfly2.3*) AFS_SYSNAME="i386_dfbsd_23" ;; - i?86-*-netbsd*1.5*) - AFS_SYSNAME="i386_nbsd15" - ;; - alpha-*-netbsd*1.5*) - AFS_SYSNAME="alpha_nbsd15" - ;; i?86-*-netbsd*1.6[[M-Z]]*) AFS_SYSNAME="i386_nbsd20" ;; powerpc-*-netbsd*1.6[[M-Z]]*) AFS_SYSNAME="ppc_nbsd20" ;; - i?86-*-netbsd*2.0*) - AFS_SYSNAME="i386_nbsd20" - ;; - amd64-*-netbsd*2.0*) - AFS_SYSNAME="amd64_nbsd20" - ;; - x86_64-*-netbsd*3.[[0-8]]*) -# XXX AFS_PARAM_COMMON handled separately, redundant? - AFS_PARAM_COMMON=param.nbsd30.h - AFS_SYSNAME="amd64_nbsd30" - ;; - x86_64-*-netbsd*4.[[0-8]]*) -# XXX AFS_PARAM_COMMON handled separately, redundant? - AFS_PARAM_COMMON=param.nbsd40.h - AFS_SYSNAME="amd64_nbsd40" - ;; - powerpc-*-netbsd*2.0*) - AFS_SYSNAME="ppc_nbsd20" - ;; - i?86-*-netbsd*1.6*) - AFS_SYSNAME="i386_nbsd16" - ;; - alpha-*-netbsd*1.6*) - AFS_SYSNAME="alpha_nbsd16" - ;; - powerpc-*-netbsd*1.6*) - AFS_SYSNAME="ppc_nbsd16" - ;; - i?86-*-netbsd*2.1*) - AFS_SYSNAME="i386_nbsd21" - ;; - i?86-*-netbsd*2.99*) - AFS_SYSNAME="i386_nbsd30" - ;; - i?86-*-netbsd*3.[[0-8]]*) - AFS_SYSNAME="i386_nbsd30" - ;; - i?86-*-netbsd*3.99*) - AFS_SYSNAME="i386_nbsd30" - ;; - i?86-*-netbsd*4.[[0-8]]*) - AFS_SYSNAME="i386_nbsd40" - ;; - i?86-*-netbsd*4.99*) - AFS_SYSNAME="i386_nbsd40" + *-*-netbsd*) + arch=${host%%-unknown*} + arch=$(echo $arch |sed -e 's/x86_64/amd64/g' \ + -e 's/powerpc/ppc/g') + v=${host#*netbsd} + v=${v#*aout} + v=${v#*ecoff} + v=${v#*elf} + vM=${v%%.*} + vM=${vM%.*} + v=${v#*.} + vm=${v%%.*} + vm=${vm%.*} + vm=${vm%%[[_A-Z]]*} + if test $vm -eq 99 ; then + vM=$((vM+1)) + fi + if test $vM -gt 1 ; then + vm=0 + fi + AFS_SYSNAME="${arch}_nbsd${vM}${vm}" ;; hppa*-hp-hpux11.0*) AFS_SYSNAME="hp_ux110" @@ -744,6 +714,7 @@ case $AFS_SYSNAME in *_nbsd21) AFS_PARAM_COMMON=param.nbsd21.h ;; *_nbsd30) AFS_PARAM_COMMON=param.nbsd30.h ;; *_nbsd40) AFS_PARAM_COMMON=param.nbsd40.h ;; + *_nbsd50) AFS_PARAM_COMMON=param.nbsd50.h ;; *_obsd31) AFS_PARAM_COMMON=param.obsd31.h ;; *_obsd32) AFS_PARAM_COMMON=param.obsd32.h ;; *_obsd33) AFS_PARAM_COMMON=param.obsd33.h ;; diff --git a/src/afsd/afsd_kernel.c b/src/afsd/afsd_kernel.c index 33a2c28..5c58a32 100644 --- a/src/afsd/afsd_kernel.c +++ b/src/afsd/afsd_kernel.c @@ -508,6 +508,8 @@ afsd_mount_afs(const char *rn, const char *cacheMountDir) < 0) { #elif defined(AFS_LINUX20_ENV) if ((mount("AFS", cacheMountDir, MOUNT_AFS, 0, NULL)) < 0) { +#elif defined(AFS_NBSD50_ENV) + if ((mount(MOUNT_AFS, cacheMountDir, mountFlags, NULL, 0)) < 0) { #else /* This is the standard mount used by the suns and rts */ if ((mount(MOUNT_AFS, cacheMountDir, mountFlags, (caddr_t) 0)) < 0) { diff --git a/src/cf/osconf.m4 b/src/cf/osconf.m4 index 7d6be57..7fb5515 100644 --- a/src/cf/osconf.m4 +++ b/src/cf/osconf.m4 @@ -287,15 +287,16 @@ case $AFS_SYSNAME in YACC="byacc" ;; - *nbsd2*|*nbsd3*|*nbsd4*) + *nbsd2*|*nbsd3*|*nbsd4*|*nbsd5*) LEX="flex -l" - MT_CFLAGS='${XCFLAGS} -DAFS_PTHREAD_ENV -D_REENTRANT ' - MT_LIBS="-lpthread" # XXX -pthread soon + MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}' + MT_LIBS="-pthread" PAM_OPTMZ=-O2 PAM_CFLAGS="-pipe -fPIC" + SHLIB_CFLAGS="-fPIC" SHLIB_LDFLAGS="-shared -Xlinker -x" SHLIB_LINKER="${MT_CC} -shared" - TXLIBS="/usr/lib/libcurses.so" + TXLIBS="-lcurses" XCFLAGS="-pipe" YACC="yacc" ;; diff --git a/src/config/param.amd64_nbsd50.h b/src/config/param.amd64_nbsd50.h new file mode 100644 index 0000000..16ddd8f --- /dev/null +++ b/src/config/param.amd64_nbsd50.h @@ -0,0 +1,22 @@ +#ifndef AFS_AMD64_PARAM_H +#define AFS_AMD64_PARAM_H + +#define AFS_X86_XBSD_ENV 1 +#define AFS_X86_ENV 1 +#define AFSLITTLE_ENDIAN 1 + +#define SYS_NAME "amd64_nbsd50" +#define SYS_NAME_ID SYS_NAME_ID_amd64_nbsd50 + +#define AFS_64BITPOINTER_ENV 1 +#define AFS_64BITUSERPOINTER_ENV 1 +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#endif /* !defined(UKERNEL) */ + +#endif /* AFS_AMD64_PARAM_H */ diff --git a/src/config/param.i386_nbsd50.h b/src/config/param.i386_nbsd50.h new file mode 100644 index 0000000..0d776c4 --- /dev/null +++ b/src/config/param.i386_nbsd50.h @@ -0,0 +1,20 @@ +#ifndef AFS_I386_PARAM_H +#define AFS_I386_PARAM_H + +#define AFS_X86_XBSD_ENV 1 +#define AFS_X86_ENV 1 +#define AFSLITTLE_ENDIAN 1 + +#define SYS_NAME "i386_nbsd50" +#define SYS_NAME_ID SYS_NAME_ID_i386_nbsd50 + +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#endif /* !defined(UKERNEL) */ + +#endif /* AFS_I386_PARAM_H */ diff --git a/src/config/param.nbsd50.h b/src/config/param.nbsd50.h new file mode 100644 index 0000000..7517d6c --- /dev/null +++ b/src/config/param.nbsd50.h @@ -0,0 +1,161 @@ +/* NetBSD shared section */ + +#ifndef AFS_PARAM_COMMON_H +#define AFS_PARAM_COMMON_H 1 + +#define AFS_64BIT_ENV 1 +#define AFS_NAMEI_ENV 1 /* User space interface to file system */ +#define AFS_64BIT_IOPS_ENV 1 /* Needed for NAMEI */ +#define AFS_64BIT_CLIENT 1 + +#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */ +#define AFS_SYSCALL 210 + +#ifndef MOUNT_AFS +#define MOUNT_AFS AFS_MOUNT_AFS +#endif + +#define AFS_XBSD_ENV 1 /* {Free,Open,Net}BSD */ + +#define AFS_NBSD_ENV 1 +#define AFS_NBSD15_ENV 1 +#define AFS_NBSD16_ENV 1 +#define AFS_NBSD20_ENV 1 +#define AFS_NBSD30_ENV 1 +#define AFS_NBSD40_ENV 1 +#define AFS_NBSD50_ENV 1 +#undef AFS_NONFSTRANS +#define AFS_NONFSTRANS 1 + +#define AFS_VFSINCL_ENV 1 + +#define AFS_HAVE_FFS 1 /* Use system's ffs. */ + +#if !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H) +#define AFS_HAVE_STATVFS 1 /* System supports statvfs */ +#endif + +#ifndef UKERNEL + +#if !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H) +#include +#endif + +#define FTRUNC O_TRUNC + +#define IUPD 0x0010 +#define IACC 0x0020 +#define ICHG 0x0040 +#define IMOD 0x0080 + +#define IN_LOCK(ip) lockmgr(&ip->i_lock, LK_EXCLUSIVE, \ + NULL, curproc) +#define IN_UNLOCK(ip) lockmgr(&ip->i_lock, LK_RELEASE, \ + NULL, curproc) + +#include + +#define AFS_VM_RDWR_ENV 1 +#define AFS_VFS_ENV 1 +#define AFS_GREEDY43_ENV 1 + +#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */ +#define AFS_USE_GETTIMEOFDAY 1 /* use gettimeofday to implement rx clock */ + +/* Extra kernel definitions (from kdefs file) */ +#ifdef _KERNEL +#define AFS_GLOBAL_SUNLOCK 1 +#define AFS_VFS34 1 /* What is VFS34??? */ +#define AFS_SHORTGID 1 /* are group id's short? */ +#define afsio_iov uio_iov +#define afsio_iovcnt uio_iovcnt +#define afsio_offset uio_offset +#define afsio_seg uio_segflg +#define afsio_resid uio_resid +#define AFS_UIOSYS UIO_SYSSPACE +#define AFS_UIOUSER UIO_USERSPACE +#define AFS_CLBYTES CLBYTES +#define osi_GetTime(x) microtime(x) +#define AFS_KALLOC(x) kalloc(x) +#define AFS_KFREE(x,y) kfree(x,y) +#define v_count v_usecount +#define v_vfsp v_mount +#define vfs_bsize mnt_stat.f_bsize +#define vfs_fsid mnt_stat.f_fsid +#define va_nodeid va_fileid +#define vfs_vnodecovered mnt_vnodecovered +#define direct dirent +#define vnode_t struct vnode + +#ifndef MUTEX_DEFAULT +#define MUTEX_DEFAULT 0 +#endif /* MUTEX_DEFAULT */ + +#ifndef SSYS +#define SSYS 0x00002 +#endif /* SSYS */ + +#define p_rcred p_ucred + +#define VN_RELE(vp) vrele(((struct vnode *)(vp))) +#define VN_HOLD(vp) VREF(((struct vnode *)(vp))) + +#if !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H) +enum vcexcl { NONEXCL, EXCL }; + +#ifdef KERNEL +#ifndef MIN +#define MIN(A,B) ((A) < (B) ? (A) : (B)) +#endif +#ifndef MAX +#define MAX(A,B) ((A) > (B) ? (A) : (B)) +#endif +#endif /* KERNEL */ + +#endif /* ! ASSEMBLER & ! __LANGUAGE_ASSEMBLY__ && !defined(IGNORE_STDS_H) */ +#endif /* _KERNEL */ + +#else /* !defined(UKERNEL) */ + + +/* This section for user space compiles only */ + +#define UKERNEL 1 /* user space kernel */ + +#include + +#define AFS_USERSPACE_IP_ADDR 1 +#define RXK_LISTENER_ENV 1 +#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */ + +#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 VATTR_NULL usr_vattr_null + +#define AFS_DIRENT +#ifndef CMSERVERPREF +#define CMSERVERPREF +#endif + +#if !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H) +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#endif /* !defined(UKERNEL) */ + +#endif /* AFS_PARAM_COMMON_H */