NetBSD 5.0 support.
authorJonathan A. Kollasch <jakllsch@kollasch.net>
Sat, 10 Apr 2010 15:55:17 +0000 (10:55 -0500)
committerDerrick Brashear <shadow@dementia.org>
Tue, 4 May 2010 02:55:30 +0000 (19:55 -0700)
Change-Id: I5b9c5b8204ef729d9719f195ddbaf83c5f9cb4b5
Reviewed-on: http://gerrit.openafs.org/1738
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

acinclude.m4
src/afsd/afsd_kernel.c
src/cf/osconf.m4
src/config/param.amd64_nbsd50.h [new file with mode: 0644]
src/config/param.i386_nbsd50.h [new file with mode: 0644]
src/config/param.nbsd50.h [new file with mode: 0644]

index c607830..152bdd4 100644 (file)
@@ -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  ;;
index 33a2c28..5c58a32 100644 (file)
@@ -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) {
index 7d6be57..7fb5515 100644 (file)
@@ -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 (file)
index 0000000..16ddd8f
--- /dev/null
@@ -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 (file)
index 0000000..0d776c4
--- /dev/null
@@ -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 (file)
index 0000000..7517d6c
--- /dev/null
@@ -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 <sys/param.h>
+#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 <afs/afs_sysnames.h>
+
+#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 <afs/afs_sysnames.h>
+
+#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 <limits.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/mount.h>
+#include <sys/fcntl.h>
+#include <netinet/in.h>
+#include <sys/uio.h>
+#include <sys/socket.h>
+#endif
+
+#endif /* !defined(UKERNEL) */
+
+#endif /* AFS_PARAM_COMMON_H */