History log of /src/sys/kern/kern_core.c |
Revision | | Date | Author | Comments |
1.39 |
| 04-Oct-2023 |
ad | kauth_cred_hold(): return cred verbatim so that donating a reference to another data structure can be done more elegantly.
|
1.38 |
| 11-Jul-2023 |
riastradh | sys: Rip <sys/resourcevar.h> out of <uvm/uvm_param.h>.
And thus out of <sys/param.h>, which is exceedingly overused and fragile and delenda est.
Should fix (some) issues with the recent inclusion of machine/lock.h in various machine/mutex.h files.
|
1.37 |
| 10-Sep-2022 |
mrg | branches: 1.37.4; avoid a GCC warning (happens on -current, -9, and -8.)
|
1.36 |
| 09-Sep-2022 |
christos | Don't forget to free the cred we just held. Thanks to Chris J-D (chris at accessvector dot net) While here, de-duplicate the mutex exit sequence.
|
1.35 |
| 29-Jun-2021 |
dholland | Add containment for the cloning devices hack in vn_open.
Cloning devices (and also things like /dev/stderr) work by allocating a struct file, stuffing it in the file table (which is a layer violation), stuffing the file descriptor number for it in a magic field of struct lwp (which is gross), and then "failing" with one of two magic errnos, EDUPFD or EMOVEFD.
Before this commit, all callers of vn_open in the kernel (there are quite a few) were expected to check for these errors and handle the situation. Needless to say, none of them except for open() itself did, resulting in internal negative errnos being returned to userspace.
This hack is fairly deeply rooted and cannot be eliminated all at once. This commit adds logic to handle the magic errnos inside vn_open; now on success vn_open returns either a vnode or an integer file descriptor, along with a flag that says whether the underlying code requested EDUPFD or EMOVEFD. Callers not prepared to cope with file descriptors can pass NULL for the extra return values, in which case if a file descriptor would be produced vn_open fails with EOPNOTSUPP.
Since I'm rearranging vn_open's signature anyway, stop exposing struct nameidata. Instead, take three arguments: an optional vnode to use as the starting point (like openat()), the path, and additional namei flags to use, restricted to NOCHROOT and TRYEMULROOT. (Other namei behavior, e.g. NOFOLLOW, can be requested via the open flags.)
This change requires a kernel bump. Ride the one an hour ago. (That was supposed to be coordinated; did not intend to let an hour slip by. My fault.)
|
1.34 |
| 01-Nov-2020 |
pgoyette | branches: 1.34.4; Separate the compat_netbsd32_coredump from the compat_netbsd32 and coredump modules, into its own module.
Welcome to 7.99.75 !!!
|
1.33 |
| 26-Oct-2020 |
christos | branches: 1.33.2; Depend directly on EXEC_ELF{32,64} to determine which versions of the coredump code are available.
|
1.32 |
| 20-Oct-2020 |
christos | only define hooks for 32 bit cores if we need them.
|
1.31 |
| 19-Oct-2020 |
christos | Arrange so that no options COREDUMP and no options PTRACE work together. Thanks to Paul Goyette for testing.
|
1.30 |
| 23-May-2020 |
ad | Move proc_lock into the data segment. It was dynamically allocated because at the time we had mutex_obj_alloc() but not __cacheline_aligned.
|
1.29 |
| 12-Dec-2019 |
pgoyette | Rather than keeping a separate mutex, condvar, and pserialize for each module hook, we can share a common set of synchronization structures. This cuts the amount of cacheline_aligned data for these structures by 50%.
Note that we still have a per-hook localcount, since we need to count individual references.
As discussed with riastradh@
Welcome to 9.99.22 !
|
1.28 |
| 20-Nov-2019 |
pgoyette | Move all non-emulation-specific coredump code into the coredump module, and remove all #ifdef COREDUMP conditional compilation. Now, the coredump module is completely separated from the emulation modules, and they can all be independently loaded and unloaded.
Welcome to 9.99.18 !
|
1.27 |
| 10-Nov-2019 |
pgoyette | Convert the coredump_vec modular function pointer to use the new compat_hook mechanism.
XXX Should be pulled up to -9 despite the kernel <--> module ABI XXX change.
|
1.26 |
| 16-Oct-2019 |
christos | Add and use __FPTRCAST, requested by uwe@
|
1.25 |
| 16-Oct-2019 |
christos | Add void * function pointer casts. There are different ways to "fix" those warnings: 1. this one: add a void * cast (which I think is the least intrusive) 2. add pragmas to elide the warning 3. add intermediate inline conversion functions 4. change the called function prototypes, adding unused arguments and converting some of the pointer arguments to void *. 5. make the functions varyadic (which defeats the purpose of checking) 6. pass command line flags to elide the warning I did try 3 and 4 and I was not pleased with the result (sys_ptrace_common.c) (3) added too much code and defines, and (4) made the regular use clumsy.
|
1.24 |
| 07-Jul-2016 |
msaitoh | branches: 1.24.10; 1.24.18; 1.24.22; KNF. Remove extra spaces. No functional change.
|
1.23 |
| 22-Apr-2014 |
maxv | branches: 1.23.4; Fix a read-beyond-end string read.
coredump_buildname() copies 'pattern' into 'name', and handles special characters such as "%n". "%n", if present, will be replaced by p->p_comm.
error = coredump_buildname(p, name, pattern, MAXPATHLEN);
This function handles overflows, and returns an error when 'name' becomes larger than MAXPATHLEN. However, when coredump() calls it, 'name' is used before the error check, with:
lastslash = strrchr(name, '/');
'name' is not guaranteed to be NUL-terminated, because of the *d = *s in coredump_buildname(). This strrchr will read a string which is not NUL- terminated (ie. until finding a '\0' in memory).
'pattern' can't be higher than MAXPATHLEN. A user can fill it in via a PT_DUMPCORE ptrace call, given the input is not longer than MAXPATHLEN. Since the 2-bytes-sized "%n"s will be replaced by p->p_comm (which is user-settable, like a 10-bytes-sized "0123456789"), 'name' can become longer than 'pattern' (and thus longer than MAXPATHLEN). Some 'a's at the end of the buffer will make sure 'name' is not NUL-terminated.
pattern: "%n%n%naaaaaaaaaaaaaaaaaaaaaaaaaaaa\0" | | | ||||||||||||||||||||||||||||| -> name: "012345678901234567890123456789aaaaa" [no \0] | | | |||||MAXPATHLEN
Fix it by checking 'error' before calling strrchr.
|
1.22 |
| 03-Jan-2014 |
dsl | branches: 1.22.2; Instead of generating all the 'note' sections twice (and hoping that the 'fast path' size on the first path matches the actual size on the second) save all the notes (mostly the cpu registers for all the LWPs) in malloced memory on the first pass. Sanity check that the number of memory segments matches written matches the count obtained earlier. If gcore() is used they could differ. (Not sure that returning ENOMEM is ideal, but it is better than a crash.)
|
1.21 |
| 01-Jan-2014 |
dsl | Change the type of the 'cookie' that holds the state of the core dump file from 'void *' to the actual type 'struct coredump_iostate *'. In most of the code the contents of the structure are still unknown. This just stops the wrong type of pointer being passed to the 'void *' parameter. I hope I've found everything, amd64 GENERIC and i386 GENERIC & ALL compile.
|
1.20 |
| 24-Sep-2011 |
christos | branches: 1.20.2; 1.20.8; 1.20.12; 1.20.14; 1.20.16; 1.20.22; Don't dump core on an existing core file we don't own. From OpenBSD, suggested by Greg Woods.
|
1.19 |
| 23-Sep-2011 |
christos | PR/45393: Greg A. Woods: The mount point validation code (that looks for nocoredump filesystems to avoid dumping on them) only worked for core filenames that dump in the current working directory. Update the code to validate the mount point of the parent directory of the core file if needed.
|
1.18 |
| 29-Apr-2011 |
rmind | Small comment improvement.
|
1.17 |
| 19-Nov-2010 |
dholland | branches: 1.17.2; Introduce struct pathbuf. This is an abstraction to hold a pathname and the metadata required to interpret it. Callers of namei must now create a pathbuf and pass it to NDINIT (instead of a string and a uio_seg), then destroy the pathbuf after the namei session is complete.
Update all namei call sites accordingly. Add a pathbuf(9) man page and update namei(9).
The pathbuf interface also now appears in a couple of related additional places that were passing string/uio_seg pairs that were later fed into NDINIT. Update other call sites accordingly.
|
1.16 |
| 24-Jun-2010 |
hannken | Clean up vnode lock operations pass 2:
VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument.
Welcome to 5.99.32.
Discussed on tech-kern.
|
1.15 |
| 08-Jan-2010 |
pooka | branches: 1.15.2; 1.15.4; The VATTR_NULL/VREF/VHOLD/HOLDRELE() macros lost their will to live years ago when the kernel was modified to not alter ABI based on DIAGNOSTIC, and now just call the respective function interfaces (in lowercase). Plenty of mix'n match upper/lowercase has creeped into the tree since then. Nuke the macros and convert all callsites to lowercase.
no functional change
|
1.14 |
| 11-Jan-2009 |
christos | merge christos-time_t
|
1.13 |
| 19-Nov-2008 |
ad | Make the emulations, exec formats, coredump, NFS, and the NFS server into modules. By and large this commit:
- shuffles header files and ifdefs - splits code out where necessary to be modular - adds module glue for each of the components - adds/replaces hooks for things that can be installed at runtime
|
1.12 |
| 24-Apr-2008 |
ad | branches: 1.12.2; 1.12.8; 1.12.10; Merge proc::p_mutex and proc::p_smutex into a single adaptive mutex, since we no longer need to guard against access from hardware interrupt handlers.
Additionally, if cloning a process with CLONE_SIGHAND, arrange to have the child process share the parent's lock so that signal state may be kept in sync. Partially addresses PR kern/37437.
|
1.11 |
| 24-Apr-2008 |
ad | Network protocol interrupts can now block on locks, so merge the globals proclist_mutex and proclist_lock into a single adaptive mutex (proc_lock). Implications:
- Inspecting process state requires thread context, so signals can no longer be sent from a hardware interrupt handler. Signal activity must be deferred to a soft interrupt or kthread.
- As the proc state locking is simplified, it's now safe to take exit() and wait() out from under kernel_lock.
- The system spends less time at IPL_SCHED, and there is less lock activity.
|
1.10 |
| 21-Mar-2008 |
ad | branches: 1.10.2; 1.10.4; Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
|
1.9 |
| 25-Jan-2008 |
ad | branches: 1.9.6; Remove VOP_LEASE. Discussed on tech-kern.
|
1.8 |
| 08-Dec-2007 |
pooka | Remove cn_lwp from struct componentname. curlwp should be used from on. The NDINIT() macro no longer takes the lwp parameter and associates the credentials of the calling thread with the namei structure.
|
1.7 |
| 26-Nov-2007 |
pooka | branches: 1.7.2; Remove the "struct lwp *" argument from all VFS and VOP interfaces. The general trend is to remove it from all kernel interfaces and this is a start. In case the calling lwp is desired, curlwp should be used.
quick consensus on tech-kern
|
1.6 |
| 22-Sep-2007 |
dsl | branches: 1.6.6; Allocate the temporary path buffer before we acquire any locks. Only check PK_SUGID once. Still looks to have MP timing windows. Copy out p->p_limit->pl_corename with pl_lock held - it can be a shared string, and might be updated by another process. Part of fix for PR/3696 Add XXX note that check for MNT_NOCOREDUMP doesn't actually check the correct directory.
|
1.5 |
| 03-Apr-2007 |
hannken | branches: 1.5.8; 1.5.10; Remove calls to now obsolete vn_start_write() and vn_finished_write().
|
1.4 |
| 09-Mar-2007 |
ad | branches: 1.4.2; 1.4.4; - Make the proclist_lock a mutex. The write:read ratio is unfavourable, and mutexes are cheaper use than RW locks. - LOCK_ASSERT -> KASSERT in some places. - Hold proclist_lock/kernel_lock longer in a couple of places.
|
1.3 |
| 17-Feb-2007 |
pavel | branches: 1.3.2; Change the process/lwp flags seen by userland via sysctl back to the P_*/L_* naming convention, and rename the in-kernel flags to avoid conflict. (P_ -> PK_, L_ -> LW_ ). Add back the (now unused) LSDEAD constant.
Restores source compatibility with pre-newlock2 tools like ps or top.
Reviewed by Andrew Doran.
|
1.2 |
| 09-Feb-2007 |
ad | branches: 1.2.2; Merge newlock2 to head.
|
1.1 |
| 21-Oct-2006 |
ad | branches: 1.1.2; file kern_core.c was initially added on branch newlock2.
|
1.1.2.2 |
| 17-Nov-2006 |
ad | Checkpoint work in progress.
|
1.1.2.1 |
| 21-Oct-2006 |
ad | - Split core dump, LWP syscalls and signal syscalls into their own files. - Checkpoint work in progress on locking & per-LWP signals.
|
1.2.2.3 |
| 15-Apr-2007 |
yamt | sync with head.
|
1.2.2.2 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.2.2.1 |
| 27-Feb-2007 |
yamt | - sync with head. - move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
|
1.3.2.8 |
| 24-Mar-2008 |
yamt | sync with head.
|
1.3.2.7 |
| 04-Feb-2008 |
yamt | sync with head.
|
1.3.2.6 |
| 21-Jan-2008 |
yamt | sync with head
|
1.3.2.5 |
| 07-Dec-2007 |
yamt | sync with head
|
1.3.2.4 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.3.2.3 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.3.2.2 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.3.2.1 |
| 17-Feb-2007 |
yamt | file kern_core.c was added on branch yamt-lazymbuf on 2007-02-26 09:11:05 +0000
|
1.4.4.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.4.2.2 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.4.2.1 |
| 10-Apr-2007 |
ad | Sync with head.
|
1.5.10.3 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.5.10.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.5.10.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.5.8.3 |
| 09-Dec-2007 |
jmcneill | Sync with HEAD.
|
1.5.8.2 |
| 27-Nov-2007 |
joerg | Sync with HEAD. amd64 Xen support needs testing.
|
1.5.8.1 |
| 02-Oct-2007 |
joerg | Sync with HEAD.
|
1.6.6.3 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.6.6.2 |
| 27-Dec-2007 |
mjf | Sync with HEAD.
|
1.6.6.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.7.2.1 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.9.6.3 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.9.6.2 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.9.6.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.10.4.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.10.2.3 |
| 20-Nov-2008 |
christos | merge with head.
|
1.10.2.2 |
| 01-Nov-2008 |
christos | Sync with head.
|
1.10.2.1 |
| 29-Mar-2008 |
christos | Welcome to the time_t=long long dev_t=uint64_t branch.
|
1.12.10.1 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.12.8.1 |
| 13-Dec-2008 |
haad | Update haad-dm branch to haad-dm-base2.
|
1.12.2.3 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.12.2.2 |
| 11-Mar-2010 |
yamt | sync with head
|
1.12.2.1 |
| 04-May-2009 |
yamt | sync with head.
|
1.15.4.3 |
| 31-May-2011 |
rmind | sync with head
|
1.15.4.2 |
| 05-Mar-2011 |
rmind | sync with head
|
1.15.4.1 |
| 03-Jul-2010 |
rmind | sync with head
|
1.15.2.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.17.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.20.22.1 |
| 14-Jul-2014 |
msaitoh | Pull up following revision(s) (requested by maxv in ticket #1097): sys/kern/kern_core.c: revision 1.23 Fix a read-beyond-end string read.
|
1.20.16.1 |
| 18-May-2014 |
rmind | sync with head
|
1.20.14.1 |
| 14-Jul-2014 |
msaitoh | Pull up following revision(s) (requested by maxv in ticket #1097): sys/kern/kern_core.c: revision 1.23 Fix a read-beyond-end string read.
|
1.20.12.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.20.12.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.20.8.1 |
| 14-Jul-2014 |
msaitoh | Pull up following revision(s) (requested by maxv in ticket #1097): sys/kern/kern_core.c: revision 1.23 Fix a read-beyond-end string read.
|
1.20.2.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.22.2.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.23.4.1 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
1.24.22.3 |
| 10-Sep-2022 |
martin | Pull up following revision(s) (requested by mrg in ticket #1517):
sys/kern/kern_core.c: revision 1.37
avoid a GCC warning (happens on -current, -9, and -8.)
|
1.24.22.2 |
| 09-Sep-2022 |
martin | Pull up following revision(s) (requested by christos in ticket #1516):
sys/kern/kern_core.c: revision 1.36
Don't forget to free the cred we just held. Thanks to Chris J-D (chris at accessvector dot net)
While here, de-duplicate the mutex exit sequence.
|
1.24.22.1 |
| 11-Nov-2019 |
martin | Pull up following revision(s) (requested by pgoyette in ticket #413):
sys/kern/kern_core.c: revision 1.27 (patch) sys/kern/kern_sig.c: revision 1.377 (patch) sys/kern/kern_sig.c: revision 1.378 (patch) sys/kern/sys_sig.c: revision 1.50 sys/kern/sys_ptrace_common.c: revision 1.70 sys/kern/compat_stub.c: revision 1.16 sys/compat/common/kern_sig_16.c: revision 1.4 sys/kern/compat_stub.c: revision 1.17 sys/sys/compat_stub.h: revision 1.20 sys/sys/signalvar.h: revision 1.98 sys/sys/compat_stub.h: revision 1.21 sys/sys/signalvar.h: revision 1.99
Convert the sendsig_sigcontext_16 function pointer to use the new compat_hook mechanism. XXX Despite being a kernel<-->module abi change, this should be XXX pulled up to -9
-
Convert the coredump_vec modular function pointer to use the new compat_hook mechanism. XXX Should be pulled up to -9 despite the kernel <--> module ABI XXX change.
|
1.24.18.1 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.24.10.2 |
| 10-Sep-2022 |
martin | Pull up following revision(s) (requested by mrg in ticket #1761):
sys/kern/kern_core.c: revision 1.37
avoid a GCC warning (happens on -current, -9, and -8.)
|
1.24.10.1 |
| 09-Sep-2022 |
martin | Pull up following revision(s) (requested by christos in ticket #1760):
sys/kern/kern_core.c: revision 1.36
Don't forget to free the cred we just held. Thanks to Chris J-D (chris at accessvector dot net)
While here, de-duplicate the mutex exit sequence.
|
1.33.2.1 |
| 14-Dec-2020 |
thorpej | Sync w/ HEAD.
|
1.34.4.1 |
| 01-Aug-2021 |
thorpej | Sync with HEAD.
|
1.37.4.1 |
| 09-Aug-2023 |
martin | Pull up following revision(s) (requested by maya in ticket #316):
sys/arch/m68k/include/mutex.h: revision 1.13 sys/arch/arm/include/cpu.h: revision 1.125 sys/arch/sun68k/include/intr.h: revision 1.21 sys/arch/arm/include/mutex.h: revision 1.28 sys/sys/rwlock.h: revision 1.18 sys/arch/powerpc/include/mutex.h: revision 1.7 sys/arch/arm/include/mutex.h: revision 1.29 sys/arch/powerpc/include/mutex.h: revision 1.8 sys/uvm/uvm_param.h: revision 1.42 sys/sys/ksem.h: revision 1.16 sys/arch/x86/include/mutex.h: revision 1.10 sys/sys/proc.h: revision 1.372 sys/sys/ksem.h: revision 1.17 sys/arch/ia64/include/mutex.h: revision 1.8 sys/arch/evbarm/include/intr.h: revision 1.29 sys/sys/lua.h: revision 1.9 sys/arch/next68k/include/intr.h: revision 1.23 sys/arch/ia64/include/mutex.h: revision 1.9 sys/arch/hp300/include/intr.h: revision 1.35 sys/arch/hp300/include/intr.h: revision 1.36 sys/arch/sparc/include/cpu.h: revision 1.111 sys/arch/hppa/include/mutex.h: revision 1.16 sys/arch/vax/include/intr.h: revision 1.31 sys/arch/hppa/include/mutex.h: revision 1.17 sys/arch/news68k/include/intr.h: revision 1.28 sys/arch/hppa/include/mutex.h: revision 1.18 sys/arch/hppa/include/intr.h: revision 1.3 sys/arch/hppa/include/mutex.h: revision 1.19 sys/arch/hppa/include/intr.h: revision 1.4 sys/sys/sched.h: revision 1.92 sys/opencrypto/cryptodev.h: revision 1.51 sys/arch/vax/include/mutex.h: revision 1.20 sys/arch/sparc64/include/mutex.h: revision 1.10 sys/arch/ia64/include/sapicvar.h: revision 1.2 sys/arch/riscv/include/mutex.h: revision 1.5 sys/arch/amiga/dev/grfabs_cc.c: revision 1.39 sys/external/bsd/drm2/include/linux/idr.h: revision 1.11 sys/arch/riscv/include/mutex.h: revision 1.6 sys/ddb/files.ddb: revision 1.16 sys/arch/mac68k/include/intr.h: revision 1.32 share/man/man4/ddb.4: revision 1.203 sys/ddb/db_command.c: revision 1.183 sys/arch/mips/include/mutex.h: revision 1.10 sys/ddb/db_command.c: revision 1.184 sys/arch/x68k/include/intr.h: revision 1.22 sys/arch/sparc/include/psl.h: revision 1.51 sys/arch/or1k/include/mutex.h: revision 1.4 sys/arch/mips/include/mutex.h: revision 1.11 sys/arch/arm/xscale/pxa2x0_intr.h: revision 1.16 sys/arch/sparc64/include/cpu.h: revision 1.134 sys/arch/sparc/include/psl.h: revision 1.52 sys/arch/or1k/include/mutex.h: revision 1.5 sys/arch/mvme68k/include/intr.h: revision 1.22 sys/arch/luna68k/include/intr.h: revision 1.16 external/cddl/osnet/sys/sys/kcondvar.h: revision 1.6 sys/arch/sparc/include/mutex.h: revision 1.12 sys/arch/sparc/include/mutex.h: revision 1.13 sys/arch/usermode/include/mutex.h: revision 1.5 sys/arch/usermode/include/mutex.h: revision 1.6 sys/kern/kern_core.c: revision 1.38 usr.sbin/crash/Makefile: revision 1.49 sys/arch/amiga/include/intr.h: revision 1.23 sys/arch/alpha/include/mutex.h: revision 1.12 sys/arch/alpha/include/mutex.h: revision 1.13 sys/arch/evbarm/lubbock/sacc_obio.c: revision 1.16 sys/ddb/ddb.h: revision 1.6 sys/arch/sparc64/include/mutex.h: revision 1.8 sys/arch/sh3/include/mutex.h: revision 1.12 sys/arch/evbarm/lubbock/sacc_obio.c: revision 1.17 sys/ddb/db_syncobj.c: revision 1.1 sys/arch/vax/include/mutex.h: revision 1.18 sys/arch/sparc64/include/psl.h: revision 1.63 sys/arch/sparc64/include/mutex.h: revision 1.9 sys/arch/sh3/include/mutex.h: revision 1.13 sys/arch/evbarm/lubbock/obio.c: revision 1.13 sys/arch/atari/include/intr.h: revision 1.23 sys/ddb/db_syncobj.c: revision 1.2 sys/arch/vax/include/mutex.h: revision 1.19 sys/arch/evbarm/g42xxeb/obio.c: revision 1.14 sys/arch/evbarm/g42xxeb/obio.c: revision 1.15 sys/arch/cesfic/include/intr.h: revision 1.14 sys/ddb/db_syncobj.h: revision 1.1 sys/arch/x86/include/cpu.h: revision 1.134 sys/arch/evbarm/g42xxeb/obio.c: revision 1.16 sys/arch/cesfic/include/intr.h: revision 1.15 sys/arch/arm/xscale/pxa2x0_intr.c: revision 1.26 sys/sys/cpu_data.h: revision 1.54 sys/arch/m68k/include/mutex.h: revision 1.12 sys/arch/ia64/acpi/madt.c: revision 1.6
sys/rwlock.h: Make this more self-contained for bool.
machine/mutex.h: Sprinkle includes so this can be used by crash(8).
ddb: New `show all tstiles' command. Shows who's waiting for which locks and what the owner is up to.
Include psl.h for ipl_cookie_t if __MUTEX_PRIVATE
sys: Rip <sys/resourcevar.h> out of <uvm/uvm_param.h>.
And thus out of <sys/param.h>, which is exceedingly overused and fragile and delenda est.
Should fix (some) issues with the recent inclusion of machine/lock.h in various machine/mutex.h files.
arm/mutex.h: Need machine/intr.h, machine/lock.h.
For ipl_cookie_t and __cpu_simple_lock_t. evbarm/intr.h: Define ipl_cookie_t before including ARM_INTR_IMPL.
Otherwise arm/mutex.h doesn't work, due to a cyclic dependency which should really be fixed. opencrypto/cryptodev.h: Fix includes. - Move sys/condvar.h under #ifdef _KERNEL. - Add some other necessary includes and forward declarations. - Sort.
hp300/intr.h: Fix missing includes. linux/idr.h: Need <sys/mutex.h> for kmutex_t. amiga/intr.h: Don't define spl*() functions if !_KERNEL.
This is used by crash(8) now, and what's important is ipl_cookie_t. cesfic/intr.h: Expose ipl_cookie_t to userland for crash(8). cesfic/intr.h: Expose ipl_cookie_t to userland only with _KMEMUSER.
Probably not necessary but let's be a little more cautious about this.
atari/intr.h: Expose ipl_cookie_t with _KMEMUSER for crash(8).
arm/cpu.h: Need sys/param.h for COHERENCY_UNIT.
Nix machine/param.h -- not meant to be used directly, pulled in by sys/param.h.
Move the definition of ipl_cookie_t out of the kernel-only sections, some _KMEMUSER applications need it.
ddb: Cast pointer to uintptr_t first before db_expr_t.
hppa/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
luna68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
mvme68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
news68k/intr.h: Fix includes. Put some definitions under _KERNEL.
next68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
sys/ksem.h: Hack around fstat(8) abuse of _KERNEL.
sun68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
vax/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8).
x68k/intr.h: Put functions under _KERNEL so crash(8) can use this.
Make ipl_cookie_t visible for _KMEMUSER userland applications.
fix editor mishap in previous
Explicitly include <sys/mutex.h> for kmutex_t.
Replace kmutex_t * (which may be undefined here) with struct kmutex *, suggested by Taylor.
hp300/intr.h: Put most of this under #ifdef _KERNEL. Only ipl_cookie_t really needs to be exposed now, for crash(8).
mac68k/intr.h: Expose ipl_cookie_t to _KMEMUSER for crash(8). Make inclusion of sys/intr.h explicit for spl*.
fix hppa and vax builds.
machine/lock.h isn't necessary for __cpu_simple_lock_t, it's in sys/types.h. avoids cpu_data.h vs sched.h include order issues.
move the hppa ipl_t typedef with the moved usage of it. machine/mutex.h: Sprinkle sys/types.h, omit machine/lock.h.
Turns out machine/lock.h is not needed for __cpu_simple_lock_t, which always comes from sys/types.h. And, really, sys/types.h (or at least sys/stdint.h) is needed for uintN_t and uintptr_t.
ddb: Cast pointer to uintptr_t, then to db_expr_t. Avoids warnings about conversion between pointer and integer of different size on some architectures.
re-fix hppa builds.
this file uses __cpu_simple_lock(), not just the underlying type, so it does need machine/lock.h.
Break cycle by using `struct kmutex *' instead of `kmutex_t *'. sys/sched.h included sys/mutex.h which includes sys/intr.h which includes machine/intr.h which on cats includes arm/footbridge/footbridge_intr.h which includes arm/cpu.h which includes sys/cpu_data.h which includes sys/sched.h
But there was never any real need for sys/mutex.h in sys/sched.h, because it only uses pointers to the opaque struct kmutex. Cycle broken by using `struct kmutex *' instead of pulling in sys/mutex.h for the definition of kmutex_t.
Side effect: This revealed that sys/cpu_data.h needed sys/intr.h (which was pulled in accidentally by sys/mutex.h via sys/sched.h) for SOFTINT_COUNT. Also revealed some other machine/cpu.h header files were missing includes of sys/mutex.h for kmutex_t.
ia64: Need sys/types.h for u_int, vaddr_t; sys/mutex.h for kmutex_t.
explicitly include no longer implicitly included sys/mutex.h.
arm/xscale: Use sys/bitops.h fls32 - 1 instead of 31 - __builtin_clz. Sidesteps namespace collision with `#define bits ...' in net/zlib.c.
complete the previous - there were two calls to find_first_bit() to fix.
arm/xscale: Missed a spot with previous find_first_bit commit.
evbarm/g42xxeb: Fix off-by-one in previous.
The original find_first_bit(x) was 31 - __builtin_clz((uint32_t)x), which is equivalent to fls32(x) - 1, not to fls32(x).
Note that fls32 is 1-based and returns 0 for x=0.
|