Module Name: src
Committed By: haad
Date: Sun Feb 28 14:45:48 UTC 2010
Modified Files:
src/external/cddl/osnet/include: unistd.h
src/external/cddl/osnet/sbin/zfs: Makefile
src/external/cddl/osnet/sbin/zpool: Makefile
src/external/cddl/osnet/sys/kern: ddi.c misc.c taskq.c
src/external/cddl/osnet/sys/machine: endian.h
src/external/cddl/osnet/sys/sys: byteorder.h cpuvar.h elf.h idmap.h
modctl.h mount.h policy.h proc.h types.h uio.h vfs.h vnode.h
zfs_context.h
src/external/cddl/osnet/sys/sys/acl: acl_common.h
Log Message:
Add NetBSD build glue to build new zfs version 22 sources.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/include/unistd.h
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sbin/zfs/Makefile
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sbin/zpool/Makefile
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/kern/ddi.c
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/sys/kern/misc.c \
src/external/cddl/osnet/sys/kern/taskq.c
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/machine/endian.h
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/sys/sys/byteorder.h \
src/external/cddl/osnet/sys/sys/cpuvar.h \
src/external/cddl/osnet/sys/sys/elf.h \
src/external/cddl/osnet/sys/sys/modctl.h \
src/external/cddl/osnet/sys/sys/mount.h \
src/external/cddl/osnet/sys/sys/policy.h \
src/external/cddl/osnet/sys/sys/proc.h \
src/external/cddl/osnet/sys/sys/uio.h \
src/external/cddl/osnet/sys/sys/vfs.h \
src/external/cddl/osnet/sys/sys/vnode.h
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/sys/idmap.h
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sys/sys/types.h \
src/external/cddl/osnet/sys/sys/zfs_context.h
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/sys/acl/acl_common.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/cddl/osnet/include/unistd.h
diff -u src/external/cddl/osnet/include/unistd.h:1.3 src/external/cddl/osnet/include/unistd.h:1.4
--- src/external/cddl/osnet/include/unistd.h:1.3 Sun Feb 21 01:46:34 2010
+++ src/external/cddl/osnet/include/unistd.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: unistd.h,v 1.3 2010/02/21 01:46:34 darran Exp $ */
+/* $NetBSD: unistd.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*
* Copyright (C) 2007 John Birrell <[email protected]>
@@ -38,4 +38,6 @@
#define ftruncate64 ftruncate
#define pread64 pread
+#define _SC_PHYS_PAGES 500
+
#endif
Index: src/external/cddl/osnet/sbin/zfs/Makefile
diff -u src/external/cddl/osnet/sbin/zfs/Makefile:1.2 src/external/cddl/osnet/sbin/zfs/Makefile:1.3
--- src/external/cddl/osnet/sbin/zfs/Makefile:1.2 Wed Oct 21 22:31:19 2009
+++ src/external/cddl/osnet/sbin/zfs/Makefile Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.2 2009/10/21 22:31:19 joerg Exp $
+# $NetBSD: Makefile,v 1.3 2010/02/28 14:45:47 haad Exp $
.include "../../Makefile.zfs"
@@ -18,7 +18,10 @@
LIBZFS_OBJDIR!= cd ${LIBZFS_SRCDIR} && ${PRINTOBJDIR}
LDADD+= -L${LIBZFS_OBJDIR} -lzfs
-LDADD+= -lm -lutil
+LIBUMEM_OBJDIR!= cd ${LIBUMEM_SRCDIR} && ${PRINTOBJDIR}
+LDADD+= -L${LIBUMEM_OBJDIR} -lumem
+
+LDADD+= -lm -lutil -lpthread
.PATH: ${ZFSDIR}/dist/cmd/zfs
Index: src/external/cddl/osnet/sbin/zpool/Makefile
diff -u src/external/cddl/osnet/sbin/zpool/Makefile:1.2 src/external/cddl/osnet/sbin/zpool/Makefile:1.3
--- src/external/cddl/osnet/sbin/zpool/Makefile:1.2 Wed Oct 21 22:32:20 2009
+++ src/external/cddl/osnet/sbin/zpool/Makefile Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.2 2009/10/21 22:32:20 joerg Exp $
+# $NetBSD: Makefile,v 1.3 2010/02/28 14:45:47 haad Exp $
.include "../../Makefile.zfs"
@@ -7,7 +7,7 @@
USETBL= yes
SRCS= zpool_main.c zpool_iter.c zpool_util.c zpool_vdev.c
-DPADD= ${LIBAVL} ${LIBZFS} ${LIBM} ${LIBNVPAIR} ${LIBUUTIL} ${LIBUTIL}
+DPADD= ${LIBAVL} ${LIBZFS} ${LIBM} ${LIBNVPAIR} ${LIBUUTIL} ${LIBUTIL} ${LIBUMEM}
LIBAVL_OBJDIR!= cd ${LIBAVL_SRCDIR} && ${PRINTOBJDIR}
LDADD+= -L${LIBAVL_OBJDIR} -lavl
@@ -21,7 +21,13 @@
LIBZFS_OBJDIR!= cd ${LIBZFS_SRCDIR} && ${PRINTOBJDIR}
LDADD+= -L${LIBZFS_OBJDIR} -lzfs
-LDADD+= -lm -lutil
+LIBUMEM_OBJDIR!= cd ${LIBUMEM_SRCDIR} && ${PRINTOBJDIR}
+LDADD+= -L${LIBUMEM_OBJDIR} -lumem
+
+LIBZPOOL_OBJDIR!= cd ${LIBZPOOL_SRCDIR} && ${PRINTOBJDIR}
+LDADD+= -L${LIBZPOOL_OBJDIR} -lzpool
+
+LDADD+= -lm -lutil -lpthread
.PATH: ${ZFSDIR}/dist/cmd/zpool
Index: src/external/cddl/osnet/sys/kern/ddi.c
diff -u src/external/cddl/osnet/sys/kern/ddi.c:1.2 src/external/cddl/osnet/sys/kern/ddi.c:1.3
--- src/external/cddl/osnet/sys/kern/ddi.c:1.2 Mon Aug 10 22:41:51 2009
+++ src/external/cddl/osnet/sys/kern/ddi.c Sun Feb 28 14:45:47 2010
@@ -34,6 +34,7 @@
#include <sys/ddi.h>
#include <sys/errno.h>
#include <sys/param.h>
+#include <sys/kernel.h>
#include <sys/kmem.h>
#include <sys/cmn_err.h>
#include <sys/namei.h>
@@ -566,3 +567,17 @@
(void)do_sys_unlink(pn, UIO_SYSSPACE);
PNBUF_PUT(pn);
}
+
+clock_t
+ddi_get_lbolt()
+{
+
+ return hardclock_ticks;
+}
+
+int64_t
+ddi_get_lbolt64()
+{
+
+ return hardclock_ticks;
+}
Index: src/external/cddl/osnet/sys/kern/misc.c
diff -u src/external/cddl/osnet/sys/kern/misc.c:1.1 src/external/cddl/osnet/sys/kern/misc.c:1.2
--- src/external/cddl/osnet/sys/kern/misc.c:1.1 Fri Aug 7 20:57:57 2009
+++ src/external/cddl/osnet/sys/kern/misc.c Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: misc.c,v 1.1 2009/08/07 20:57:57 haad Exp $ */
+/* $NetBSD: misc.c,v 1.2 2010/02/28 14:45:47 haad Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -107,6 +107,28 @@
}
void
+thread_join(uint64_t kid)
+{
+
+ return;
+}
+
+int
+newproc(void (*pc)(), caddr_t arg, id_t cid, int pri, struct contract **ct,
+ pid_t pid)
+{
+ int error;
+
+ ASSERT(cid == PRI_NONE);
+
+ error = kthread_create(pri, KTHREAD_MPSAFE, NULL,
+ pc, arg, NULL, "zfs_proc");
+ KASSERT(error == 0);
+
+ return 0;
+}
+
+void
kmem_reap(void)
{
int bufcnt;
Index: src/external/cddl/osnet/sys/kern/taskq.c
diff -u src/external/cddl/osnet/sys/kern/taskq.c:1.1 src/external/cddl/osnet/sys/kern/taskq.c:1.2
--- src/external/cddl/osnet/sys/kern/taskq.c:1.1 Fri Aug 7 20:57:57 2009
+++ src/external/cddl/osnet/sys/kern/taskq.c Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: taskq.c,v 1.1 2009/08/07 20:57:57 haad Exp $ */
+/* $NetBSD: taskq.c,v 1.2 2010/02/28 14:45:47 haad Exp $ */
/*
* CDDL HEADER START
@@ -399,6 +399,8 @@
#define SYSTEM_TASKQ_SIZE 1
int system_taskq_size = SYSTEM_TASKQ_SIZE;
+#define TASKQ_ACTIVE 0x00010000
+
/*
* Dynamic task queue threads that don't get any work within
* taskq_thread_timeout destroy themselves
Index: src/external/cddl/osnet/sys/machine/endian.h
diff -u src/external/cddl/osnet/sys/machine/endian.h:1.2 src/external/cddl/osnet/sys/machine/endian.h:1.3
--- src/external/cddl/osnet/sys/machine/endian.h:1.2 Sun Feb 21 01:46:35 2010
+++ src/external/cddl/osnet/sys/machine/endian.h Sun Feb 28 14:45:47 2010
@@ -1,5 +1,3 @@
-/* $NetBSD: endian.h,v 1.2 2010/02/21 01:46:35 darran Exp $ */
-
/*-
* Copyright (c) 2007 Pawel Jakub Dawidek <[email protected]>
* All rights reserved.
Index: src/external/cddl/osnet/sys/sys/byteorder.h
diff -u src/external/cddl/osnet/sys/sys/byteorder.h:1.3 src/external/cddl/osnet/sys/sys/byteorder.h:1.4
--- src/external/cddl/osnet/sys/sys/byteorder.h:1.3 Sun Feb 21 01:46:35 2010
+++ src/external/cddl/osnet/sys/sys/byteorder.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: byteorder.h,v 1.3 2010/02/21 01:46:35 darran Exp $ */
+/* $NetBSD: byteorder.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*
* CDDL HEADER START
@@ -64,4 +64,27 @@
#define LE_64(x) BMASK_64(x)
#endif
+/*
+ * Macros to convert from a specific byte order to/from native byte order
+ */
+#ifdef _BIG_ENDIAN
+#define BE_8(x) BMASK_8(x)
+#define BE_16(x) BMASK_16(x)
+#define BE_32(x) BMASK_32(x)
+#define BE_64(x) BMASK_64(x)
+#define LE_8(x) BSWAP_8(x)
+#define LE_16(x) BSWAP_16(x)
+#define LE_32(x) BSWAP_32(x)
+#define LE_64(x) BSWAP_64(x)
+#else
+#define LE_8(x) BMASK_8(x)
+#define LE_16(x) BMASK_16(x)
+#define LE_32(x) BMASK_32(x)
+#define LE_64(x) BMASK_64(x)
+#define BE_8(x) BSWAP_8(x)
+#define BE_16(x) BSWAP_16(x)
+#define BE_32(x) BSWAP_32(x)
+#define BE_64(x) BSWAP_64(x)
+#endif
+
#endif /* _OPENSOLARIS_SYS_BYTEORDER_H_ */
Index: src/external/cddl/osnet/sys/sys/cpuvar.h
diff -u src/external/cddl/osnet/sys/sys/cpuvar.h:1.3 src/external/cddl/osnet/sys/sys/cpuvar.h:1.4
--- src/external/cddl/osnet/sys/sys/cpuvar.h:1.3 Sun Feb 21 01:46:35 2010
+++ src/external/cddl/osnet/sys/sys/cpuvar.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpuvar.h,v 1.3 2010/02/21 01:46:35 darran Exp $ */
+/* $NetBSD: cpuvar.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*
* CDDL HEADER START
@@ -19,8 +19,6 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
- *
- * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/cpuvar.h,v 1.5.2.1 2009/08/03 08:13:06 kensmith Exp $
*/
/*
@@ -32,30 +30,8 @@
#define _COMPAT_OPENSOLARIS_SYS_CPUVAR_H
#include <sys/mutex.h>
-#include <sys/cpuvar_defs.h>
#ifdef _KERNEL
-
-struct cyc_cpu;
-
-typedef struct {
- int cpuid;
- struct cyc_cpu *cpu_cyclic;
- uint32_t cpu_flags;
- uint_t cpu_intr_actv;
- uintptr_t cpu_profile_pc;
- uintptr_t cpu_profile_upc;
- uintptr_t cpu_dtrace_caller; /* DTrace: caller, if any */
- hrtime_t cpu_dtrace_chillmark; /* DTrace: chill mark time */
- hrtime_t cpu_dtrace_chilled; /* DTrace: total chill time */
-} solaris_cpu_t;
-
-/* Some code may choose to redefine this if pcpu_t would be more useful. */
-#define cpu_t solaris_cpu_t
-#define cpu_id cpuid
-
-extern solaris_cpu_t solaris_cpu[];
-
#define CPU_CACHE_COHERENCE_SIZE 64
/*
@@ -67,8 +43,7 @@
*/
#define CPUC_SIZE (sizeof (uint16_t) + sizeof (uintptr_t) + \
sizeof (kmutex_t))
-#define CPUC_SIZE1 roundup(CPUC_SIZE, CPU_CACHE_COHERENCE_SIZE)
-#define CPUC_PADSIZE CPUC_SIZE1 - CPUC_SIZE
+#define CPUC_PADSIZE CPU_CACHE_COHERENCE_SIZE - CPUC_SIZE
typedef struct cpu_core {
uint16_t cpuc_dtrace_flags; /* DTrace flags */
@@ -78,50 +53,33 @@
} cpu_core_t;
extern cpu_core_t cpu_core[];
-
-extern kmutex_t cpu_lock;
#endif /* _KERNEL */
/*
- * Flags in the CPU structure.
- *
- * These are protected by cpu_lock (except during creation).
- *
- * Offlined-CPUs have three stages of being offline:
- *
- * CPU_ENABLE indicates that the CPU is participating in I/O interrupts
- * that can be directed at a number of different CPUs. If CPU_ENABLE
- * is off, the CPU will not be given interrupts that can be sent elsewhere,
- * but will still get interrupts from devices associated with that CPU only,
- * and from other CPUs.
- *
- * CPU_OFFLINE indicates that the dispatcher should not allow any threads
- * other than interrupt threads to run on that CPU. A CPU will not have
- * CPU_OFFLINE set if there are any bound threads (besides interrupts).
- *
- * CPU_QUIESCED is set if p_offline was able to completely turn idle the
- * CPU and it will not have to run interrupt threads. In this case it'll
- * stay in the idle loop until CPU_QUIESCED is turned off.
- *
- * CPU_FROZEN is used only by CPR to mark CPUs that have been successfully
- * suspended (in the suspend path), or have yet to be resumed (in the resume
- * case).
- *
- * On some platforms CPUs can be individually powered off.
- * The following flags are set for powered off CPUs: CPU_QUIESCED,
- * CPU_OFFLINE, and CPU_POWEROFF. The following flags are cleared:
- * CPU_RUNNING, CPU_READY, CPU_EXISTS, and CPU_ENABLE.
+ * DTrace flags.
*/
-#define CPU_RUNNING 0x001 /* CPU running */
-#define CPU_READY 0x002 /* CPU ready for cross-calls */
-#define CPU_QUIESCED 0x004 /* CPU will stay in idle */
-#define CPU_EXISTS 0x008 /* CPU is configured */
-#define CPU_ENABLE 0x010 /* CPU enabled for interrupts */
-#define CPU_OFFLINE 0x020 /* CPU offline via p_online */
-#define CPU_POWEROFF 0x040 /* CPU is powered off */
-#define CPU_FROZEN 0x080 /* CPU is frozen via CPR suspend */
-#define CPU_SPARE 0x100 /* CPU offline available for use */
-#define CPU_FAULTED 0x200 /* CPU offline diagnosed faulty */
+#define CPU_DTRACE_NOFAULT 0x0001 /* Don't fault */
+#define CPU_DTRACE_DROP 0x0002 /* Drop this ECB */
+#define CPU_DTRACE_BADADDR 0x0004 /* DTrace fault: bad address */
+#define CPU_DTRACE_BADALIGN 0x0008 /* DTrace fault: bad alignment */
+#define CPU_DTRACE_DIVZERO 0x0010 /* DTrace fault: divide by zero */
+#define CPU_DTRACE_ILLOP 0x0020 /* DTrace fault: illegal operation */
+#define CPU_DTRACE_NOSCRATCH 0x0040 /* DTrace fault: out of scratch */
+#define CPU_DTRACE_KPRIV 0x0080 /* DTrace fault: bad kernel access */
+#define CPU_DTRACE_UPRIV 0x0100 /* DTrace fault: bad user access */
+#define CPU_DTRACE_TUPOFLOW 0x0200 /* DTrace fault: tuple stack overflow */
+#if defined(__sparc)
+#define CPU_DTRACE_FAKERESTORE 0x0400 /* pid provider hint to getreg */
+#endif
+#define CPU_DTRACE_ENTRY 0x0800 /* pid provider hint to ustack() */
+#define CPU_DTRACE_BADSTACK 0x1000 /* DTrace fault: bad stack */
+
+#define CPU_DTRACE_FAULT (CPU_DTRACE_BADADDR | CPU_DTRACE_BADALIGN | \
+ CPU_DTRACE_DIVZERO | CPU_DTRACE_ILLOP | \
+ CPU_DTRACE_NOSCRATCH | CPU_DTRACE_KPRIV | \
+ CPU_DTRACE_UPRIV | CPU_DTRACE_TUPOFLOW | \
+ CPU_DTRACE_BADSTACK)
+#define CPU_DTRACE_ERROR (CPU_DTRACE_FAULT | CPU_DTRACE_DROP)
typedef enum {
CPU_INIT,
Index: src/external/cddl/osnet/sys/sys/elf.h
diff -u src/external/cddl/osnet/sys/sys/elf.h:1.3 src/external/cddl/osnet/sys/sys/elf.h:1.4
--- src/external/cddl/osnet/sys/sys/elf.h:1.3 Sun Feb 21 01:46:35 2010
+++ src/external/cddl/osnet/sys/sys/elf.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: elf.h,v 1.3 2010/02/21 01:46:35 darran Exp $ */
+/* $NetBSD: elf.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*
* CDDL HEADER START
@@ -29,20 +29,32 @@
#ifndef _SYS__ELF_SOLARIS_H_
#define _SYS__ELF_SOLARIS_H_
-#if HAVE_NBTOOL_CONFIG_H
-#include <nbinclude/sys/exec_elf.h>
-#else
-#include <sys/exec_elf.h>
-#endif
+#include_next <sys/elf.h>
-#define SHT_SUNW_dof 0x6ffffff4
-#define EM_AMD64 EM_X86_64
+#define __sElfN(x) typedef __CONCAT(__CONCAT(__CONCAT(Elf,__ELF_WORD_SIZE),_),x) x
-#define __ELF_WORD_SIZE ELFSIZE
-#define __CONCAT(x,y) x ## y
-#define __sElfN(x) typedef __CONCAT(Elf32_,x) x
+__sElfN(Addr);
+__sElfN(Cap);
+__sElfN(Dyn);
+__sElfN(Ehdr);
+__sElfN(Move);
+__sElfN(Off);
+__sElfN(Phdr);
+__sElfN(Rel);
+__sElfN(Rela);
+__sElfN(Shdr);
+__sElfN(Sym);
+__sElfN(Syminfo);
+__sElfN(Verdaux);
+__sElfN(Verdef);
+__sElfN(Vernaux);
+__sElfN(Verneed);
+__sElfN(Versym);
+
+__sElfN(Half);
+__sElfN(Sword);
+__sElfN(Word);
-#if 0 /* XXX not needed? */
#if __ELF_WORD_SIZE == 32
typedef Elf32_Word Xword; /* Xword/Sxword are 32-bits in Elf32 */
typedef Elf32_Sword Sxword;
@@ -102,6 +114,5 @@
#define Elf_ver_line_4 __ElfN(ver_line_4)
#define Elf_ver_line_5 __ElfN(ver_line_5)
#define Elf_ver_need_title __ElfN(ver_need_title)
-#endif
#endif /* !_SYS__ELF_SOLARIS_H_ */
Index: src/external/cddl/osnet/sys/sys/modctl.h
diff -u src/external/cddl/osnet/sys/sys/modctl.h:1.3 src/external/cddl/osnet/sys/sys/modctl.h:1.4
--- src/external/cddl/osnet/sys/sys/modctl.h:1.3 Sun Feb 21 01:46:36 2010
+++ src/external/cddl/osnet/sys/sys/modctl.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: modctl.h,v 1.3 2010/02/21 01:46:36 darran Exp $ */
+/* $NetBSD: modctl.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*
* Copyright (C) 2007 John Birrell <[email protected]>
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/modctl.h,v 1.2.4.1 2009/08/03 08:13:06 kensmith Exp $
+ * $FreeBSD: src/sys/compat/opensolaris/sys/modctl.h,v 1.1 2007/11/28 21:50:40 jb Exp $
*
*/
@@ -34,8 +34,5 @@
#include <sys/param.h>
#include <sys/linker.h>
-#include <sys/module.h>
-
-typedef struct module dtrace_modctl_t;
#endif /* _COMPAT_OPENSOLARIS_SYS_MODCTL_H */
Index: src/external/cddl/osnet/sys/sys/mount.h
diff -u src/external/cddl/osnet/sys/sys/mount.h:1.3 src/external/cddl/osnet/sys/sys/mount.h:1.4
--- src/external/cddl/osnet/sys/sys/mount.h:1.3 Sun Feb 21 01:46:36 2010
+++ src/external/cddl/osnet/sys/sys/mount.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: mount.h,v 1.3 2010/02/21 01:46:36 darran Exp $ */
+/* $NetBSD: mount.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*-
* Copyright (c) 2007 Pawel Jakub Dawidek <[email protected]>
@@ -63,4 +63,6 @@
int
umount2(const char *spec, int mflag);
+#define vfs_fstype mnt_op->vfs_name
+
#endif /* !_OPENSOLARIS_SYS_MOUNT_H_ */
Index: src/external/cddl/osnet/sys/sys/policy.h
diff -u src/external/cddl/osnet/sys/sys/policy.h:1.3 src/external/cddl/osnet/sys/sys/policy.h:1.4
--- src/external/cddl/osnet/sys/sys/policy.h:1.3 Sun Feb 21 01:46:36 2010
+++ src/external/cddl/osnet/sys/sys/policy.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: policy.h,v 1.3 2010/02/21 01:46:36 darran Exp $ */
+/* $NetBSD: policy.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*-
* Copyright (c) 2007 Pawel Jakub Dawidek <[email protected]>
@@ -35,8 +35,6 @@
#ifdef _KERNEL
-#include <sys/vnode.h>
-
struct mount;
struct ucred;
struct vattr;
@@ -45,7 +43,7 @@
int secpolicy_zfs(struct kauth_cred *cred);
int secpolicy_sys_config(struct kauth_cred *cred, int checkonly);
int secpolicy_zinject(struct kauth_cred *cred);
-int secpolicy_fs_mount(struct kauth_cred *cred, struct vnode *mvp, struct mount *vfsp);
+int secpolicy_fs_mount(struct kauth_cred *cred, vnode_t *mvp, struct mount *vfsp);
int secpolicy_fs_unmount(struct kauth_cred *cred, struct mount *vfsp);
int secpolicy_basic_link(struct kauth_cred *cred);
int secpolicy_vnode_stky_modify(struct kauth_cred *cred);
Index: src/external/cddl/osnet/sys/sys/proc.h
diff -u src/external/cddl/osnet/sys/sys/proc.h:1.3 src/external/cddl/osnet/sys/sys/proc.h:1.4
--- src/external/cddl/osnet/sys/sys/proc.h:1.3 Sun Feb 21 01:46:36 2010
+++ src/external/cddl/osnet/sys/sys/proc.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: proc.h,v 1.3 2010/02/21 01:46:36 darran Exp $ */
+/* $NetBSD: proc.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -74,6 +74,8 @@
#define max_ncpus ncpu
#define boot_max_ncpus ncpu
#define curthread curlwp
+#define syscid PRI_NONE
+#define sysccid PRI_NONE
#define TS_RUN 0
@@ -89,9 +91,15 @@
#define ZFS_KSTACK_PAGES 0
#endif
+struct contract {
+};
+
kthread_t *thread_create(void *, size_t, void (*)(), void *, size_t,
proc_t *, int, pri_t);
void thread_exit(void);
+void thread_join(uint64_t);
+
+int newproc(void (*)(), caddr_t, id_t, int, struct contract **, pid_t);
#endif /* _KERNEL */
Index: src/external/cddl/osnet/sys/sys/uio.h
diff -u src/external/cddl/osnet/sys/sys/uio.h:1.3 src/external/cddl/osnet/sys/sys/uio.h:1.4
--- src/external/cddl/osnet/sys/sys/uio.h:1.3 Sun Feb 21 01:46:36 2010
+++ src/external/cddl/osnet/sys/sys/uio.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: uio.h,v 1.3 2010/02/21 01:46:36 darran Exp $ */
+/* $NetBSD: uio.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -61,10 +61,12 @@
#define _OPENSOLARIS_SYS_UIO_H_
#include_next <sys/uio.h>
+#include <sys/sysmacros.h>
#include <sys/debug.h>
#ifndef _KERNEL
#include <assert.h>
+#include <string.h>
#define FOF_OFFSET 1 /* Use the offset in uio argument */
@@ -79,7 +81,21 @@
};
#endif
+struct xuio {
+ struct uio xu_uio;
+ int xuio_rw;
+ void *xuio_priv;
+};
+
+/* XXX HACK ? how xuio can be handled properly */
+#define uio_extflg uio_offset
+#define UIO_XUIO 0x0004 /* Structure is xuio_t */
+
+#define XUIO_XUZC_PRIV(xuio) ((xuio)->xuio_priv);
+#define XUIO_XUZC_RW(xuio) ((xuio)->xuio_rw);
+
typedef struct uio uio_t;
+typedef struct xuio xuio_t;
typedef struct iovec iovec_t;
typedef enum uio_seg uio_seg_t;
@@ -95,6 +111,48 @@
assert(uio->uio_rw == dir);
return (uiomove(cp, (int)n, uio));
}
+
+static __inline int
+zfs_uiocopy(void *cp, size_t n, enum uio_rw dir, uio_t *uio, size_t *cbytes)
+{
+ uio_t uio2;
+ int err;
+
+ memcpy(&uio2, uio, sizeof(*uio));
+ assert(uio->uio_rw == dir);
+ if ((err = uiomove(cp, (int)n, &uio2)) != 0)
+ return err;
+
+ *cbytes = uio->uio_resid - uio2.uio_resid;
+
+ return (0);
+}
+
+static __inline void
+zfs_uioskip(uio_t *uiop, size_t n)
+{
+ if (n > uiop->uio_resid)
+ return;
+ while (n != 0) {
+ register iovec_t *iovp = uiop->uio_iov;
+ register size_t niovb = MIN(iovp->iov_len, n);
+
+ if (niovb == 0) {
+ uiop->uio_iov++;
+ uiop->uio_iovcnt--;
+ continue;
+ }
+ iovp->iov_base += niovb;
+ uiop->uio_offset += niovb;
+ iovp->iov_len -= niovb;
+ uiop->uio_resid -= niovb;
+ n -= niovb;
+ }
+
+}
+
#define uiomove(cp, n, dir, uio) zfs_uiomove((cp), (n), (dir), (uio))
+#define uiocopy(cp, n, dir, uio, cbytes) zfs_uiocopy((cp), (n), (dir), (uio), (cbytes))
+#define uioskip(uio, size) zfs_uioskip((uio), (size))
#endif /* !_OPENSOLARIS_SYS_UIO_H_ */
Index: src/external/cddl/osnet/sys/sys/vfs.h
diff -u src/external/cddl/osnet/sys/sys/vfs.h:1.3 src/external/cddl/osnet/sys/sys/vfs.h:1.4
--- src/external/cddl/osnet/sys/sys/vfs.h:1.3 Sun Feb 21 01:46:36 2010
+++ src/external/cddl/osnet/sys/sys/vfs.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs.h,v 1.3 2010/02/21 01:46:36 darran Exp $ */
+/* $NetBSD: vfs.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*-
* Copyright (c) 2007 Pawel Jakub Dawidek <[email protected]>
@@ -45,7 +45,7 @@
#define vfs_flag mnt_flag
#define vfs_data mnt_data
#define vfs_count mnt_refcnt
-#define vfs_fsid mnt_stat.f_fsid
+#define vfs_fsid mnt_stat.f_fsid
#define vfs_bsize mnt_stat.f_bsize
#define v_flag v_vflag
Index: src/external/cddl/osnet/sys/sys/vnode.h
diff -u src/external/cddl/osnet/sys/sys/vnode.h:1.3 src/external/cddl/osnet/sys/sys/vnode.h:1.4
--- src/external/cddl/osnet/sys/sys/vnode.h:1.3 Sun Feb 21 01:46:36 2010
+++ src/external/cddl/osnet/sys/sys/vnode.h Sun Feb 28 14:45:47 2010
@@ -1,5 +1,5 @@
-/* $NetBSD: vnode.h,v 1.3 2010/02/21 01:46:36 darran Exp $ */
+/* $NetBSD: vnode.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
/*
* CDDL HEADER START
@@ -175,6 +175,7 @@
uint8_t xoa_av_quarantined;
uint8_t xoa_av_modified;
uint8_t xoa_av_scanstamp[AV_SCANSTAMP_SZ];
+ uint8_t xoa_reparse;
} xoptattr_t;
@@ -262,6 +263,8 @@
#define VSA_ACE_ALLTYPES 0x0040
#define VSA_ACE_ACLFLAGS 0x0080 /* get/set ACE ACL flags */
+#define v_lock v_interlock
+
int vn_is_readonly(vnode_t *);
#define vn_vfswlock(vp) (0)
@@ -380,6 +383,7 @@
#define XAT0_AV_QUARANTINED 0x00000400 /* anti-virus quarantine */
#define XAT0_AV_MODIFIED 0x00000800 /* anti-virus modified */
#define XAT0_AV_SCANSTAMP 0x00001000 /* anti-virus scanstamp */
+#define XAT0_REPARSE 0x00002000 /* FS reparse point */
#define XAT0_ALL_ATTRS (XAT0_CREATETIME|XAT0_ARCHIVE|XAT0_SYSTEM| \
XAT0_READONLY|XAT0_HIDDEN|XAT0_NOUNLINK|XAT0_IMMUTABLE|XAT0_APPENDONLY| \
@@ -417,6 +421,7 @@
#define XAT_AV_QUARANTINED ((XAT0_INDEX << XVA_SHFT) | XAT0_AV_QUARANTINED)
#define XAT_AV_MODIFIED ((XAT0_INDEX << XVA_SHFT) | XAT0_AV_MODIFIED)
#define XAT_AV_SCANSTAMP ((XAT0_INDEX << XVA_SHFT) | XAT0_AV_SCANSTAMP)
+#define XAT_REPARSE ((XAT0_INDEX << XVA_SHFT) | XAT0_REPARSE)
/*
* The returned attribute map array (xva_rtnattrmap[]) is located past the
@@ -437,6 +442,14 @@
(xvap)->xva_reqattrmap[XVA_INDEX(attr)] |= XVA_ATTRBIT(attr)
/*
+ * XVA_CLR_REQ() clears an attribute bit in the proper element in the bitmap
+ * of requested attributes (xva_reqattrmap[]).
+ */
+#define XVA_CLR_REQ(xvap, attr) \
+ ASSERT((xvap)->xva_vattr.va_mask | AT_XVATTR); \
+ ASSERT((xvap)->xva_magic == XVA_MAGIC); \
+ (xvap)->xva_reqattrmap[XVA_INDEX(attr)] &= ~XVA_ATTRBIT(attr)
+/*
* XVA_SET_RTN() sets an attribute bit in the proper element in the bitmap
* of returned attributes (xva_rtnattrmap[]).
*/
@@ -640,18 +653,23 @@
return (do_sys_unlink(fnamep, seg));
}
+#define VN_RELE_ASYNC(vp, taskq) vrele_async((vp))
+#define vn_exists(a) do { } while(0)
+#define vn_reinit(a) vclean((a), 0)
+
/*
* Flags for VOP_LOOKUP
*
* Defined in file.h, but also possible, FIGNORECASE
*
*/
-#define LOOKUP_XATTR 0x02 /* lookup up extended attr dir */
+#define LOOKUP_XATTR 0x02 /* lookup up extended attr dir */
/*
* Flags for VOP_READDIR
*/
-#define V_RDDIR_ENTFLAGS 0x01 /* request dirent flags */
+#define V_RDDIR_ENTFLAGS 0x01 /* request dirent flags */
+#define V_RDDIR_ACCFILTER 0x02 /* filter out inaccessible dirents */
/*
* Extensible vnode attribute (xva) routines:
Index: src/external/cddl/osnet/sys/sys/idmap.h
diff -u src/external/cddl/osnet/sys/sys/idmap.h:1.2 src/external/cddl/osnet/sys/sys/idmap.h:1.3
--- src/external/cddl/osnet/sys/sys/idmap.h:1.2 Sun Feb 21 01:46:36 2010
+++ src/external/cddl/osnet/sys/sys/idmap.h Sun Feb 28 14:45:47 2010
@@ -1,5 +1,3 @@
-/* $NetBSD: idmap.h,v 1.2 2010/02/21 01:46:36 darran Exp $ */
-
/*
* CDDL HEADER START
*
Index: src/external/cddl/osnet/sys/sys/types.h
diff -u src/external/cddl/osnet/sys/sys/types.h:1.5 src/external/cddl/osnet/sys/sys/types.h:1.6
--- src/external/cddl/osnet/sys/sys/types.h:1.5 Thu Feb 25 00:18:44 2010
+++ src/external/cddl/osnet/sys/sys/types.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: types.h,v 1.5 2010/02/25 00:18:44 darran Exp $ */
+/* $NetBSD: types.h,v 1.6 2010/02/28 14:45:47 haad Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -125,7 +125,6 @@
typedef off_t offset_t;
typedef long ptrdiff_t; /* pointer difference */
typedef int64_t rlim64_t;
-typedef __caddr_t caddr_t; /* core address */
#else
Index: src/external/cddl/osnet/sys/sys/zfs_context.h
diff -u src/external/cddl/osnet/sys/sys/zfs_context.h:1.5 src/external/cddl/osnet/sys/sys/zfs_context.h:1.6
--- src/external/cddl/osnet/sys/sys/zfs_context.h:1.5 Mon Oct 12 10:05:29 2009
+++ src/external/cddl/osnet/sys/sys/zfs_context.h Sun Feb 28 14:45:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: zfs_context.h,v 1.5 2009/10/12 10:05:29 haad Exp $ */
+/* $NetBSD: zfs_context.h,v 1.6 2010/02/28 14:45:47 haad Exp $ */
/*
* CDDL HEADER START
@@ -42,7 +42,7 @@
#include <sys/mutex.h>
#include <sys/rwlock.h>
#include <sys/condvar.h>
-
+
#define _SYS_SYSTM_H
#define _SYS_DEBUG_H
#define _SYS_T_LOCK_H
@@ -81,6 +81,7 @@
#include <sys/u8_textprep.h>
#include <sys/zone.h>
#include <sys/pathname.h>
+#include <sys/sysevent.h>
extern void panic(const char *, ...);
@@ -94,6 +95,8 @@
#define ABS(a) ((a) < 0 ? -(a) : (a))
#endif
+extern int aok;
+
/*
* Debugging
*/
@@ -203,9 +206,20 @@
#define thread_create(stk, stksize, func, arg, len, pp, state, pri) \
zk_thread_create(func, arg)
#define thread_exit() thr_exit(NULL)
+#define thread_join(t) panic("libzpool cannot join threads")
+#define newproc(f, a, cid, pri, ctp, pid) (ENOSYS)
+
extern kthread_t *zk_thread_create(void (*func)(), void *arg);
+/* In NetBSD struct proc is visible in userspace therefore we use it's original
+ definition. */
+/* struct proc {
+ uintptr_t this_is_never_used_dont_dereference_it;
+ }; */
+
+extern struct proc p0;
+
#define issig(why) (FALSE)
#define ISSIG(thr, why) (FALSE)
#define makedevice(min, maj) makedev((min), (maj))
@@ -293,24 +307,31 @@
typedef uintptr_t taskqid_t;
typedef void (task_func_t)(void *);
-#define TASKQ_PREPOPULATE 0x0001
-#define TASKQ_CPR_SAFE 0x0002 /* Use CPR safe protocol */
-#define TASKQ_DYNAMIC 0x0004 /* Use dynamic thread scheduling */
-
-#define TQ_SLEEP KM_SLEEP /* Can block for memory */
-#define TQ_NOSLEEP KM_NOSLEEP /* cannot block for memory; may fail */
-#define TQ_NOQUEUE 0x02 /* Do not enqueue if can't dispatch */
+#define TASKQ_PREPOPULATE 0x0001
+#define TASKQ_CPR_SAFE 0x0002 /* Use CPR safe protocol */
+#define TASKQ_DYNAMIC 0x0004 /* Use dynamic thread scheduling */
+#define TASKQ_THREADS_CPU_PCT 0x0008 /* Scale # threads by # cpus */
+#define TASKQ_DC_BATCH 0x0010 /* Mark threads as batch */
+
+#define TQ_SLEEP KM_SLEEP /* Can block for memory */
+#define TQ_NOSLEEP KM_NOSLEEP /* cannot block for memory; may fail */
+#define TQ_NOQUEUE 0x02 /* Do not enqueue if can't dispatch */
+#define TQ_FRONT 0x08 /* Queue in front */
extern taskq_t *system_taskq;
-extern taskq_t *taskq_create(const char *, int, pri_t, int, int, uint_t);
+extern taskq_t *taskq_create(const char *, int, pri_t, int, int, uint_t);
+#define taskq_create_proc(a, b, c, d, e, p, f) \
+ (taskq_create(a, b, c, d, e, f))
+#define taskq_create_sysdc(a, b, d, e, p, dc, f) \
+ (taskq_create(a, b, maxclsyspri, d, e, f))
extern taskqid_t taskq_dispatch(taskq_t *, task_func_t, void *, uint_t);
-extern void taskq_destroy(taskq_t *);
-extern void taskq_wait(taskq_t *);
-extern int taskq_member(taskq_t *, void *);
-
-extern void system_taskq_init(void);
-
+extern void taskq_destroy(taskq_t *);
+extern void taskq_wait(taskq_t *);
+extern int taskq_member(taskq_t *, void *);
+extern void system_taskq_init(void);
+extern void system_taskq_fini(void);
+
#define XVA_MAPSIZE 3
#define XVA_MAGIC 0x78766174
@@ -378,10 +399,15 @@
#define lbolt (gethrtime() >> 23)
#define lbolt64 (gethrtime() >> 23)
#define hz 119 /* frequency when using gethrtime() >> 23 for lbolt */
-
+
extern void delay(clock_t ticks);
#define gethrestime_sec() time(NULL)
+#define gethrestime(t) \
+ do {\
+ (t)->tv_sec = gethrestime_sec();\
+ (t)->tv_nsec = 0;\
+ } while (0);
#define max_ncpus 64
@@ -439,6 +465,8 @@
extern char hw_serial[];
extern int ddi_strtoul(const char *str, char **nptr, int base,
unsigned long *result);
+#define ddi_get_lbolt() (gethrtime() >> 23)
+#define ddi_get_lbolt64() (gethrtime() >> 23)
/* ZFS Boot Related stuff. */
@@ -538,7 +566,19 @@
#define di_devlink_init(a, b) (NULL)
#define di_devlink_fini(a) (0)
typedef void *di_devlink_handle_t;
-
+
+extern char *kmem_asprintf(const char *fmt, ...);
+#define strfree(str) kmem_free((str), strlen(str)+1)
+
+//#define print_timestamp(a) 0
+
+extern void print_timestamp(int);
+
+#define DEV_PHYS_PATH "phys_path"
+
+#define DDI_SLEEP KM_SLEEP
+#define ddi_log_sysevent(_a, _b, _c, _d, _e, _f, _g) 0
+
#else /* _KERNEL */
#include <sys/systm.h>
@@ -549,6 +589,7 @@
#include <sys/stdint.h>
#include <sys/note.h>
#include <sys/kernel.h>
+#include <sys/kstat.h>
#include <sys/debug.h>
#include <sys/proc.h>
#include <sys/sysmacros.h>
@@ -590,6 +631,9 @@
#define lbolt hardclock_ticks
#define lbolt64 lbolt
+clock_t ddi_get_lbolt(void);
+int64_t ddi_get_lbolt64(void);
+
#ifdef __cplusplus
}
#endif
@@ -626,10 +670,29 @@
#define tsd_get(x) lwp_getspecific(x)
#define tsd_set(x, y) (lwp_setspecific(x, y), 0)
#define kmem_debugging() 0
+
+#define zone_get_hostid(a) 0
+
+extern char *kmem_asprintf(const char *fmt, ...);
+#define strfree(str) kmem_free((str), strlen(str)+1)
+
+/* NetBSD doesn't need this routines in zfs code, yet */
+#define taskq_create_proc(a, b, c, d, e, p, f) \
+ (taskq_create(a, b, c, d, e, f))
+#define taskq_create_sysdc(a, b, d, e, p, dc, f) \
+ (taskq_create(a, b, maxclsyspri, d, e, f))
+
#define MAXUID UID_MAX
#define FIGNORECASE 0
#define CREATE_XATTR_DIR 0
+#define DEV_PHYS_PATH "phys_path"
+
+#define DDI_SLEEP KM_SLEEP
+#define ddi_log_sysevent(_a, _b, _c, _d, _e, _f, _g) 0
+
+#define sys_shutdown 0
+
#endif /* _KERNEL */
#endif /* _SYS_ZFS_CONTEXT_H */
Index: src/external/cddl/osnet/sys/sys/acl/acl_common.h
diff -u src/external/cddl/osnet/sys/sys/acl/acl_common.h:1.2 src/external/cddl/osnet/sys/sys/acl/acl_common.h:1.3
--- src/external/cddl/osnet/sys/sys/acl/acl_common.h:1.2 Sun Feb 21 01:46:36 2010
+++ src/external/cddl/osnet/sys/sys/acl/acl_common.h Sun Feb 28 14:45:47 2010
@@ -1,5 +1,3 @@
-/* $NetBSD: acl_common.h,v 1.2 2010/02/21 01:46:36 darran Exp $ */
-
/*
* CDDL HEADER START
*