haiku/headers/private/kernel
Michael Lotz df7096a4aa * Added malloc_nogrow() function that does allocation without triggering or
waiting for a heap grow.
* Use that nogrow version in the VM code to avoid a deadlock with the address
  space lock when a grow operation would try to create an area while a malloc
  happened from such a function in the VM.
* When waiting for a grow to happen, notify the waiting thread from the grower
  also if it failed to allocate a new heap. Otherwise a thread would just sit
  there and wait until another thread requested growing too and that one
  succeeded (or just forever in the worst case).
* Make the dedicated grow heap growable too. If the current grow heaps run low
  on memory it will instruct the grower to allocate a new grow heap. This
  reduces the likelyhood of running out of memory with no way to grow to a
  minimum. As the growing is done asynchronously it is still possible to
  happen, but it is highly unlikely as the grow heap is solely used to
  allocate memory in the process of creating new heap areas and it will even
  try using normal public memory if the dedicated memory has run out.
* Reduced the dedicated grow heap from 2 to 1MB. As it can now grow itself, it
  doesn't need to last so long.
* Extract heap creation into it's own function that does area creation and heap
  attach and use this function for growing normal and grow heaps.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26009 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-18 19:55:51 +00:00
..
arch Remove PAGE_SIZE define for ppc and m68k from kernel private headers. It's not needed there and should be in public header anyway. 2008-06-11 01:16:48 +00:00
boot * The boot loader now passes on its EDID info to the kernel, and that will 2008-06-03 15:17:59 +00:00
disk_device_manager * Introduced new header directory headers/private/system which is supposed 2008-05-14 03:55:16 +00:00
fs * Integration of the new driver architecture. 2008-05-26 16:52:27 +00:00
platform/openfirmware Added some PPC support to the PCI bus manager. We scan the Open Firmware 2006-01-26 15:21:31 +00:00
posix * Introduced new header directory headers/private/system which is supposed 2008-05-14 03:55:16 +00:00
slab * Temporarily switched to a recursive lock for the depot. 2008-02-02 12:12:54 +00:00
util * Replaced all instances of benaphores in the kernel code by mutexes. 2008-05-29 02:08:23 +00:00
block_cache.h First step into a new block allocation strategy for the block_cache 2005-05-13 18:18:28 +00:00
boot_device.h Moved declaration of gBootDevice into its own header. 2005-12-12 16:06:33 +00:00
boot_item.h * Changed get_boot_item() API: it now also can retrieve the size of the boot 2008-03-30 11:01:41 +00:00
boot_splash.h Patch by Philippe Saint-Pierre: 2008-04-05 21:15:43 +00:00
cbuf.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
commpage.h * Introduced new header directory headers/private/system which is supposed 2008-05-14 03:55:16 +00:00
condition_variable.h axeld + bonefish: 2008-05-17 10:21:37 +00:00
console.h Made the header C++ safe. 2005-05-26 09:08:54 +00:00
cpu.h yet another fix for #1018, which has at this point blossomed into a reorg of how AP cpus are initialized. 2007-02-19 00:11:24 +00:00
debug_paranoia.h Fixed build for paranoia disabled globally, but enabled for individual 2008-04-29 18:42:31 +00:00
debug.h * Introduced pipes in the kernel debugger. The syntax is similar to 2008-06-01 02:25:00 +00:00
debugger_keymaps.h Patch by Olivier Coursiere that removes unneeded special characters. 2008-06-08 21:48:23 +00:00
elf_priv.h * struct vnode is an opaque type now, removed void* where it was used incorrectly. 2007-10-06 15:33:12 +00:00
elf.h Added support for userland symbol lookup in "sc" and "call". Having 2008-01-19 16:33:03 +00:00
file_cache.h * struct vnode is an opaque type now, removed void* where it was used incorrectly. 2007-10-06 15:33:12 +00:00
frame_buffer_console.h Some work in progress of the MTRR support. Shouldn't do any harm yet :-) 2005-12-13 00:06:52 +00:00
generic_syscall.h * Introduced new header directory headers/private/system which is supposed 2008-05-14 03:55:16 +00:00
heap.h * Added malloc_nogrow() function that does allocation without triggering or 2008-06-18 19:55:51 +00:00
int.h Changed the way handlers for edge triggered interrupt are called: now, we 2006-04-30 13:56:21 +00:00
kdevice_manager.h * Integration of the new driver architecture. 2008-05-26 16:52:27 +00:00
kdriver_settings.h * Initialize all static mutexes in the kernel through a MUTEX_INITIALIZER() 2008-06-05 23:19:27 +00:00
kernel_daemon.h Patch by Vasilis Kaoutsis: Fixed typo in comment. 2008-05-15 12:08:13 +00:00
kernel.h * Introduced new header directory headers/private/system which is supposed 2008-05-14 03:55:16 +00:00
kimage.h Added a image_debug_lookup_user_symbol_address() that one day may find symbol names 2005-11-04 17:25:58 +00:00
kmodule.h Added function prototypes for the kernel private load_module() and unload_module() calls. 2005-01-18 02:34:00 +00:00
kscheduler.h Changed the boot procedure a bit. 2005-10-25 16:59:12 +00:00
ksignal.h * Implemented sigwait(). 2008-04-01 12:15:14 +00:00
ksyscalls.h Also include info about the syscall return type in the 2008-02-07 16:03:00 +00:00
lock.h Added macros for static initialization of mutexes, recursive locks, and 2008-05-29 02:10:10 +00:00
messaging.h Added _user_unregister_messaging_service(). Fixed second send_message() proto. 2005-01-24 01:19:03 +00:00
MessagingServiceDefs.h Removed obsolete struct. 2005-01-30 01:11:33 +00:00
Notifications.h bonefish+axeld: 2007-08-01 14:48:44 +00:00
port.h Added experimental public API get_port_message_info_etc(). It is similar 2008-04-17 17:46:02 +00:00
real_time_clock.h Applied patch by Julun: time computations based on an algorithm by Fliegel, 2007-10-14 17:27:44 +00:00
safemode.h * Introduced new header directory headers/private/system which is supposed 2008-05-14 03:55:16 +00:00
sem.h Added support for POSIX semaphores (the ones from the XSI extension 2008-05-06 03:39:36 +00:00
smp.h * Added optional spinlock contention measurement feature. Enabled when 2008-06-02 02:04:12 +00:00
syscall_restart.h * Removed SyscallRestartWrapper comparison operators. They are not 2008-04-12 17:18:31 +00:00
system_info.h Added Haiku revision number to the kernel (same mechanism as used for 2007-05-19 15:36:32 +00:00
team.h * For each userland team the kernel creates an area in the userland 2008-05-11 16:25:35 +00:00
thread_types.h Added new kernel thread "undertaker" which gets rid of dead thread 2008-05-29 14:28:31 +00:00
thread.h * Introduced new header directory headers/private/system which is supposed 2008-05-14 03:55:16 +00:00
timer.h * cancel_timer(): 2008-04-22 15:29:22 +00:00
tracing.h * Fixed kernel tracing for gcc 4. The ABI changed in a way that isn't 2008-05-17 18:59:19 +00:00
user_atomic.h renamed atomic_read() into atomic_get() (since we already have atomic_set(), but not a atomic_write()) 2003-08-31 01:21:56 +00:00
user_debugger.h Merged branch haiku/branches/developer/bonefish/optimization revision 2008-01-11 00:36:44 +00:00
usergroup.h * Implemented some basics for supplementary groups support: 2008-03-30 00:08:13 +00:00
vfs.h * Introduced new header directory headers/private/system which is supposed 2008-05-14 03:55:16 +00:00
vm_address_space.h * vm.h no longer includes vm_types.h - only those that actually need access 2007-09-27 12:21:33 +00:00
vm_cache.h * vm.h no longer includes vm_types.h - only those that actually need access 2007-09-27 12:21:33 +00:00
vm_low_memory.h * register_low_memory_handler() was called too early by several kernel 2007-09-29 15:46:40 +00:00
vm_page.h * Added vm_page_write_modified_page_range(), which is similar to 2008-05-22 21:51:12 +00:00
vm_priv.h * Reworked stealing pages: the page thief thread is gone now, 2007-10-11 08:01:18 +00:00
vm_translation_map.h * Mapping a page might actually need memory - since we usually have locks that 2007-10-06 11:18:21 +00:00
vm_types.h * Removed old mutex implementation and renamed cutex to mutex. 2008-05-01 22:07:36 +00:00
vm.h * Added vm_page_write_modified_page_range(), which is similar to 2008-05-22 21:51:12 +00:00
wait_for_objects.h * Removed select_sync::lock. The only thread that was still locking was 2008-04-30 16:12:20 +00:00