freebsd-skq/sys/sys
Pawel Jakub Dawidek 1ba4a712dd Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.
This bring huge amount of changes, I'll enumerate only user-visible changes:

- Delegated Administration

	Allows regular users to perform ZFS operations, like file system
	creation, snapshot creation, etc.

- L2ARC

	Level 2 cache for ZFS - allows to use additional disks for cache.
	Huge performance improvements mostly for random read of mostly
	static content.

- slog

	Allow to use additional disks for ZFS Intent Log to speed up
	operations like fsync(2).

- vfs.zfs.super_owner

	Allows regular users to perform privileged operations on files stored
	on ZFS file systems owned by him. Very careful with this one.

- chflags(2)

	Not all the flags are supported. This still needs work.

- ZFSBoot

	Support to boot off of ZFS pool. Not finished, AFAIK.

	Submitted by:	dfr

- Snapshot properties

- New failure modes

	Before if write requested failed, system paniced. Now one
	can select from one of three failure modes:
	- panic - panic on write error
	- wait - wait for disk to reappear
	- continue - serve read requests if possible, block write requests

- Refquota, refreservation properties

	Just quota and reservation properties, but don't count space consumed
	by children file systems, clones and snapshots.

- Sparse volumes

	ZVOLs that don't reserve space in the pool.

- External attributes

	Compatible with extattr(2).

- NFSv4-ACLs

	Not sure about the status, might not be complete yet.

	Submitted by:	trasz

- Creation-time properties

- Regression tests for zpool(8) command.

