Age | Commit message (Collapse) | Author |
|
This type allows the use of either printf-based or log-based functions
when reporting information.
|
|
|
|
|
|
Instead of mixing standard headers and internal redefinitions of standard
types, completely rely on the compiler for what is guaranteed for a free
standing environment. This results in the removal of kern/stddef.h and
kern/stdint.h. The kern/types.h header is reintroduced for the different
(and saner) purpose of defining types not specified in standard C,
namely ssize_t for now.
|
|
Allocating slabs from the page allocator only is likely to cause
fragmentation. Instead, allocate larger-than-page slabs from
kernel virtual memory, and page-sized slabs from the page allocator.
|
|
The main impact of the direct physical mapping on the kmem module is the
slab size computation. The page allocator requires the allocation size
to be a power-of-two above the page size since it uses the buddy memory
allocation algorithm.
Custom slab allocation functions are no longer needed since the only
user was the kentry area, which has been removed recently.
The KMEM_CACHE_NOCPUPOOL flag is also no longer needed since CPU pools,
which are allocated from a kmem cache, can now always be allocated out
of the direct physical mapping.
|
|
Make allocation functions accept and return pointers instead of integers
for convenience.
|
|
|
|
As it's done for other modules, this separation makes the public interface
easy to identify.
|
|
|
|
|
|
Instead of using a red-black tree, rely on the VM system to store kmem
specific private data.
|
|
|
|
|
|
Don't encourage anyone to use non reclaimable pools of resources, it's
a Bad Thing To Do.
|
|
This change adds a preallocated table that describes all the slabs in
the kentry area. This makes it possible to release kernel map entry
slabs back. Unused slabs are inserted in a free list for fast
allocation.
|
|
There are no precise enough criteria to justify the separation of these
two directories.
|
|
|