freebsd-skq/sys/sys
Attilio Rao f08945a7d2 Introduce a new rwlocks initialization function: rw_init_flags.
This is very similar to sx_init_flags: it initializes the rwlock using
special flags passed as third argument (RW_DUPOK, RW_NOPROFILE,
RW_NOWITNESS, RW_QUIET, RW_RECURSE).
Among these, the most important new feature is probabilly that rwlocks
can be acquired recursively now (for both shared and exclusive paths).

Because of the recursion counter, the ABI is changed.

Tested by: Timothy Redaelli <drizzt@gufi.org>
Reviewed by: jhb
Approved by: jeff (mentor)
Approved by: re
2007-06-26 21:31:56 +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
_elf_solaris.h ELF compatibility definitions for OpenSolaris. These are covered 2006-10-04 07:19:39 +00:00
_iovec.h
_lock.h track lock class name in a way that doesn't break WITNESS 2006-11-13 05:41:46 +00:00
_mutex.h Rename the 'mtx_object', 'rw_object', and 'sx_object' members of mutexes, 2007-03-21 21:20:51 +00:00
_null.h
_pthreadtypes.h According to: 2005-05-31 15:18:17 +00:00
_rwlock.h Introduce a new rwlocks initialization function: rw_init_flags. 2007-06-26 21:31:56 +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
_sx.h Optimize sx locks to use simple atomic operations for the common cases of 2007-03-31 23:23:42 +00:00
_task.h o eliminate modification of task structures after their run to avoid 2005-04-24 16:52:45 +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 Let kernel POSIX timer code and mqueue code to use integer as a resource 2006-03-01 06:29:34 +00:00
aac_ioctl.h
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 Evolve the ctlreq interface added to geom_gpt into a generic 2007-02-07 18:55:31 +00:00
assym.h
ata.h Add the SMART command to the ATA instruction set. 2007-01-27 21:15:59 +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
buf.h Instead of doing comparisons using the pcpu area to see if 2007-03-08 06:44:34 +00:00
bufobj.h Cylinder group bitmaps and blocks containing inode for a snapshot 2007-01-23 10:01:19 +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
bus.h o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
callout.h Make the TCP timer callout obtain Giant if the network stack is marked 2007-05-11 20:52:47 +00:00
cdefs.h Use __builtin_offsetof for GCC 4.1. 2006-09-21 01:38:58 +00:00
cdio.h
cdrio.h
chio.h
clist.h
clock.h Better naming of fattime conversion functions, they do convert to timespec 2006-10-24 10:27:23 +00:00
condvar.h Rename the cv_*wait*() functions to _cv_*wait*() and change their second 2007-03-21 22:22:13 +00:00
conf.h Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
cons.h Add a cnputs() function to write a string to the console with 2006-11-01 04:54:51 +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 The pc98 porting team's copyright year should be 2003, when 2007-01-10 01:29:46 +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
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 netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
dirent.h o Re-word a comment. 2006-08-16 09:34:56 +00:00
disk.h Implement three new ioctls that can be used with GEOM provider: 2007-05-05 17:02:19 +00:00
disklabel.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
diskmbr.h
diskpc98.h Change DOSPTYP_386BSD to 0xc494. 2005-05-08 11:30:26 +00:00
dkstat.h
domain.h Move definition of UNIX domain socket protosw and domain entries from 2006-08-07 12:02:43 +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 Correct PT_GNU_EH_FRAME definition. 2007-04-03 01:47:07 +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 This file is the same as the one installed in /usr/include, however 2006-10-04 07:23:31 +00:00
endian.h
errno.h Add some missing errnos from POSIX. Nothing in FreeBSD generates 2005-04-02 12:33:28 +00:00
eui64.h
event.h hide kqueue_register from public view, and replace it w/ kqfd_register... 2006-09-24 04:47:47 +00:00
eventhandler.h When we are running low on vnodes, there is currently no way to ask other 2007-04-13 08:38:48 +00:00
eventvar.h
exec.h Make ps_nargvstr and ps_nenvstr unsigned. This fixes an input 2005-03-23 08:27:59 +00:00
extattr.h Revert/re-make previous commit in a manner that maintains hyphenation of 2007-03-16 19:18:49 +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
fdcio.h
file.h - Close a race between enumerating UNIX domain socket pcb structures via 2007-01-05 19:59:46 +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 the UUID of Apple's HFS file system as can be found in the Intel 2006-06-22 22:11:12 +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 - Change process_exec function handlers prototype to include struct 2006-08-15 12:10:57 +00:00
inflate.h
interrupt.h Bring in the reminaing bits to make interrupt filtering work: 2007-05-06 17:02:50 +00:00
ioccom.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
ioctl_compat.h Increase the verbosity of the warning given when this file is used as 2007-04-27 11:19:05 +00:00
ioctl.h Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
ipc.h
ipmi.h Update the ipmi(4) driver: 2006-09-22 22:11:29 +00:00
jail.h Implement functionality I called 'jail services'. 2007-04-05 23:19:13 +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 Don't enter the debugger if KDB_UNATTENDED is set or if 2005-04-20 20:52:46 +00:00
kenv.h
kernel.h Fix build breakage. 2007-04-09 22:29:13 +00:00
kerneldump.h Define KERNELDUMP_ARM_VERSION. 2005-10-03 14:06:00 +00:00
kobj.h Fix typo in a comment: DEFINE_CLASSx => DEFINE_CLASS_x. 2006-08-24 21:09:39 +00:00
kse.h
ksem.h Introduce MAC Framework and MAC Policy entry points to label and control 2005-05-04 10:39:15 +00:00
kthread.h
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 Fix typo in comment. 2005-12-26 22:09:09 +00:00
libkern.h strchr() and strrchr() are already present in the kernel, but with less 2007-04-10 21:42:12 +00:00
limits.h Define MQ_PRIO_MAX, it seems it is the only place 2005-12-02 07:45:28 +00:00
linedisc.h
link_aout.h
link_elf.h Add dl_iterate_phdr function prototype and corresponding dl_phdr_info 2007-04-03 18:33:41 +00:00
linker_set.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
linker.h Add a new section in this file for functions that are only exported by the 2006-06-20 20:59:55 +00:00
lock_profile.h Don't set lo_name and clobber lo_flags in lock_profile_object_init(). 2007-05-23 18:46:54 +00:00
lock.h Remove unneccessary LO_CONTESTED flag 2007-04-03 17:57:50 +00:00
lockf.h Correct typo in comment 2007-05-17 16:03:14 +00:00
lockmgr.h - Use lock_init/lock_destroy() to setup the lock_object inside of lockmgr. 2007-03-30 18:07:24 +00:00
mac.h Update comments in mac.h. 2007-02-06 16:24:57 +00:00
malloc.h Improve memguard a bit: 2005-12-30 11:45:07 +00:00
mbpool.h
mbuf.h Back out the previous commit which added an M_LRO mbuf flag 2007-06-11 18:26:25 +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 Namespace issues. 2005-04-02 12:33:31 +00:00
module.h Add a new module_file() function that returns the linker_file_t associated 2006-04-17 19:44:44 +00:00
mount.h In the MAC Framework implementation, file systems have two per-mountpoint 2007-04-22 16:18:10 +00:00
mouse.h Spell "Kensington Thinking Mouse" correctly. 2006-12-18 18:48:28 +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 - Placing the 'volatile' on the right side of the * in the td_lock 2007-06-06 03:40:47 +00:00
namei.h Add AUDITVNODE[12] flags to namei(), which cause namei() to audit path 2006-02-05 15:42:01 +00:00
nlist_aout.h
param.h Import rewrite of IPv4 socket multicast layer to support source-specific 2007-06-12 16:24:56 +00:00
pciio.h
pcpu.h Backout experimental adaptive-spin umtx code. 2007-06-06 07:35:08 +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
pmc.h Remove unused symbols. 2006-03-28 16:20:29 +00:00
pmckern.h MFP4: Support for profiling dynamically loaded objects. 2006-03-26 12:20:54 +00:00
pmclog.h Remove unused symbols. 2006-03-28 16:20:29 +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 comment: kernel privileges are, in fact sorted by subsytem. 2007-06-18 07:54:27 +00:00
proc.h - Fix kse by moving the upcalls list back out of the zero'd section. 2007-06-12 20:22:06 +00:00
procfs.h
protosw.h soreceive_generic(), and sopoll_generic(). Add new functions sosend(), 2006-07-24 15:20:08 +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 Remove the non-standard and undocumented STAILQ_REMOVE_HEAD_UNTIL() 2006-10-24 11:19:21 +00:00
random.h
reboot.h
refcount.h Add a simple reference count API that is simply a thin wrapper API around 2005-09-27 18:01:33 +00:00
regression.h
resource.h - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
resourcevar.h rufetch and calcru sometimes should be called atomically together. 2007-06-09 21:48:44 +00:00
rman.h Add a convenience function rman_init_from_resource for initializing 2006-06-12 04:06:21 +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 - Change types for necent runq additions to u_char rather than int. 2007-02-08 01:52:25 +00:00
rwlock.h Introduce a new rwlocks initialization function: rw_init_flags. 2007-06-26 21:31:56 +00:00
sbuf.h
sched.h - Garbage collect unused concurrency functions. 2007-06-12 19:49:39 +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
sem.h Remove extra forward declare of 'struct sem'. 2006-11-07 18:56:48 +00:00
sema.h
semaphore.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
shm.h Change the data type of the upper shared memory limits from a signed 2005-08-06 07:20:18 +00:00
sigio.h
signal.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
signalvar.h Move some declaration of 32-bit signal structures into file 2006-10-05 01:56:11 +00:00
sleepqueue.h Optimize sx locks to use simple atomic operations for the common cases of 2007-03-31 23:23:42 +00:00
smp.h Rename the KDB_STOP_NMI kernel option to STOP_NMI and make it apply to all 2005-10-24 21:04:19 +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
socket.h Import rewrite of IPv4 socket multicast layer to support source-specific 2007-06-12 16:24:56 +00:00
socketvar.h sblock() implements a sleep lock by interlocking SB_WANT and SB_LOCK flags 2007-05-03 14:42:42 +00:00
sockio.h Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
soundcard.h MFP4 (109713): 2006-11-26 11:55:48 +00:00
stack.h Add 'depth' argument to CTRSTACK() macro, which allows to reduce number 2005-08-29 11:34:08 +00:00
stat.h Add OpenSolaris compatibility definitions for stat64 and fstat64 which 2006-08-04 23:47:30 +00:00
statvfs.h
stddef.h
stdint.h
sun_disklabel.h Support VTOC volume names. This can be useful to distinguish multiple 2005-03-30 09:33:10 +00:00
sx.h Add functions sx_xlock_sig() and sx_slock_sig(). 2007-05-31 09:14:48 +00:00
syscall.h This commits the remake in kern/ make sysent to get 2006-11-03 18:57:49 +00:00
syscall.mk This commits the remake in kern/ make sysent to get 2006-11-03 18:57:49 +00:00
syscallsubr.h - Remove unused variable from create_thread(). 2007-06-07 19:45:19 +00:00
sysctl.h Add a function for exporting 64 bit types. 2007-06-04 18:14:28 +00:00
sysent.h Rework the support for ABIs to override resource limits (used by 32-bit 2007-05-14 22:40:04 +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 Regen (cosmetics in sys/sysproto.h). 2006-11-11 22:01:25 +00:00
systm.h Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +00:00
taskqueue.h Add the following to the taskqueue api: 2006-01-14 01:55:24 +00:00
termios.h
thr.h - Remove unused variable from create_thread(). 2007-06-07 19:45:19 +00:00
tiio.h
time.h Solaris compatibility only: Be specific about the fact that 2006-10-03 04:01:30 +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 Simplify/optimize RB_NFIND(). 2007-06-15 16:09:47 +00:00
tty.h Deorbit ttymalloc() in preference for ttyalloc() 2006-01-04 09:59:07 +00:00
ttychars.h Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
ttycom.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
ttydefaults.h
ttydev.h Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
turnstile.h Commit 3/14 of sched_lock decomposition. 2007-06-04 23:51:44 +00:00
types.h Add some compatibility definitions for OpenSolaris source. 2006-08-04 22:54:10 +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 Move per-process audit state from a pointer in the proc structure to 2007-06-07 22:27:15 +00:00
uio.h Document struct uio.h entries. 2006-11-29 19:08:45 +00:00
umtx.h Backout experimental adaptive-spin umtx code. 2007-06-06 07:35:08 +00:00
un.h Implement unix(4) socket options LOCAL_CREDS and LOCAL_CONNWAIT. 2005-04-13 00:01:46 +00:00
unistd.h Hide SEEK_DATA and SEEK_HOLE under __BSD_VISIBLE. 2007-04-07 18:31:40 +00:00
unpcb.h Revise locking strategy used for UNIX domain sockets in order to improve 2007-02-26 20:47:52 +00:00
user.h Switch to a 64bit time_t, while it's not a big problem to do so. 2006-05-15 00:17:27 +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
vmmeter.h Optimize vmmeter locking. 2007-06-10 21:59:14 +00:00
vnode.h Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
wait.h Since union wait was removed in revision 1.17 (3 years, 5 months ago), 2005-11-10 05:00:20 +00:00
watchdog.h Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00
xrpuio.h