Obtained from:	OpenSolaris
2008-11-17 20:49:29 +00:00
..
_bus_dma.h Break out typedefs from bus_dma.h to _bus_dma.h so that we can get the 2006-09-03 00:26:17 +00:00
_iovec.h
_lock.h - Embed the recursion counter for any locking primitive directly in the 2008-05-15 20:10:06 +00:00
_lockmgr.h - Embed the recursion counter for any locking primitive directly in the 2008-05-15 20:10:06 +00:00
_mutex.h - Embed the recursion counter for any locking primitive directly in the 2008-05-15 20:10:06 +00:00
_null.h
_pthreadtypes.h According to: 2005-05-31 15:18:17 +00:00
_rmlock.h Initial checkin for rmlock (read mostly lock) a multi reader single writer 2007-11-08 14:47:55 +00:00
_rwlock.h - Embed the recursion counter for any locking primitive directly in the 2008-05-15 20:10:06 +00:00
_semaphore.h Const-qualify ksem_timedwait's parameter abstime as it's only passed in. 2005-10-18 11:46:24 +00:00
_sigset.h
_stack.h Optimize lockmgr in order to get rid of the pool mutex interlock, of the 2008-04-06 20:08:51 +00:00
_sx.h - Embed the recursion counter for any locking primitive directly in the 2008-05-15 20:10:06 +00:00
_task.h revert changes accidentally included in last commit 2008-07-18 06:22:57 +00:00
_timespec.h
_timeval.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
_types.h Introduce accmode_t. This is required for NFSv4 ACLs - it will be neccessary 2008-10-28 13:44:11 +00:00
aac_ioctl.h Implement FSACTL_LNX_GET_FEATURES and FSACTL_GET_FEATURES ioctls. RAID 2008-03-28 19:07:25 +00:00
acct.h Increase precision of time values in the process accounting 2007-05-22 06:51:38 +00:00
acl.h Minor white space tweaks in comments. 2007-03-16 13:39:04 +00:00
agpio.h
aio.h Add aio_fsync() prototype. 2006-03-23 08:47:28 +00:00
alq.h Modify the alq(9) alq_open() API to accept a file creation mode, rather 2005-04-16 12:12:27 +00:00
apm.h Define APM_ENT_NAMELEN and APM_ENT_TYPELEN for general use. 2008-06-12 04:37:37 +00:00
assym.h
ata.h Add experimental support for SATA Port Multipliers 2008-04-10 13:05:05 +00:00
bio.h Add a new I/O request - BIO_FLUSH, which basically tells providers below to 2006-10-31 21:11:21 +00:00
bitstring.h
blist.h add malloc flag to blist so that it can be used in ithread context 2008-05-05 19:48:54 +00:00
buf.h b_waiters cannot be adequately protected by the interlock because it is 2008-03-28 12:30:12 +00:00
bufobj.h Remove the struct thread unuseful argument from bufobj interface. 2008-10-10 21:23:50 +00:00
bus_dma.h BUS_DMA_ISA is left over from Alpha, and is not used in the tree at 2008-03-15 06:44:45 +00:00
bus.h Split out the probing magic of device_probe_and_attach into 2008-06-20 16:58:15 +00:00
callout.h add callout_schedule; besides being useful it also improves 2008-08-02 17:42:38 +00:00
cdefs.h Remove __CC_INT_IS_32BIT define which was used to fix mpt driver 2008-10-21 16:46:50 +00:00
cdio.h
cdrio.h
cfictl.h Fix copyright notice. 2008-11-06 17:00:19 +00:00
chio.h
clist.h Now that the number of clist consumers have dropped massively, trim down 2008-09-21 18:12:18 +00:00
clock.h Now that all platforms use genclock, shuffle things around slightly 2008-04-22 19:38:30 +00:00
condvar.h - Pass the priority argument from *sleep() into sleepq and down into 2008-03-12 06:31:06 +00:00
conf.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
cons.h Remove unused consdev structure fields. 2008-10-27 11:45:31 +00:00
consio.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
copyright.h Minor style nits. 2008-08-23 01:20:36 +00:00
cpu.h Add an interface for drivers to be notified of changes to CPU frequency. 2007-03-26 18:03:29 +00:00
cpuctl.h - Add cpuctl(4) pseudo-device driver to provide access to some low-level 2008-08-08 16:26:53 +00:00
cpuset.h - Add the interrupt vector number to intr_event_create so MI code can 2008-04-11 03:26:41 +00:00
ctype.h
dataacq.h
device_port.h
devicestat.h
digiio.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
dir.h
dirent.h o Re-word a comment. 2006-08-16 09:34:56 +00:00
disk.h - Add a new ioctl for getting the provider name of a geom provider. 2008-09-07 13:54:57 +00:00
disklabel.h Add missing comma. 2008-03-12 18:25:47 +00:00
diskmbr.h
diskpc98.h Change DOSPTYP_386BSD to 0xc494. 2005-05-08 11:30:26 +00:00
dkstat.h
domain.h Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
dtrace_bsd.h Add the DTrace shim layer definitions. 2008-05-17 02:16:58 +00:00
dvdio.h
elf32.h Convert types 'Elf{32,64}_Nhdr' into aliases of the generic 'Elf_Note' 2006-10-17 05:43:30 +00:00
elf64.h Convert types 'Elf{32,64}_Nhdr' into aliases of the generic 'Elf_Note' 2006-10-17 05:43:30 +00:00
elf_common.h Add ELF relocation types for mips. 2008-08-02 01:20:10 +00:00
elf_generic.h Implement ELF symbol versioning using GNU semantics. This code aims 2005-12-18 19:43:33 +00:00
elf.h Remove _SOLARIS_C_SOURCE compatibility definitions. Unfortunately the 2007-11-28 21:54:46 +00:00
endian.h
errno.h
eui64.h
event.h The kqueue_register() function assumes that it is called from the top of 2008-07-07 09:30:11 +00:00
eventhandler.h Add an event handler to the vlan driver so the NIC driver 2008-07-14 18:38:52 +00:00
eventvar.h
exec.h
extattr.h Introduce accmode_t. This is required for NFSv4 ACLs - it will be neccessary 2008-10-28 13:44:11 +00:00
fbio.h Grab FBTYPE_NOTSUN3 and use it for FBTYPE_PCIMISC. The value matches 2005-05-21 20:40:51 +00:00
fcntl.h Re-implement the client side of rpc.lockd in the kernel. This implementation 2008-06-26 10:21:54 +00:00
fdcio.h
file.h Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
filedesc.h Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
filio.h Implement SEEK_DATA and SEEK_HOLE extensions to lseek(2) as found in 2007-04-05 21:10:53 +00:00
firmware.h Cleanup and document the implementation of firmware(9) based on 2007-02-15 17:21:31 +00:00
fnv_hash.h
gmon.h Move the PC_TO_I() and KCOUNT() macros so they aren't GUPROF specific 2006-03-29 18:17:03 +00:00
gpt.h Add a couple more Apple GPT entries and NetBSD GPT entries. 2008-09-05 17:45:24 +00:00
hash.h Fix a compiler warning so hash.h can be included in the kernel. This changes 2007-04-09 22:55:14 +00:00
iconv.h Fix panic when loading libiconv.ko on sparc64. 2005-09-05 17:03:40 +00:00
imgact_aout.h Capitalize at the start of sentence. 2005-05-08 02:20:10 +00:00
imgact_elf.h Remove kern.elf32.can_exec_dyn sysctl. Instead extend Brandinfo structure 2005-12-26 21:23:57 +00:00
imgact.h Pair the VOP_OPEN call from do_execve() with the reciprocal VOP_CLOSE. 2008-07-17 16:44:07 +00:00
inflate.h
interrupt.h Expose a new public routine intr_event_execute_handlers() which executes 2008-09-15 22:19:44 +00:00
ioccom.h Protect _IOC's 'len' and 'inout' parameters so that _IOC can be used in 2008-08-28 18:29:59 +00:00
ioctl_compat.h Remove OTTYDISC, NETLDISC and NTTYDISC definitions. 2008-07-16 11:20:04 +00:00
ioctl.h Turn sgtty into a binary-only compatibility interface. 2008-06-14 10:42:18 +00:00
ipc.h Make sure we restrict Linux only IPC calls from being executed 2008-02-12 20:55:03 +00:00
ipmi.h Update the ipmi(4) driver: 2006-09-22 22:11:29 +00:00
jail.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
joystick.h
kbio.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
kdb.h DTrace can enter the debugger from a probe. Add a WHY definition for this. 2008-05-23 04:00:44 +00:00
kenv.h
kernel.h Remove the now unused `lbolt' variable from the kernel. 2008-08-20 12:20:22 +00:00
kerneldump.h Collect N identical (or near identical) mkdumpheader() implementations into 2008-10-01 22:08:53 +00:00
kobj.h Fix typo in a comment: DEFINE_CLASSx => DEFINE_CLASS_x. 2006-08-24 21:09:39 +00:00
ksem.h Rework the lifetime management of the kernel implementation of POSIX 2008-06-27 05:39:04 +00:00
kthread.h kthread_exit needs no stinkin argument. 2007-10-26 17:03:22 +00:00
ktr.h Axe KTR_ALQ_MASK now that KTR_WITNESS is off unless you hack an #ifdef 2006-01-25 14:57:23 +00:00
ktrace.h This patch adds a new ktrace(2) record type, KTR_STRUCT, whose payload 2008-02-23 01:01:49 +00:00
libkern.h The kernel implemented 'memcmp' is an alias for 'bcmp'. However, memcmp 2008-09-23 14:45:10 +00:00
limits.h Define MQ_PRIO_MAX, it seems it is the only place 2005-12-02 07:45:28 +00:00
link_aout.h
link_elf.h Revert r180431. 2008-07-11 01:10:40 +00:00
linker_set.h
linker.h Add hooks for the Compact C Type Format (CTF) data to be attached to 2008-05-23 00:49:39 +00:00
lock_profile.h Fix tinderbox on sun4v 2007-12-16 06:07:34 +00:00
lock.h Teach WITNESS about the interlocks used with lockmgr. This removes a bunch 2008-09-10 19:13:30 +00:00
lockf.h Re-implement the client side of rpc.lockd in the kernel. This implementation 2008-06-26 10:21:54 +00:00
lockmgr.h - Embed the recursion counter for any locking primitive directly in the 2008-05-15 20:10:06 +00:00
mac.h Update comments in mac.h. 2007-02-06 16:24:57 +00:00
malloc.h Revert the removal of the MALLOC and FREE macros from the net80211 code. 2008-10-23 19:57:13 +00:00
mbpool.h
mbuf.h Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
mchain.h Remove macros 2005-09-19 08:07:18 +00:00
md4.h
md5.h Add definitions for MD5_BLOCK_LENGTH, MD5_DIGEST_LENGTH and 2006-03-15 19:47:12 +00:00
mdioctl.h Rename GEOM class kernel module g_md.ko to geom_md.ko for consistency 2005-11-11 11:31:23 +00:00
memrange.h
mman.h Add support to mincore for detecting whether a page is part of a 2008-03-28 04:29:27 +00:00
module.h In keeping with style(9)'s recommendations on macros, use a ';' 2008-03-16 10:58:09 +00:00
mount.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
mouse.h Spell "Kensington Thinking Mouse" correctly. 2006-12-18 18:48:28 +00:00
mpt_ioctl.h Add a new personality to mpt(4) devices to allow userland applications to 2008-05-06 20:49:53 +00:00
mqueue.h Last step to make mq_notify conform to POSIX standard, If the process 2005-11-30 05:12:03 +00:00
msg.h
msgbuf.h up the default msgbuf limit to 64k.. a verbose boot on i386 on modern 2006-09-03 00:33:19 +00:00
mtio.h
mutex.h - Embed the recursion counter for any locking primitive directly in the 2008-05-15 20:10:06 +00:00
namei.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
nlist_aout.h
osd.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
param.h Bump __FreeBSD_version in order to reflect vfs_busy() prototype changing 2008-11-02 10:20:18 +00:00
pciio.h Add ABI backwards compatibility to the FreeBSD 4/5/6 versions of 2007-10-24 20:51:44 +00:00
pcpu.h Export 'struct pcpu' to userland w/o requiring _KERNEL. A few ports 2008-08-19 19:53:52 +00:00
pioctl.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
pipe.h Another problem caused by the knlist_cleardel() potentially dropping 2008-05-23 11:14:03 +00:00
pmc.h - Separate PMC class dependent code from other kinds of machine 2008-11-09 17:37:54 +00:00
pmckern.h Support sparsely numbered CPUs. 2008-09-22 10:37:02 +00:00
pmclog.h Kernel and hwpmc(4) support for callchain capture. 2007-12-07 08:20:17 +00:00
poll.h
posix4.h Update #includes list. 2006-11-11 16:19:12 +00:00
power.h
priority.h Replace (name) with Henric Vestergaard Draboel since it was clear that 2007-01-08 21:21:45 +00:00
priv.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
proc.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
procfs.h Widen psaddr_t from uintptr_t to uint64_t. This results in an 2008-09-14 16:52:42 +00:00
protosw.h Remove __Break_the_struct_layout_for_now field from struct pr_usrreqs, 2008-10-02 18:12:42 +00:00
ptio.h
ptrace.h Add members pl_sigmask and pl_siglist into ptrace_lwpinfo to get lwp's 2006-02-06 09:41:56 +00:00
queue.h Introduce REMOVE_NEXT() macro's for SLIST and STAILQ. 2008-05-22 14:40:03 +00:00
random.h
reboot.h
refcount.h Remove debugging cruft. 2008-07-23 16:44:20 +00:00
regression.h
resource.h Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
resourcevar.h Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
rman.h Add a convenience function rman_init_from_resource for initializing 2006-06-12 04:06:21 +00:00
rmlock.h Add rm_wowned(9) function to test whether the current thread owns an 2007-11-10 15:06:30 +00:00
rtprio.h Replace (name) with Henric Vestergaard Draboel since it was clear that 2007-01-08 21:21:45 +00:00
runq.h - Restore runq to manipulating threads directly by putting runq links and 2008-03-20 05:51:16 +00:00
rwlock.h - Embed the recursion counter for any locking primitive directly in the 2008-05-15 20:10:06 +00:00
sbuf.h Add sbuf_new_auto as a shortcut for the very common case of creating a 2008-08-09 11:14:05 +00:00
sched.h - Make SCHED_STATS more generic by adding a wrapper to create the 2008-04-17 04:20:10 +00:00
sdt.h Add the statically defined tracing header. 2008-05-17 02:14:19 +00:00
select.h Fix FD_ISSET() on LP64 platforms. The FD_ISSET() function/macro is 2006-01-06 22:12:46 +00:00
selinfo.h Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
sem.h Remove extra forward declare of 'struct sem'. 2006-11-07 18:56:48 +00:00
sema.h
semaphore.h Change SEM_VALUE_MAX (maximum value of a POSIX semaphore) from UINT_MAX 2008-06-26 13:51:25 +00:00
serial.h o Don't make the SER_INT_* defines visible to userland. They 2006-03-30 17:24:42 +00:00
sf_buf.h
shm.h Make sure we restrict Linux only IPC calls from being executed 2008-02-12 20:55:03 +00:00
sigio.h
signal.h Correct the visibility macro surrounding SIGSYS. 2008-01-19 21:41:31 +00:00
signalvar.h Fix for the panic("vm_thread_new: kstack allocation failed") and 2007-11-05 11:36:16 +00:00
sleepqueue.h Document the new return values for sleepq_abort(), sleepq_broadcast(), and 2008-08-07 20:47:01 +00:00
smp.h Allow a rendezvous with just a specified CPU too. 2008-05-23 04:05:26 +00:00
snoop.h Slightly change the API for the SNPSTTY ioctl so that the userland now 2005-09-18 19:23:35 +00:00
sockbuf.h move sockbuf locking macros in to sockbuf.h 2008-07-31 20:27:50 +00:00
socket.h Add prototype defination for setfib(2) to sys/socket.h. 2008-08-08 22:40:04 +00:00
socketvar.h move sockbuf locking macros in to sockbuf.h 2008-07-31 20:27:50 +00:00
sockio.h Trim some noise from some #ifdef's. This had leaked into the compat32 2008-07-30 21:01:51 +00:00
sockopt.h Factor sockbuf, sockopt, and sockstate out of socketvar.h in to separate headers. 2008-07-29 07:45:05 +00:00
sockstate.h Factor sockbuf, sockopt, and sockstate out of socketvar.h in to separate headers. 2008-07-29 07:45:05 +00:00
soundcard.h MFP4 (109713): 2006-11-26 11:55:48 +00:00
stack.h Optimize lockmgr in order to get rid of the pool mutex interlock, of the 2008-04-06 20:08:51 +00:00
stat.h Add the libc glue and headers definitions for the *at() syscalls. 2008-03-31 12:14:04 +00:00
statvfs.h
stddef.h
stdint.h
sun_disklabel.h
sx.h Fix compilation of arm's AVILA. 2008-08-13 09:20:52 +00:00
syscall.h Regenerate system call tables for r184789. 2008-11-09 10:48:06 +00:00
syscall.mk Regenerate system call tables for r184789. 2008-11-09 10:48:06 +00:00
syscallsubr.h Several cleanups related to pipe(2). 2008-11-11 14:55:59 +00:00
sysctl.h Step 1.5 of importing the network stack virtualization infrastructure 2008-10-02 15:37:58 +00:00
sysent.h Merge latest DTrace changes from Perforce. 2008-11-05 19:39:11 +00:00
syslimits.h Use the same ARG_MAX for arm than for the other platforms. I don't see any 2007-05-29 15:14:46 +00:00
syslog.h
sysproto.h Regenerate system call tables for r184789. 2008-11-09 10:48:06 +00:00
systm.h Add cr_canseeinpcb() doing checks using the cached socket 2008-10-17 16:26:16 +00:00
taskqueue.h revert changes accidentally included in last commit 2008-07-18 06:22:57 +00:00
termios.h Small style(9) nit in <sys/termios.h>. 2008-09-06 15:41:58 +00:00
thr.h Add thr_kill2 syscall which sends a signal to a thread in another process. 2007-08-16 05:26:42 +00:00
tiio.h
time.h Remove some DTrace hook definitions that are now in dtrace_bsd.h 2008-05-18 22:11:47 +00:00
timeb.h
timepps.h
timers.h s/timer_t/int/g 2006-03-01 06:48:31 +00:00
times.h
timespec.h Implement POSIX timers. Current only CLOCK_REALTIME and CLOCK_MONOTONIC 2005-10-23 04:22:56 +00:00
timetc.h
timex.h
tree.h Implement RB_PREV() AND RB_FOREACH_REVERSE(). 2007-12-28 07:03:26 +00:00
tty.h Reimplement the /dev/console device node. 2008-11-01 08:35:28 +00:00
ttycom.h Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
ttydefaults.h Reduce the default baud rate of PTY's to 9600. 2008-11-08 20:40:39 +00:00
ttydevsw.h Introduce a hooks layer for the MPSAFE TTY layer. 2008-09-22 19:25:14 +00:00
ttydisc.h Introduce a hooks layer for the MPSAFE TTY layer. 2008-09-22 19:25:14 +00:00
ttyhook.h Introduce a hooks layer for the MPSAFE TTY layer. 2008-09-22 19:25:14 +00:00
ttyqueue.h Fix style(9) issue in TTY header files: document function argument names. 2008-09-22 18:44:09 +00:00
turnstile.h Commit 3/14 of sched_lock decomposition. 2007-06-04 23:51:44 +00:00
types.h Introduce accmode_t. This is required for NFSv4 ACLs - it will be neccessary 2008-10-28 13:44:11 +00:00
ucontext.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
ucred.h Add padding for anticipated functionality 2007-12-07 01:46:13 +00:00
uio.h Document struct uio.h entries. 2006-11-29 19:08:45 +00:00
umtx.h Add two commands to _umtx_op system call to allow a simple mutex to be 2008-06-24 07:32:12 +00:00
un.h Now that portalfs doesn't directly invoke uipc_connect2(), make it a 2008-10-06 18:43:11 +00:00
unistd.h Hide SEEK_DATA and SEEK_HOLE under __BSD_VISIBLE. 2007-04-07 18:31:40 +00:00
unpcb.h Remove explicit locking of struct file. 2007-12-30 01:42:15 +00:00
user.h Add three extra to the kinfo_proc_vmmap data. kve_offset - the offset 2008-10-31 05:43:19 +00:00
utsname.h
uuid.h Add parse_uuid() that creates a binary representation of an UUID from 2005-10-07 13:37:10 +00:00
vimage.h Step 1.5 of importing the network stack virtualization infrastructure 2008-10-02 15:37:58 +00:00
vmmeter.h Correct the description of v_cache_count. Eliminate an unused function. 2008-07-19 22:35:13 +00:00
vnode.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
vtoc.h Add support for VTOC8 labels (aka sun disk labels). When a label does 2008-03-02 00:52:49 +00:00
wait.h Implement WNOWAIT flag for wait4(2). It specifies that process whose status 2008-08-26 12:37:16 +00:00
watchdog.h Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00