From 7ff00fb31ec5fea944871f32f2388ce482b37e92 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Love=20H=C3=B6rnquist-=C3=85strand?= Date: Mon, 3 Feb 2003 23:10:38 +0000 Subject: [PATCH] netbsd-16m-support-20020203 FIXES 1269 support for netbsd 1.6m --- Makefile.in | 8 +-- acinclude.m4 | 8 +++ src/cf/osconf.m4 | 12 +++++ src/config/afs_sysnames.h | 5 ++ src/config/param.i386_nbsd20.h | 84 +++++++++++++++++++++++++++++ src/config/param.nbsd20.h | 120 +++++++++++++++++++++++++++++++++++++++++ src/libafsrpc/Makefile.in | 2 +- src/util/softsig.c | 4 +- 8 files changed, 237 insertions(+), 6 deletions(-) create mode 100644 src/config/param.i386_nbsd20.h create mode 100644 src/config/param.nbsd20.h diff --git a/Makefile.in b/Makefile.in index c4389cc..c5aec9d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -201,7 +201,7 @@ viced: cmd comerr vlserver audit tviced: cmd comerr viced vlserver libafsrpc libafsauthent case ${SYS_NAME} in \ - alpha_dux*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux110|*fbsd*) \ + alpha_dux*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux110|*fbsd*|*nbsd2*) \ ${COMPILE_PART1} tviced ${COMPILE_PART2} ;; \ *) \ echo Not building MT viced for ${SYS_NAME} ;; \ @@ -411,7 +411,7 @@ tests: rxtests ubiktests # pthread based user space RX library libafsrpc: rx rxkad des case ${SYS_NAME} in \ - alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux110|*fbsd*) \ + alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux110|*fbsd*|*nbsd2*) \ ${COMPILE_PART1} libafsrpc ${COMPILE_PART2} ;; \ *) \ echo Not building MT libafsrpc for ${SYS_NAME} ;; \ @@ -419,7 +419,7 @@ libafsrpc: rx rxkad des libafsauthent: ubik auth kauth libafsrpc case ${SYS_NAME} in \ - alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux110|*fbsd*) \ + alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux110|*fbsd*|*nbsd2*) \ ${COMPILE_PART1} libafsauthent ${COMPILE_PART2} ;; \ *) \ echo Not building MT libafsrpc for ${SYS_NAME} ;; \ @@ -756,7 +756,7 @@ package.files: package ntp: project volser @case ${WITH_OBSOLETE} in \ YES) case ${SYS_NAME} in \ - sun4x_58 | sunx86_* | *linux* | *fbsd* | ppc_darwin* ) echo skipping ntp for ${SYS_NAME} ;; \ + sun4x_58 | sunx86_* | *linux* | *fbsd* | ppc_darwin* | *nbsd*) echo skipping ntp for ${SYS_NAME} ;; \ * ) ${COMPILE_PART1} ntp ${COMPILE_PART2} ;; \ esac ;; \ *) echo skipping deprecated target: ntp ;; \ diff --git a/acinclude.m4 b/acinclude.m4 index b95ea5d..dde7d86 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -356,6 +356,14 @@ else AFS_PARAM_COMMON=param.nbsd15.h AFS_SYSNAME="alpha_nbsd15" ;; + i?86-*-netbsd*1.6[[M-Z]]*) + AFS_PARAM_COMMON=param.nbsd20.h + AFS_SYSNAME="i386_nbsd20" + ;; + i?86-*-netbsd*2.0*) + AFS_PARAM_COMMON=param.nbsd20.h + AFS_SYSNAME="i386_nbsd20" + ;; i?86-*-netbsd*1.6*) AFS_PARAM_COMMON=param.nbsd16.h AFS_SYSNAME="i386_nbsd16" diff --git a/src/cf/osconf.m4 b/src/cf/osconf.m4 index 26b082b..f2ae86d 100644 --- a/src/cf/osconf.m4 +++ b/src/cf/osconf.m4 @@ -164,6 +164,18 @@ case $AFS_SYSNAME in YACC="byacc" ;; + *nbsd20) + LEX="flex -l" + MT_CFLAGS='${XCFLAGS} -DAFS_PTHREAD_ENV -D_REENTRANT ' + MT_LIBS="-lpthread" # XXX -pthread soon + PAM_CFLAGS="-O2 -pipe -fPIC" + SHLIB_LDFLAGS="-shared -Xlinker -x" + TXLIBS="/usr/lib/libcurses.so" + XCFLAGS="-O2 -pipe" + XLIBS="${LIB_AFSDB} -lcompat" + YACC="yacc" + ;; + *nbsd15|*nbsd16) LEX="flex -l" MT_CFLAGS='${XCFLAGS}' diff --git a/src/config/afs_sysnames.h b/src/config/afs_sysnames.h index 94e2451..8087d7f 100644 --- a/src/config/afs_sysnames.h +++ b/src/config/afs_sysnames.h @@ -171,6 +171,11 @@ #define SYS_NAME_ID_sparc_nbsd16 2512 #define SYS_NAME_ID_sparc64_nbsd16 2513 +#define SYS_NAME_ID_i386_nbsd20 2520 +#define SYS_NAME_ID_alpha_nbsd20 2521 +#define SYS_NAME_ID_sparc_nbsd20 2522 +#define SYS_NAME_ID_sparc64_nbsd20 2523 + #define SYS_NAME_ID_i386_obsd31 2600 #define SYS_NAME_ID_i386_obsd32 2601 diff --git a/src/config/param.i386_nbsd20.h b/src/config/param.i386_nbsd20.h new file mode 100644 index 0000000..c2d6846 --- /dev/null +++ b/src/config/param.i386_nbsd20.h @@ -0,0 +1,84 @@ +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + +#include + +#define AFS_X86_XBSD_ENV 1 + +#define AFS_X86_ENV 1 + +#define SYS_NAME "i386_nbsd20" +#define SYS_NAME_ID SYS_NAME_ID_i386_nbsd20 + +#define AFSLITTLE_ENDIAN 1 + +#endif /* AFS_PARAM_H */ + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + + +#define UKERNEL 1 /* user space kernel */ +#define AFS_ENV 1 +#define AFS_VFSINCL_ENV 1 +#define AFS_NBSD_ENV 1 +#define AFS_NBSD15_ENV 1 +#define AFS_NBSD16_ENV 1 +#define AFS_NBSD20_ENV 1 +#define AFS_NONFSTRANS 1 +#define AFS_KERBEROS_ENV + +#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */ +#define AFS_SYSCALL 210 +#define AFS_NAMEI_ENV 1 /* User space interface to file system */ +#define AFS_64BIT_IOPS_ENV 1 /* Needed for NAMEI */ +#include + +#define AFS_USERSPACE_IP_ADDR 1 +#define RXK_LISTENER_ENV 1 +#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */ + +/* Machine / Operating system information */ +#define SYS_NAME "i386_nbsd16" +#define SYS_NAME_ID SYS_NAME_ID_i386_nbsd16 +#define AFSLITTLE_ENDIAN 1 +#define AFS_HAVE_FFS 1 /* Use system's ffs. */ +#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */ +#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */ + +#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 + +#define AFS_DIRENT +#ifndef CMSERVERPREF +#define CMSERVERPREF +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif /* AFS_PARAM_H */ + +#endif /* !defined(UKERNEL) */ diff --git a/src/config/param.nbsd20.h b/src/config/param.nbsd20.h new file mode 100644 index 0000000..a0f0c1f --- /dev/null +++ b/src/config/param.nbsd20.h @@ -0,0 +1,120 @@ +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + + +#ifndef AFS_PARAM_COMMON_H +#define AFS_PARAM_COMMON_H + +#ifndef ASSEMBLER +#include +#endif + +#define AFS_XBSD_ENV 1 /* {Free,Open,Net}BSD */ + +#define AFS_NAMEI_ENV 1 /* User space interface to file system */ +#define AFS_64BIT_IOPS_ENV 1 /* Needed for NAMEI */ +#define AFS_NBSD_ENV 1 +#define AFS_NBSD15_ENV 1 +#define AFS_NBSD16_ENV 1 +#define AFS_NBSD20_ENV 1 +#define AFS_NONFSTRANS 1 +#define AFS_KERBEROS_ENV 1 +#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_VFSINCL_ENV 1 +#define AFS_GREEDY43_ENV 1 +#define AFS_ENV 1 + +#define AFS_MOUNT_AFS "afs" +#define AFS_SYSCALL 210 + + +#ifndef MOUNT_UFS +#define MOUNT_UFS "ufs" +#endif + +#ifndef MOUNT_AFS +#define MOUNT_AFS AFS_MOUNT_AFS +#endif + +#define AFS_HAVE_FFS 1 /* Use system's ffs. */ +#define AFS_HAVE_STATVFS 0 /* System doesn't supports statvfs */ + +#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__) +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__ */ +#endif /* _KERNEL */ + +#endif /* AFS_PARAM_COMMON_H */ + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + + +#endif /* !defined(UKERNEL) */ diff --git a/src/libafsrpc/Makefile.in b/src/libafsrpc/Makefile.in index 1200ef5..3d9991b 100644 --- a/src/libafsrpc/Makefile.in +++ b/src/libafsrpc/Makefile.in @@ -339,7 +339,7 @@ syscall.o: ${SYS}/syscall.s ${AS} -P ${CFLAGS} -D_NO_PROTO -DMACH -DOSF -nostdinc -traditional -DASSEMBLER ${SYS}/syscall.s; \ ${AS} -o syscall.o syscall.i; \ $(RM) -f syscall.ss syscall.i;; \ - *fbsd* ) \ + *fbsd* | *nbsd* ) \ touch syscall.o ;; \ *) \ /lib/cpp ${SFLAGS} ${SYS}/syscall.s syscall.ss; \ diff --git a/src/util/softsig.c b/src/util/softsig.c index 886a61f..5fa9cef 100644 --- a/src/util/softsig.c +++ b/src/util/softsig.c @@ -29,9 +29,11 @@ softsig_thread (void *arg) sigaddset (&ss, SIGUSR1); while (1) { - void (*h) (int) = NULL; + void (*h) (int); int i, sigw; + h = NULL; + for (i = 0; i < NSIG; i++) if (softsig_sigs[i].pending) { softsig_sigs[i].pending = 0; -- 1.9.4