freebsd-dev/sys/sys
Bjoern A. Zeeb 42eedeac00 Split eventhandler_register() into an internal part and a wrapper function
that provides the allocated and setup eventhandler entry.

Add a new wrapper for VIMAGE that allocates extra space to hold the
callback function and argument in addition to an extra wrapper function.
While the wrapper function goes as normal callback function the
argument points to the extra space allocated holding the original func
and arg that the wrapper function can then call.

Provide an iterator function for the virtual network stack (vnet) that
will call the callback function for each network stack.

Provide a new set of macros for VNET that in the non-VIMAGE case will
just call eventhandler_register() while in the VIMAGE case it will use
vimage_eventhandler_register() passing in the extra iterator function
but will only register once rather than per-vnet.
We need a special macro in case we are interested in the tag returned
as we must check for curvnet and can neither simply assign the
return value, nor not change it in the non-vnet0 case without that.

Sponsored by:	ISPsystem
Discussed with:	jhb
Reviewed by:	zec (earlier version), jhb
MFC after:	1 month
2010-03-19 19:51:03 +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 In current code, threads performing an interruptible sleep (on both 2009-12-12 21:31:07 +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 *sigh*, while the kernel built, userland C did not. Revert the previous 2009-05-11 21:13:00 +00:00
_pthreadtypes.h Fix the visibility of several prototypes. Also move pthread_kill() and 2009-03-14 20:10:14 +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 Use umtx to implement process sharable semaphore, to make this work, 2010-01-05 02:37:59 +00:00
_sigset.h
_sockaddr_storage.h Move the duplicate definition of struct sockaddr_storage to its own 2009-09-08 10:39:38 +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
_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
_termios.h Decompose <sys/termios.h>. 2009-11-28 23:50:48 +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
_umtx.h Add user-level semaphore synchronous type, this change allows multiple 2010-01-04 05:27:49 +00:00
aac_ioctl.h Add additional featuresState.fBits entries to simplify compiling and 2009-10-29 17:21:41 +00:00
acct.h Increase precision of time values in the process accounting 2007-05-22 06:51:38 +00:00
acl.h Cosmetic fixes. 2009-12-22 09:03:59 +00:00
agpio.h
aio.h Namespace: aio_waitcomplete() is a BSD extension. 2009-03-14 19:17:00 +00:00
alq.h
apm.h Add apple-boot and apple-ufs. 2009-12-14 22:47:09 +00:00
assym.h
ata.h Make PUIS detection more strict. Previous implementation caused false 2010-02-26 10:42:46 +00:00
bio.h only export bio_cmd and flags to userland (bio_cmd are 2009-12-11 10:35:58 +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_ring.h - add drbr routines for accessing #qentries and conditionally dequeueing 2009-06-09 19:19:16 +00:00
buf.h nfs_write() can use the recently introduced vfs_bio_set_valid() instead of 2009-05-31 20:18:02 +00:00
bufobj.h Remove the struct thread unuseful argument from bufobj interface. 2008-10-10 21:23:50 +00:00
bus_dma.h When bouncing pages, allow a new option to preserve the intra-page 2009-02-08 22:54:58 +00:00
bus.h For some buses, devices may have active resources assigned even though they 2009-12-09 21:52:53 +00:00
callout.h add callout_schedule; besides being useful it also improves 2008-08-02 17:42:38 +00:00
cdefs.h Recommit r193732: 2010-01-19 15:31:18 +00:00
cdio.h
cdrio.h
cfictl.h Add support for frobbing Intel StrataFlash Protection Registers: 2009-02-05 18:12:07 +00:00
chio.h
clock.h The NetBSD Foundation has granted permission to remove clause 3 and 4 from 2010-03-03 17:55:51 +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 d_mmap() to accept vm_ooffset_t and vm_memattr_t. 2009-12-29 21:51:28 +00:00
cons.h Allow multiple console devices per driver without insane code duplication. 2009-08-24 10:53:30 +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 Welcome to 2010. 2010-01-02 01:12:10 +00:00
cpu.h Provide a new CPU device driver ivar to report the nominal speed of the 2009-05-31 08:59:15 +00:00
cpuctl.h - Add support to atomically set/clear individual bits of a MSR register 2009-06-30 12:35:47 +00:00
cpuset.h - Add a new cpuset macro, CPU_FILL(), for setting the set to all 1s. 2009-06-23 06:57:46 +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 two disk ioctls, giving user-level tools information about disk/array 2009-12-24 11:05:23 +00:00
disklabel.h Initial storage functionality for U-Boot support library. 2008-11-19 17:34:28 +00:00
diskmbr.h
diskpc98.h Move the PC98_[MS]ID_* defines from g_part_pc98.c to diskpc98.h. 2009-03-11 13:15:42 +00:00
dkstat.h
domain.h Introduce and use a sysinit-based initialization scheme for virtual 2009-07-23 20:46:49 +00:00
dtrace_bsd.h Add DTrace probes to the NFS access and attribute caches. Access cache 2009-03-24 17:14:34 +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 style(9) 2009-01-01 02:08:56 +00:00
elf_common.h Implement rtld part of the support for -z nodlopen (see ld(1)). 2009-11-26 13:57:20 +00:00
elf_generic.h style(9) 2009-01-01 02:08:56 +00:00
elf.h Remove _SOLARIS_C_SOURCE compatibility definitions. Unfortunately the 2007-11-28 21:54:46 +00:00
endian.h
errno.h Add a new errno, ENOTCAPABLE, to be returned when a process requests an 2009-10-07 20:20:51 +00:00
eui64.h
event.h The devices that supported EVFILT_NETDEV kqueue filters were removed in 2009-12-31 20:29:58 +00:00
eventhandler.h Split eventhandler_register() into an internal part and a wrapper function 2010-03-19 19:51:03 +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
fail.h fail(9) support: 2009-05-27 16:36:54 +00:00
fbio.h Yet another attempt to make palette loading more safer: 2010-02-23 21:51:14 +00:00
fcntl.h Add two new fcntls to enable/disable read-ahead: 2009-09-28 16:59:47 +00:00
fdcio.h
file.h Use ANSI declarations instead of K&R. 2009-12-28 23:12:55 +00:00
filedesc.h - Implement a lockless file descriptor lookup algorithm in 2009-05-14 03:24:22 +00:00
filio.h Add FIONSPACE from NetBSD. FIONSPACE is provided so that programs may 2009-06-30 13:38:49 +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 more Apple partition types. 2009-12-14 20:04:28 +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 Split tolower/toupper code from usual xlat16 kiconv table, and make it 2009-06-22 17:09:46 +00:00
imgact_aout.h Merge projects/enhanced_coredumps (r204346) into HEAD: 2010-03-02 06:58:58 +00:00
imgact_elf.h Merge projects/enhanced_coredumps (r204346) into HEAD: 2010-03-02 06:58:58 +00:00
imgact.h Merge projects/enhanced_coredumps (r204346) into HEAD: 2010-03-02 06:58:58 +00:00
inflate.h
interrupt.h - Fix several off-by-one errors when using MAXCOMLEN. The p_comm[] and 2009-10-23 15:14:54 +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 Perform cleanups to the TTY headers: 2009-09-06 09:39:40 +00:00
ioctl.h Clean up <sys/ioctl.h>. 2009-05-09 19:01:24 +00:00
ipc.h Change the ABI of some of the structures used by the SYSV IPC API: 2009-06-24 21:10:52 +00:00
ipmi.h Update the ipmi(4) driver: 2006-09-22 22:11:29 +00:00
jail.h Add ip4.saddrsel/ip4.nosaddrsel (and equivalent for ip6) to control 2010-01-17 12:57:11 +00:00
joystick.h
kbio.h Make the keyboard layer Unicode aware. 2009-09-19 17:56:26 +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 Random number generator initialization cleanup: 2009-10-20 16:36:51 +00:00
kerneldump.h PowerPC, meet kernel core dumps. The support is based 2009-04-04 02:12:37 +00:00
kobj.h KOBJMETHOD: throw the switch on kobj method signature checking 2009-06-12 09:05:23 +00:00
ksem.h Rework the lifetime management of the kernel implementation of POSIX 2008-06-27 05:39:04 +00:00
ksyms.h Add the ksyms(4) pseudo driver. The ksyms driver allows a process to 2009-05-26 21:39:09 +00:00
kthread.h - Fix the kthread_{suspend, resume, suspend_check}() locking. 2010-01-24 15:07:00 +00:00
ktr.h In non-debugging mode make this define (void)0 instead of nothing. This 2009-06-21 09:01:12 +00:00
ktrace.h Style fix. 2009-10-23 15:10:41 +00:00
libkern.h This commit fixes the issue with alias_sctp.c. No 2009-02-14 11:34:57 +00:00
limits.h
link_aout.h
link_elf.h style(9) 2009-01-01 02:11:01 +00:00
linker_set.h
linker.h Implement a facility for dynamic per-cpu variables. 2009-06-23 22:42:39 +00:00
lock_profile.h In non-debugging mode make this define (void)0 instead of nothing. This 2009-06-21 09:01:12 +00:00
lock.h Add the address of the lock to the KTR_LOCK trace. 2009-08-14 10:57:57 +00:00
lockf.h The advisory lock may be activated or activated and removed during the 2009-05-24 12:39:38 +00:00
lockmgr.h Introduce support for adaptive spinning in lockmgr. 2009-06-17 01:55:42 +00:00
lockstat.h Add the OpenSolaris dtrace lockstat provider. The lockstat provider 2009-05-26 20:28:22 +00:00
mac.h Update comments in mac.h. 2007-02-06 16:24:57 +00:00
malloc.h Garbage collect now-unused struct malloc_type fields, bump __FreeBSD_version 2009-04-19 11:20:57 +00:00
mbpool.h
mbuf.h Add m_mbuftouio() helper function to copy(out) an arbitrary 2009-06-22 22:20:38 +00:00
mchain.h
md4.h
md5.h Add definitions for MD5_BLOCK_LENGTH, MD5_DIGEST_LENGTH and 2006-03-15 19:47:12 +00:00
mdioctl.h
memrange.h Initial suspend/resume support for amd64. 2009-03-17 00:48:11 +00:00
mman.h Add MAP_ANONYMOUS. 2009-11-06 07:17:31 +00:00
module.h - Invoke MOD_QUIESCE on all modules in a linker file (kld) before 2008-12-05 13:40:25 +00:00
mount.h Implement NFSv4 ACL support for UFS. 2009-12-21 19:39:10 +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
msg.h Change the ABI of some of the structures used by the SYSV IPC API: 2009-06-24 21:10:52 +00:00
msgbuf.h Make /dev/klog and kern.msgbuf* MPSAFE. 2009-11-03 21:06:19 +00:00
mtio.h
mutex.h In non-debugging mode make this define (void)0 instead of nothing. This 2009-06-21 09:01:12 +00:00
namei.h Extend the cn_flags field of the struct componentname to 64 bits to have 2009-07-09 18:49:26 +00:00
nlist_aout.h
osd.h Introduce the extensible jail framework, using the same "name=value" 2009-04-29 21:14:15 +00:00
param.h Revised revision 199201 (add interface description capability as inspired 2010-01-27 00:30:07 +00:00
pciio.h - Add a new ioctl to /dev/pci to fetch details on an individual BAR of a 2009-02-02 22:04:40 +00:00
pcpu.h Typo. 2010-03-10 15:22:26 +00:00
pioctl.h Fix copyright spelling 2010-03-10 20:30:51 +00:00
pipe.h - Make maxpipekva a signed long rather than an unsigned long as overflow 2009-03-10 21:28:43 +00:00
pmc.h Correct a typo. 2010-03-13 15:10:07 +00:00
pmckern.h Support sparsely numbered CPUs. 2008-09-22 10:37:02 +00:00
pmclog.h - Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo 2008-11-27 09:00:47 +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 Revised revision 199201 (add interface description capability as inspired 2010-01-27 00:30:07 +00:00
proc.h For PT_TO_SCE stop that stops the ptraced process upon syscall entry, 2010-01-23 11:45:35 +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 Introduce an infrastructure for dismantling vnet instances. 2009-06-08 17:15:40 +00:00
ptio.h
ptrace.h Provide groundwork for 32-bit binary compatibility on non-x86 platforms, 2010-03-11 14:49:06 +00:00
queue.h Avoid corrupting the list or queue if _REMOVE is invoked with a 2010-02-20 01:05:30 +00:00
random.h
reboot.h
refcount.h Remove debugging cruft. 2008-07-23 16:44:20 +00:00
regression.h
resource.h Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
resourcevar.h Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
rman.h Add a convenience function rman_init_from_resource for initializing 2006-06-12 04:06:21 +00:00
rmlock.h Make the rmlock(9) interface a bit more like the rwlock(9) interface: 2009-05-29 10:52:37 +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 When releasing a read/shared lock we need to use a write memory barrier 2009-09-30 13:26:31 +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 - Use DPCPU for SCHED_STATS. This is somewhat awkward because the 2009-06-25 01:33:51 +00:00
sdt.h Add SDT_PROBE[1-5] in the same way we have SDT_PROBE_DEFINE[1-5] to 2009-11-28 16:47:42 +00:00
select.h
selinfo.h Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
sem.h Change the ABI of some of the structures used by the SYSV IPC API: 2009-06-24 21:10:52 +00:00
sema.h
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
sglist.h Change the 'resid' parameter to sglist_consume_uio() from an int to a 2009-08-20 19:23:58 +00:00
shm.h Change the ABI of some of the structures used by the SYSV IPC API: 2009-06-24 21:10:52 +00:00
sigio.h
signal.h Implement sighold, sigignore, sigpause, sigrelse, sigset functions 2009-11-26 13:49:37 +00:00
signalvar.h Staticise sigqueue manipulation functions used only in kern_sig.c. 2010-01-23 11:43:30 +00:00
sleepqueue.h Introduce the new kernel thread called "deadlock resolver". 2010-01-09 01:46:38 +00:00
smp.h Remove forward_roundrobin(), it is unused for quite some time. 2009-09-21 13:09:56 +00:00
snoop.h
sockbuf.h Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
socket.h Improve the comment about CMGROUP_MAX. 2010-01-09 23:24:49 +00:00
socketvar.h Fix poll(2) and select(2) for named pipes to return "ready for read" 2009-07-07 09:43:44 +00:00
sockio.h Revised revision 199201 (add interface description capability as inspired 2010-01-27 00:30:07 +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 Move machine dependant AFMT_* definition from sound.h 2009-06-10 03:56:24 +00:00
stack.h Add stack_print_short() and stack_print_short_ddb() interfaces to 2009-06-24 12:06:15 +00:00
stat.h Various namespace cleanups, including exposing fchmod() and fchmodat() 2009-03-14 19:11:08 +00:00
statvfs.h
stddef.h
stdint.h
sun_disklabel.h
sx.h When releasing a read/shared lock we need to use a write memory barrier 2009-09-30 13:26:31 +00:00
syscall.h Regenerate 2009-10-27 11:01:40 +00:00
syscall.mk Regenerate 2009-10-27 11:01:40 +00:00
syscallsubr.h Background: 2010-01-11 20:44:05 +00:00
sysctl.h Add proper const keywords to sysctl(3) parameters. 2010-02-21 13:57:02 +00:00
sysent.h Introduce SYSCALL_INIT_HELPER and SYSCALL32_INIT_HELPER macros and 2010-03-19 10:56:30 +00:00
syslimits.h Rework the credential code to support larger values of NGROUPS and 2009-06-19 17:10:35 +00:00
syslog.h Namespace: vsyslog() is a BSD extension. 2009-03-14 19:07:25 +00:00
sysproto.h Revert 200606. 2009-12-16 21:53:56 +00:00
systm.h Make the comment follow style(9) format. 2010-03-03 13:29:39 +00:00
taskqueue.h Remove unused taskqueue_find() function. 2009-08-18 13:55:48 +00:00
termios.h Decompose <sys/termios.h>. 2009-11-28 23:50:48 +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 HZ is now 1000 on most platforms, update a comment. 2009-10-29 09:27:09 +00:00
timeb.h Add warnings to <regexp.h> and <sys/timeb.h>. 2010-03-09 21:01:12 +00:00
timepps.h
timers.h
times.h
timespec.h
timetc.h
timex.h
tree.h In sys/tree.h: 2009-03-01 04:57:23 +00:00
tty.h Make TIOCSTI work again. 2010-01-04 20:59:52 +00:00
ttycom.h Perform cleanups to the TTY headers: 2009-09-06 09:39:40 +00:00
ttydefaults.h Reduce the default baud rate of PTY's to 9600. 2008-11-08 20:40:39 +00:00
ttydevsw.h Update d_mmap() to accept vm_ooffset_t and vm_memattr_t. 2009-12-29 21:51:28 +00:00
ttydisc.h Add ttydisc_rint_simple(). 2009-08-23 08:04:40 +00:00
ttyhook.h Change ttyhook_register() second argument from thread to process pointer. 2008-12-13 21:17:46 +00:00
ttyqueue.h Properly set the low watermarks when reducing the baud rate. 2009-10-19 07:17:37 +00:00
turnstile.h Commit 3/14 of sched_lock decomposition. 2007-06-04 23:51:44 +00:00
types.h Extend the device pager to support different memory attributes on different 2009-08-28 14:06:55 +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 Remove the interim vimage containers, struct vimage and struct procg, 2009-07-17 14:48:21 +00:00
uio.h Change the type of uio_resid member of struct uio from int to ssize_t. 2009-06-25 18:46:30 +00:00
umtx.h Add user-level semaphore synchronous type, this change allows multiple 2010-01-04 05:27:49 +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 Add NFSv4 ACL support to libc. 2009-06-25 12:46:59 +00:00
unpcb.h Remove explicit locking of struct file. 2007-12-30 01:42:15 +00:00
user.h n64 has a different size for KINFO_PROC_SIZE. 2010-02-18 18:57:15 +00:00
utsname.h
uuid.h
vmmeter.h Correct the description of v_cache_count. Eliminate an unused function. 2008-07-19 22:35:13 +00:00
vnode.h Add new function vunref(9) that decrements vnode use count (and hold 2010-01-17 21:24:27 +00:00
vtoc.h Add __packed to the part sub-structure to compensate for 2008-12-14 23:12:36 +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