MKAFS_OSTYPE=OBSD
AC_MSG_RESULT(i386_obsd)
;;
+ *-dragonfly*)
+ MKAFS_OSTYPE=DFBSD
+ AC_MSG_RESULT(i386_dfbsd)
+ ;;
*)
AC_MSG_RESULT($system)
;;
vm=${v#*.}
AFS_SYSNAME="amd64_fbsd_${vM}${vm}"
;;
+ i386-*-dragonfly2.2*)
+ AFS_SYSNAME="i386_dfbsd_23"
+ ;;
+ i386-*-dragonfly2.3*)
+ AFS_SYSNAME="i386_dfbsd_23"
+ ;;
i?86-*-netbsd*1.5*)
AFS_SYSNAME="i386_nbsd15"
;;
if test "x$MKAFS_OSTYPE" = OBSD; then
PTHREAD_LIBS="-pthread"
fi
+if test "x$MKAFS_OSTYPE" = xDFBSD; then
+ PTHREAD_LIBS="-pthread"
+fi
if test "x$PTHREAD_LIBS" = xerror; then
AC_CHECK_LIB(pthread, pthread_attr_init,
PTHREAD_LIBS="-lpthread")
--- /dev/null
+/*
+ * 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
+ */
+/*
+ * osi_prototypes.h
+ *
+ * Exported support routines.
+ */
+#ifndef _OSI_PROTO_H_
+#define _OSI_PROTO_H_
+
+/* osi_file.c */
+extern afs_rwlock_t afs_xosi;
+
+
+
+#endif /* _OSI_PROTO_H_ */
+
/*
* Copyright 2000, International Business Machines Corporation and others.
* All Rights Reserved.
for (currp = readdir(cdirp); currp; currp = readdir(cdirp)) {
if (afsd_debug) {
printf("%s: Current directory entry:\n", rn);
+#if defined(AFS_USR_DFBSD_ENV)
+ printf("\tinode=%d, name='%s'\n", currp->d_ino,
+ currp->d_name);
+#else
printf("\tinode=%d, reclen=%d, name='%s'\n", currp->d_ino,
currp->d_reclen, currp->d_name);
+#endif
}
/*
iob.in_size = tlen;
iob.out = &outbuf[0];
iob.out_size = sizeof(outbuf);
+
rc = call_syscall(AFSCALL_PIOCTL, 0, _VICEIOCTL(3), (long)&iob, 0, 0);
if (rc != 0) {
errno = rc;
struct lock__bsd__ rwlock;
#endif
#ifdef AFS_XBSD_ENV
+#if !defined(AFS_DFBSD_ENV)
struct lock rwlock;
#endif
+#endif
struct VenusFid *mvid; /* Either parent dir (if root) or root (if mt pt) */
char *linkData; /* Link data if a symlink. */
/* ARCH/osi_groups.c */
-#ifdef AFS_XBSD_ENV
+#if defined AFS_XBSD_ENV
+#if !defined(AFS_DFBSD_ENV) || !defined(UKERNEL)
extern int setpag(struct proc *proc, struct ucred **cred, afs_uint32 pagvalue,
afs_uint32 * newpag, int change_parent);
#endif
+#endif
/* ARCH/osi_vm.c */
#ifdef AFS_SGI62_ENV
printf("\tinode=%" AFS_INT64_FMT ", reclen=%d, name='%s'\n", currp->d_ino,
currp->d_reclen, currp->d_name);
+#elif defined(AFS_DFBSD_ENV)
+ printf("\tinode=%d, name='%s'\n", currp->d_ino, currp->d_name);
#else
printf("\tinode=%d, reclen=%d, name='%s'\n", currp->d_ino,
currp->d_reclen, currp->d_name);
#include "afsincludes.h"
#include "des/des.h"
#include "rx/rxkad.h"
+#include <netdb.h>
#else /* UKERNEL */
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#if defined(AFS_OSF_ENV)
ts = getservbyname(aname, "");
#else
- ts = getservbyname(aname, NULL);
+ ts = (struct servent *) getservbyname(aname, NULL);
#endif
if (ts) {
/* we found it in /etc/services, so we use this value */
YACC="byacc"
;;
+ i386_dfbsd_*)
+ LEX="flex -l"
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-pthread"
+ PAM_OPTMZ=-O2
+ PAM_CFLAGS="-pipe -fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ SHLIB_LINKER="${MT_CC} -shared"
+ TXLIBS="-lncurses"
+ XCFLAGS="-pipe"
+ YACC="byacc"
+ ;;
+
amd64_fbsd_*)
LEX="flex -l"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
#define SYS_NAME_ID_arm_linux24 3802
#define SYS_NAME_ID_arm_linux26 3803
+#define SYS_NAME_ID_i386_dfbsd_22 3900
+#define SYS_NAME_ID_i386_dfbsd_23 3901
+
/*
* Placeholder to keep system-wide standard flags since this file is included by all
* files (i.e in afs/param.h)
--- /dev/null
+#ifndef AFS_PARAM_H
+#define AFS_PARAM_H
+
+/* Machine / Operating system information */
+#define SYS_NAME "i386_dfbsd_23"
+#define SYS_NAME_ID SYS_NAME_ID_i386_dfbsd_23
+
+#define AFSLITTLE_ENDIAN 1
+#define AFS_HAVE_FFS 1 /* Use system's ffs. */
+#define AFS_HAVE_STATVFS 1 /* System doesn't support statvfs */
+#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
+
+
+#ifndef UKERNEL
+/* This section for kernel libafs compiles only */
+
+#ifndef IGNORE_STDS_H
+#include <sys/param.h>
+#endif
+
+#define AFS_XBSD_ENV 1 /* {Free,Open,Net}BSD */
+#define AFS_X86_XBSD_ENV 1
+
+#define AFS_NAMEI_ENV 1 /* User space interface to file system */
+#define AFS_64BIT_ENV 1
+#define AFS_64BIT_CLIENT 1
+#define AFS_64BIT_IOPS_ENV 1 /* Needed for NAMEI */
+#define AFS_DFBSD_ENV 1
+#define AFS_DFBSD22_ENV 1
+#define AFS_DFBSD23_ENV 1
+#define AFS_X86_DFBSD_ENV 1
+#define AFS_X86_DFBSD22_ENV 1
+#define AFS_X86_DFBSD23_ENV 1
+#define AFS_X86_ENV 1
+#define AFS_NONFSTRANS 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 <afs/afs_sysnames.h>
+
+#define AFS_VFS_ENV 1
+#define AFS_VFSINCL_ENV 1
+#define AFS_GREEDY43_ENV 1
+#define AFS_ENV 1
+
+#define AFS_SYSCALL 339
+#define AFS_MOUNT_AFS "afs"
+
+#ifndef MOUNT_UFS
+#define MOUNT_UFS "ufs"
+#endif
+
+#ifndef MOUNT_AFS
+#define MOUNT_AFS AFS_MOUNT_AFS
+#endif
+
+#define RXK_LISTENER_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 0 /* 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) osi_fbsd_alloc((x), 1)
+#undef AFS_KALLOC_NOSLEEP
+#define AFS_KALLOC_NOSLEEP(x) osi_fbsd_alloc((x), 0)
+#define AFS_KFREE(x,y) osi_fbsd_free((x))
+#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
+
+#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 */
+
+#else /* !defined(UKERNEL) */
+
+/* This section for user space compiles only */
+
+#define UKERNEL 1 /* user space kernel */
+#define AFS_ENV 1
+#define AFS_VFSINCL_ENV 1
+#define AFS_USR_DFBSD22_ENV 1
+#define AFS_USR_DFBSD23_ENV 1
+#define AFS_USR_DFBSD_ENV 1
+#define AFS_NONFSTRANS 1
+
+#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */
+#define AFS_SYSCALL 339
+#define AFS_NAMEI_ENV 1 /* User space interface to file system */
+#define AFS_64BIT_ENV 1
+#define AFS_64BIT_IOPS_ENV 1 /* Needed for NAMEI */
+#define AFS_USERSPACE_IP_ADDR 1
+#define RXK_LISTENER_ENV 1
+#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
+
+#include <afs/afs_sysnames.h>
+
+#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 <sys/param.h>
+#include <sys/types.h>
+#include <sys/mount.h>
+#include <sys/fcntl.h>
+#include <sys/uio.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <limits.h>
+
+#endif /* !defined(UKERNEL) */
+
+/* general user-space compiles */
+
+#if defined(UKERNEL) || !defined(KERNEL)
+#define STDLIB_HAS_MALLOC_PROTOS 1
+#endif
+
+#endif /* AFS_PARAM_H */
--- /dev/null
+# 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
+#
+srcdir=@srcdir@
+include @TOP_OBJDIR@/src/config/Makefile.config
+
+
+# OS specific object files:
+AFS_OS_OBJS = \
+ osi_groups.o \
+ osi_file.o \
+ osi_inode.o \
+ osi_misc.o \
+ osi_sleep.o \
+ osi_vm.o \
+ osi_vnodeops.o \
+ osi_module.o
+
+#AFS_OS_NFSOBJS = \
+# osi_vfsops_nfs.o
+
+AFS_OS_NONFSOBJS = \
+ osi_vfsops.o
+
+
+# System specific build commands and flags
+KSRC = @BSD_KERNEL_PATH@
+KBLD = @BSD_KERNEL_BUILD@
+
+KDEFS=-Wall -nostdinc -I/usr/include -D_KERNEL -DKLD_MODULE \
+ -elf
+
+DBUG = -O2
+DEFINES= -DAFSDEBUG -DKERNEL -DAFS -DVICE -DNFS -DUFS -DINET -DQUOTA -DGETMOUNT
+CFLAGS=-I. -I.. -I${TOP_OBJDIR}/src/config ${FSINCLUDES} $(DEFINES) $(KDEFS) $(KOPTS) ${DBUG}
+
+
+# Name of directory to hold object files and libraries.
+KOBJ = MODLOAD
+
+# This tells Makefile.common to use it's single directory build target.
+COMPDIRS = single_compdir
+INSTDIRS = single_instdir
+DESTDIRS = single_destdir
+
+#include Makefile.common
+all:
+ echo "skipping"
+
+setup:
+ echo "skipping"
+
+# Below this line are targets when in the COMMON directory:
+LIBAFS = libafsnfs.ko
+LIBAFSNONFS = libafs.ko
+
+INST_LIBAFS = ${DESTDIR}${afskerneldir}/${LIBAFS}
+INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/${LIBAFSNONFS}
+
+DEST_LIBAFS = ${DEST}/root.client/bin/${LIBAFS}
+DEST_LIBAFSNONFS = ${DEST}/root.client/bin/${LIBAFSNONFS}
+
+
+# Without this line, gmake tries to build libafs
+.PHONY: libafs
+
+# libafs: $(LIBAFS) $(LIBAFSNONFS)
+libafs: $(LIBAFSNONFS)
+# install_libafs: $(INST_LIBAFS) $(INST_LIBAFSNONFS)
+install_libafs: $(INST_LIBAFSNONFS)
+# dest_libafs: $(DEST_LIBAFS) $(DEST_LIBAFSNONFS)
+dest_libafs: $(DEST_LIBAFSNONFS)
+#libafs:
+# echo WARNING: No kernel module for ${SYS_NAME}
+
+#install_libafs:
+# echo WARNING: No kernel module for ${SYS_NAME}
+
+#dest_libafs:
+# echo WARNING: No kernel module for ${SYS_NAME}
+
+
+$(INST_LIBAFS): $(LIBAFS)
+ $(INSTALL) -f $? $@
+
+$(INST_LIBAFSNONFS): $(LIBAFSNONFS)
+ $(INSTALL) -f $? $@
+
+$(DEST_LIBAFS): $(LIBAFS)
+ $(INSTALL) -f $? $@
+
+$(DEST_LIBAFSNONFS): $(LIBAFSNONFS)
+ $(INSTALL) -f $? $@
+
+${LIBAFS}: $(AFSAOBJS) $(AFSNFSOBJS)
+ echo "Skipping kernel module build"
+
+${LIBAFSNONFS}: $(AFSAOBJS) $(AFSNONFSOBJS)
+ echo "Skipping kernel module build"
--- /dev/null
+# 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
+#
+srcdir=@srcdir@
+include @TOP_OBJDIR@/src/config/Makefile.config
+
+
+# System specific build commands and flags
+CC = @CC@
+DEFINES= -D_REENTRANT -DKERNEL -DUKERNEL
+KOPTS=
+CFLAGS=-I. -I.. -I${TOP_OBJDIR}/src/config ${FSINCLUDES} $(DEFINES) $(KOPTS) ${DBG}
+OPTF=-O
+# WEBOPTS = -I../nsapi -DNETSCAPE_NSAPI -DNET_SSL -DXP_UNIX -DMCC_HTTPD
+
+TEST_CFLAGS=-D_REENTRANT -DAFS_PTHREAD_ENV -DAFS_DFFBSD_ENV
+TEST_LDFLAGS=
+TEST_LIBS=-lpthread
+<all>
+
+LIBUAFS = libuafs.a
+LIBJUAFS = libjuafs.a
+LIBAFSWEB = nsafs.so
+LIBAFSWEBKRB = nsafs.krb.so
+
+include Makefile.common
+
+$(LIBUAFS): $(UAFSOBJ)
+ -$(RM) -f $(LIBUAFS)
+ $(AR) $(ARFLAGS) $(LIBUAFS) $(UAFSOBJ)
+
+$(LIBJUAFS): $(JUAFSOBJ)
+ -$(RM) -f $(LIBJUAFS)
+ $(AR) $(ARFLAGS) $(LIBJUAFS) $(JUAFSOBJ)
+
+$(LIBAFSWEB): $(AFSWEBOBJ) ${DES}/libdes.a
+ -$(RM) -f $(LIBAFSWEB)
+ ld -b $(LIBAFSWEB) $(AFSWEBOBJ) ${DES}/libdes.a $(WEBLIBS)
+
+$(LIBAFSWEBKRB): $(AFSWEBOBJKRB) ${DES}/libdes.a
+ -$(RM) -f $(LIBAFSWEBKRB)
+ ld -b $(LIBAFSWEBKRB) $(AFSWEBOBJKRB) ${DES}/libdes.a $(WEBLIBS)
return 1;
#else
#if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+#if defined(AFS_DFBSD_ENV)
+ struct appx_sbuf {
+ unsigned char *_base;
+ int _size;
+ };
+ struct APPX_FILE
+ {
+ struct __FILE_public pub;
+ struct appx_sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */
+ };
+ struct APPX_FILE *appx_stdin = (struct APPX_FILE *) stdin;
+ if (appx_stdin->_bf._size > 0)
+ return 1;
+#else
if (stdin->_bf._size > 0)
return 1;
+#endif
#else
if (stdin->_cnt > 0)
return 1;
RET(PAM_AUTH_ERR);
}
#else
-#if defined(AFS_LINUX20_ENV) || defined(AFS_FBSD_ENV) || defined(AFS_NBSD_ENV)
+#if defined(AFS_LINUX20_ENV) || defined(AFS_FBSD_ENV) || defined(AFS_DFBSD_ENV) || defined(AFS_NBSD_ENV)
upwd = getpwnam(user);
#elif defined(_POSIX_PTHREAD_SEMANTICS) && defined(AFS_SUN5_ENV)
getpwnam_r(user, &unix_pwd, upwd_buf, sizeof(upwd_buf), &upwd);
RET(PAM_AUTH_ERR);
}
#else
-#if defined(AFS_LINUX20_ENV) || defined(AFS_FBSD_ENV) || defined(AFS_NBSD_ENV)
+#if defined(AFS_LINUX20_ENV) || defined(AFS_FBSD_ENV) || defined(AFS_DFBSD_ENV) || defined(AFS_NBSD_ENV)
upwd = getpwnam(user);
#else
upwd = getpwnam_r(user, &unix_pwd, upwd_buf, sizeof(upwd_buf));
RET(PAM_AUTH_ERR);
}
#else
-#if defined(AFS_LINUX20_ENV) || defined(AFS_FBSD_ENV) || defined(AFS_NBSD_ENV)
+#if defined(AFS_LINUX20_ENV) || defined(AFS_FBSD_ENV) || defined(AFS_DFBSD_ENV) || defined(AFS_NBSD_ENV)
upwd = getpwnam(user);
#else
upwd = getpwnam_r(user, &unix_pwd, upwd_buf, sizeof(upwd_buf));
static const char *new_envstring = "GOTHEREVIATESTPAM=1";
static const char *new_homestring = "HOME=/tmp";
-#if defined(AFS_LINUX20_ENV) || defined(AFS_FBSD_ENV) || defined(AFS_NBSD_ENV)
+#if defined(AFS_LINUX20_ENV) || defined(AFS_FBSD_ENV) || defined(AFS_DFBSD_ENV) || defined(AFS_NBSD_ENV)
#define getpassphrase getpass
#endif
--- /dev/null
+# 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
+
+SHELL=/bin/sh
+
+# We have no platform-specific stuff for this platform (yet).
+all:
+install:
+dest:
+clean:
#define NIFS 512
+#if defined(AFS_USR_DFBSD_ENV)
+#include <net/if.h>
+#include <sys/sockio.h>
+#endif
+
#ifdef KERNEL
/* only used for generating random noise */
/* this function returns the total number of interface addresses
** the buffer has to be passed in by the caller
*/
-#else
+#else /* UKERNEL indirectly, on DARWIN or XBSD */
static int
rx_getAllAddr_internal(afs_uint32 buffer[], int maxSize, int loopbacks)
{
struct ifconf ifc;
struct ifreq ifs[NIFS], *ifr;
struct sockaddr_in *a;
+ /* can't ever be AFS_DARWIN_ENV or AFS_XBSD_ENV, no? */
#if defined(AFS_AIX41_ENV) || defined (AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
char *cp, *cplim, *cpnext; /* used only for AIX 41 */
#endif
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
#else /* AFS_NT40_ENV */
-#if !defined(AFS_DARWIN_ENV) && !defined(AFS_USR_DARWIN_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_USR_FBSD_ENV) && !defined(AFS_LINUX20_ENV)
+#if !defined(AFS_DARWIN_ENV) && !defined(AFS_USR_DARWIN_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_USR_FBSD_ENV) && !defined(AFS_USR_DFBSD_ENV) && !defined(AFS_LINUX20_ENV)
#include <sys/sysmacros.h> /* MIN, MAX on Solaris */
#endif
#include <sys/param.h> /* MIN, MAX elsewhere */
#define UBIK_LEGACY_CALLITER 1
#include "ubik.h"
#include "afs/pthread_glock.h"
+#include <netdb.h>
#else /* defined(UKERNEL) */
#include <afs/stds.h>
#include <afs/pthread_glock.h>
#ifdef UKERNEL
#include "afs/sysincludes.h"
#include "afs/afsutil.h"
+#include <netdb.h>
#else /* UKERNEL */
#include <stdio.h>
#include <sys/types.h>
#ifndef AFS_NT40_ENV
#include <sys/ioctl.h>
#endif
-#if defined(__sun) && defined(__SVR4)
+#if (defined(__sun) && defined(__SVR4)) || defined(AFS_DFBSD_ENV) || defined(AFS_USR_DFBSD_ENV)
# include <sys/ioccom.h>
#endif