History log of /src/sys/uvm/uvm_param.h |
Revision | | Date | Author | Comments |
1.42 |
| 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.41 |
| 23-Jul-2020 |
skrll | branches: 1.41.20; unifdef -U_LKM
|
1.40 |
| 25-Jun-2020 |
jdolecek | uvm_emap_size was removed a while ago
|
1.39 |
| 25-Jun-2020 |
mlelstv | If ubc_winshift gets constified, the extern declaration must be too.
|
1.38 |
| 22-Aug-2018 |
msaitoh | - Cleanup for dynamic sysctl: - Remove unused *_NAMES macros for sysctl. - Remove unused *_MAXID for sysctls. - Move CTL_MACHDEP sysctl definitions for m68k into m68k/include/cpu.h and use them on all m68k machines.
|
1.37 |
| 02-Jul-2017 |
joerg | branches: 1.37.4; 1.37.6; Export the guard size of the main thread via vm.guard_size. Add a complementary writable sysctl for the initial guard size of threads created via pthread_create. Let the existing attribut accessors do the right thing. Raise the default guard size for threads to 64KB.
|
1.36 |
| 23-Jun-2017 |
joerg | Recommit exec_subr.c revision 1.79: Always include a 1MB guard area beyond the end of stack. While ASLR will normally create a guard area as well, this provides a deterministic area for all binaries.
Mitigates the rest of CVE-2017-1000374 and CVE-2017-1000375 from Qualys.
Additionally, change VM_DEFAULT_ADDRESS_TOPDOWN to include user_stack_guard_size in the size reservation.
|
1.35 |
| 26-Sep-2015 |
christos | branches: 1.35.10; move CTL_VM constants to uvm_param.h, leaving a comment behind.
|
1.34 |
| 26-Feb-2014 |
matt | branches: 1.34.6; Add vm.min_address and vm.max_address which return VM_MIN_ADDRESS and VM_MAXUSER_ADDRESS.
|
1.33 |
| 25-Jan-2014 |
christos | delete VM_DEFAULT_ADDRESS and commentary which is no longer used/true.
|
1.32 |
| 25-Jan-2014 |
christos | provide proper defaults for topdown and bottomup allocation. XXX: Ports that provide their own VM_DEFAULT_ADDRESS() need to provide the two new flavors, otherwise they get the default ones now.
|
1.31 |
| 19-Mar-2012 |
uebayasi | branches: 1.31.2; 1.31.4; Expose vm_inherit/voff_t/pgoff_t to userland to fix build.
|
1.30 |
| 18-Mar-2012 |
uebayasi | Move base type definitions from uvm_extern.h to uvm_param.h so that other sources can easily include part of UVM headers without the whole uvm_extern.h (e.g. sys/vnode.h wants only uvm_object.h).
|
1.29 |
| 27-Feb-2012 |
he | __uvmexp_pagesize is needed also for non-modular builds, as witnessed by the otherwise failing sparc build.
|
1.28 |
| 23-Feb-2012 |
matt | Add "opt_modular.h" #define __uvmexp_pagesize if MIN_PAGE_SIZE != MAX_PAGE_SIZE && modular is defined
|
1.27 |
| 17-Feb-2012 |
matt | Make sure to export uvmexp_* if MODULAR is defined. Make the uvmexp_page* be a pointer to a const int as well as having the pointer be const as well.
|
1.26 |
| 29-Nov-2011 |
matt | branches: 1.26.2; Redefine ptoa() to be the inverse of atop. If you were using a 32-bit vaddr_t with 64-bit paddr_t and using managed addresses > 4GB, uvm_page_init would silently discard the upper 32-bits of the physical address possibly double mapping pages.
|
1.25 |
| 14-Nov-2010 |
uebayasi | branches: 1.25.8; Oops. Fix thinko.
|
1.24 |
| 14-Nov-2010 |
uebayasi | Platforms that dynamically set PAGE_{SIZE,MASK,SHIFT}, those values are saved in struct uvmexp. Expose only the relevant part for symbol users, so that they don't need to include the whole uvm(9) API.
|
1.23 |
| 13-Nov-2010 |
uebayasi | UVM constants should not rely on sys/lock.h.
|
1.22 |
| 20-Jul-2009 |
kiyohara | branches: 1.22.2; 1.22.4; Globalize uvm_emap_size. It use to calculate size of kernel page table. http://mail-index.netbsd.org/current-users/2009/07/13/msg009983.html
|
1.21 |
| 04-Aug-2006 |
he | branches: 1.21.58; 1.21.74; 1.21.78; Rearrange included headers and/or add include of <sys/types.h> and <sys/lock.h>, so that the mipsco port can build again, ref. http://mail-index.netbsd.org/port-mips/2006/08/04/0000.html Reviewed by thorpej
|
1.20 |
| 11-Dec-2005 |
christos | branches: 1.20.4; 1.20.8; merge ktrace-lwp.
|
1.19 |
| 04-Apr-2004 |
pk | branches: 1.19.12; Use maxdmap and maxsmap instead of MAXDSIZ and MAXSSIZ.
|
1.18 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
1.17 |
| 19-Apr-2003 |
christos | branches: 1.17.2; PR/2931: Eric Beltensen: Move boolean_t and TRUE/FALSE from uvm_param.h to types.h
|
1.16 |
| 09-Apr-2003 |
thorpej | Tweak the way the pagesize-related variables are set: * Remove DEFAULT_PAGE_SIZE. We don't use PAGE_SIZE the way Mach did. * In uvm_setpagesize(), if we are called with uvmexp.pagesize == 0, then assert that PAGE_SIZE != 0 (i.e. a constant), and set uvmexp.pagesize accordingly. * Provide defaults for MIN_PAGE_SIZE and MAX_PAGE_SIZE if not defined by <machine/vmparam.h>. If PAGE_SIZE is not a constant, MIN_PAGE_SIZE and MAX_PAGE_SIZE must be provided. * If MIN_PAGE_SIZE and MAX_PAGE_SIZE are not equal (i.e. PAGE_SIZE may not be a constant in all configurations), then ensure that PAGE_SIZE and friends expand to variable references for LKMs.
|
1.15 |
| 14-Mar-2003 |
matt | Nuke mem_size global since nothing in the kernel actually refers to it. (mmm lint).
|
1.14 |
| 20-Feb-2003 |
atatat | Introduce "top down" memory management for mmap()ed allocations. This means that the dynamic linker gets mapped in at the top of available user virtual memory (typically just below the stack), shared libraries get mapped downwards from that point, and calls to mmap() that don't specify a preferred address will get mapped in below those.
This means that the heap and the mmap()ed allocations will grow towards each other, allowing one or the other to grow larger than before. Previously, the heap was limited to MAXDSIZ by the placement of the dynamic linker (and the process's rlimits) and the space available to mmap was hobbled by this reservation.
This is currently only enabled via an *option* for the i386 platform (though other platforms are expected to follow). Add "options USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild your kernel to take advantage of this.
Note that the pmap_prefer() interface has not yet been modified to play nicely with this, so those platforms require a bit more work (most notably the sparc) before they can use this new memory arrangement.
This change also introduces a VM_DEFAULT_ADDRESS() macro that picks the appropriate default address based on the size of the allocation or the size of the process's text segment accordingly. Several drivers and the SYSV SHM address assignment were changed to use this instead of each one picking their own "default".
|
1.13 |
| 09-Dec-2001 |
chs | add {anon,file,exec}max as a upper bound on the amount of memory that will be allocated for the respective usage types when there is contention for memory.
replace "vnode" and "vtext" with "file" and "exec" in uvmexp field names and sysctl names.
|
1.12 |
| 05-Aug-2001 |
matt | Don't include <machine/pmap.h> and <machine/vmparam.h> if _KERNEL isn't defined. Include them explicitly in the few kvm_arch.c that need them.
|
1.11 |
| 14-Jul-2001 |
matt | Add support for kern.maxphys, vm.maxslp, vm.uspace (the later two for ps).
|
1.10 |
| 25-May-2001 |
chs | branches: 1.10.2; remove trailing whitespace.
|
1.9 |
| 02-May-2001 |
thorpej | Support dynamic sizing of the page color bins. We also support dynamically re-coloring pages; as machine-dependent code discovers the size of the system's caches, it may call uvm_page_recolor() with the new number of colors to use. If the new mumber of colors is smaller (or equal to) the current number of colors, then uvm_page_recolor() is a no-op.
The system defaults to one bucket if machine-dependent code does not initialize uvmexp.ncolors before uvm_page_init() is called.
Note that the number of color bins should be initialized to something reasonable as early as possible -- for many early memory allocations, we live with the consequences of the page choice for the lifetime of the boot.
|
1.8 |
| 29-Apr-2001 |
thorpej | Implement page coloring, using a round-robin bucket selection algorithm (Solaris calls this "Bin Hopping").
This implementation currently relies on MD code to define a constant defining the number of buckets. This will change reasonably soon (MD code will be able to dynamically size the bucket array).
|
1.7 |
| 21-Mar-2001 |
chs | use ubc_winshift instead of ubc_winsize in pmaps to set up kernel virtual space. the latter isn't initialized yet when the value is needed. fixes PR 12440.
|
1.6 |
| 15-Mar-2001 |
chs | eliminate the KERN_* error codes in favor of the traditional E* codes. the mapping is:
KERN_SUCCESS 0 KERN_INVALID_ADDRESS EFAULT KERN_PROTECTION_FAILURE EACCES KERN_NO_SPACE ENOMEM KERN_INVALID_ARGUMENT EINVAL KERN_FAILURE various, mostly turn into KASSERTs KERN_RESOURCE_SHORTAGE ENOMEM KERN_NOT_RECEIVER <unused> KERN_NO_ACCESS <unused> KERN_PAGES_LOCKED <unused>
|
1.5 |
| 09-Mar-2001 |
chs | add UBC memory-usage balancing. we track the number of pages in use for each of the basic types (anonymous data, executable image, cached files) and prevent the pagedaemon from reusing a given page if that would reduce the count of that type of page below a sysctl-setable minimum threshold. the thresholds are controlled via three new sysctl tunables: vm.anonmin, vm.vnodemin, and vm.vtextmin. these tunables are the percentages of pageable memory reserved for each usage, and we do not allow the sum of the minimums to be more than 95% so that there's always some memory that can be reused.
|
1.4 |
| 09-Jan-2001 |
pk | branches: 1.4.2; atop(): cast argument to `paddr_t' (instead of `u_long') to avoid truncating the address.
|
1.3 |
| 21-Dec-2000 |
chs | expose the tunables ubc_nwins and ubc_winsize in uvm_param.h. add the space used by UBC mappings to the initial PTE calculations for pmaps that do that (mips and alpha).
|
1.2 |
| 29-Nov-2000 |
simonb | Add a vm.uvmexp2 sysctl that uses a ABI-safe 'struct uvmexp_sysctl'.
|
1.1 |
| 26-Jun-2000 |
mrg | branches: 1.1.2; <vm/vm_param.h> -> <uvm/uvm_param.h>
|
1.1.2.7 |
| 27-Mar-2001 |
bouyer | Sync with HEAD.
|
1.1.2.6 |
| 12-Mar-2001 |
bouyer | Sync with HEAD.
|
1.1.2.5 |
| 18-Jan-2001 |
bouyer | Sync with head (for UBC+NFS fixes, mostly).
|
1.1.2.4 |
| 05-Jan-2001 |
bouyer | Sync with HEAD
|
1.1.2.3 |
| 08-Dec-2000 |
bouyer | Sync with HEAD.
|
1.1.2.2 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago
|
1.1.2.1 |
| 26-Jun-2000 |
bouyer | file uvm_param.h was added on branch thorpej_scsipi on 2000-11-20 18:12:05 +0000
|
1.4.2.4 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.4.2.3 |
| 24-Aug-2001 |
nathanw | Catch up with -current.
|
1.4.2.2 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.4.2.1 |
| 09-Apr-2001 |
nathanw | Catch up with -current.
|
1.10.2.3 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.10.2.2 |
| 25-Aug-2001 |
thorpej | Merge Aug 24 -current into the kqueue branch.
|
1.10.2.1 |
| 03-Aug-2001 |
lukem | update to -current
|
1.17.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.17.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.17.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.19.12.1 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.20.8.1 |
| 11-Aug-2006 |
yamt | sync with head
|
1.20.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.21.78.1 |
| 29-Nov-2011 |
matt | Redefine ptoa() to be the inverse of atop. If you were using a 32-bit vaddr_t with 64-bit paddr_t and using managed addresses > 4GB, uvm_page_init would silently discard the upper 32-bits of the physical address possibly double mapping pages.
|
1.21.74.1 |
| 23-Jul-2009 |
jym | Sync with HEAD.
|
1.21.58.1 |
| 19-Aug-2009 |
yamt | sync with head.
|
1.22.4.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.22.2.1 |
| 16-Nov-2010 |
uebayasi | Sync with HEAD.
|
1.25.8.2 |
| 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.25.8.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.26.2.4 |
| 05-Apr-2012 |
mrg | sync to latest -current.
|
1.26.2.3 |
| 04-Mar-2012 |
mrg | sync to latest -current.
|
1.26.2.2 |
| 24-Feb-2012 |
mrg | sync to -current.
|
1.26.2.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.31.4.1 |
| 18-May-2014 |
rmind | sync with head
|
1.31.2.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.31.2.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.34.6.2 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.34.6.1 |
| 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.35.10.1 |
| 31-Aug-2017 |
bouyer | Pull up following revision(s) (requested by joerg in ticket #234): sys/arch/amd64/include/vmparam.h: revision 1.43 sys/kern/exec_subr.c: revision 1.79 lib/libpthread/pthread_int.h: revision 1.94 sys/arch/mips/include/vmparam.h: revision 1.58 sys/arch/mips/include/vmparam.h: revision 1.59 lib/libpthread/TODO: revision 1.19 sys/arch/powerpc/include/vmparam.h: revision 1.20 sys/arch/riscv/include/vmparam.h: revision 1.2 sys/arch/riscv/include/vmparam.h: revision 1.3 sys/arch/i386/include/vmparam.h: revision 1.85 tests/lib/libpthread/t_join.c: revision 1.9 sys/uvm/uvm_meter.c: revision 1.66 sys/uvm/uvm_param.h: revision 1.36 sys/kern/exec_subr.c: revision 1.80 sys/uvm/uvm_param.h: revision 1.37 sys/kern/exec_subr.c: revision 1.81 sys/kern/exec_subr.c: revision 1.82 lib/libpthread/pthread_attr_getguardsize.3: revision 1.4 lib/libpthread/pthread.c: revision 1.148 lib/libpthread/pthread_attr.c: revision 1.17 sys/arch/amd64/include/vmparam.h: revision 1.42 Always include a 1MB guard area beyond the end of stack. While ASLR will normally create a guard area as well, this provides a deterministic area for all binaries. Mitigates the rest of CVE-2017-1000374 and CVE-2017-1000375 from Qualys. Revert for the moment, creates problems on i386. Recommit exec_subr.c revision 1.79: Always include a 1MB guard area beyond the end of stack. While ASLR will normally create a guard area as well, this provides a deterministic area for all binaries. Mitigates the rest of CVE-2017-1000374 and CVE-2017-1000375 from Qualys. Additionally, change VM_DEFAULT_ADDRESS_TOPDOWN to include user_stack_guard_size in the size reservation. Update VM_DEFAULT_ADDRESS32_TOPDOWN to include guard area. Export the guard size of the main thread via vm.guard_size. Add a complementary writable sysctl for the initial guard size of threads created via pthread_create. Let the existing attribut accessors do the right thing. Raise the default guard size for threads to 64KB.
|
1.37.6.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.37.4.1 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.41.20.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.
|