Age | Commit message (Collapse) | Author |
|
This reverts commit 9c7906d8ad6ebec014b22b8757d916e9cad7d6d3.
|
|
|
|
The new build system, called xbuild, is a minimalistic kbuild-like
make-based build system, also using kconfig for scalable configurations.
|
|
The kernel_map/kernel_pmap/kernel_task/etc... names were reused as they
were in the Mach source code. They've been a (mostly harmless) long-standing
violation of the coding rules.
|
|
The real problem actually only applies to "max" names, for which the
value is ambiguous, as "max" usually implies the value is included in
the associated range, which is not the case for these macros.
|
|
|
|
This makes sure symbols referenced by assert uses may not be generated
if unused. The recently introduced __unused macro is used to suppress
compiler warnings resulting from this change.
|
|
Talk about "bytes" instead of "addresses" for better clarity.
|
|
|
|
|
|
Start a very simple VM object implementation for page tracking only.
The locking protocol is still not well defined, especially for pages.
The only purpose of the current code is to allow the kernel virtual
memory interface to release pages on physical mapping creation errors.
|
|
|
|
Move the page properties into the new x86/page module, and the virtual
memory layout macros into the x86/pmap module.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This turns assert.h into a standard header.
|
|
This reverts commit b1aa94d0c7dba4138f651e6b081c1a0055ea8d54.
New occurrences of #error are also affected by this commit.
|
|
Make kernel code obtain definitions for the printf family of functions
through the inclusion of the standard stdio.h header.
|
|
The printk functions are close enough to the printf ones to bear the
same names.
|
|
|
|
|
|
|
|
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.
|
|
Using a single header for all types causing inclusion circular
dependencies isn't very elegant and doesn't scale.
|
|
|
|
I was actually not satisfied enough with the "solution" of commit
a90d38274ec139ea8d593373cecccbc59e8fb3f6, so let's really fix this
issue.
|
|
The vm_map_link function has a very complex and bug-prone interface, and
bugs were bound to happen there. This map implementation was always meant
to be temporary anyway, so "fix" the problem at the calling sites only.
|
|
|
|
|
|
This is mostly done for the machine-independent part.
|
|
The segments are modeled after the Linux zones, so let's just use that
name. Besides, it avoids confusion with x86 segments.
|
|
Make per-page private data generic, provide accessors, and make the
slab allocator use them.
|
|
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.
|
|
Update the test_vm_page_fill module accordingly. The vm_kmem module
needs to be reworked in order to correctly handle failures.
|
|
|
|
This change was done using astyle, with a few manual editing here and
there.
|
|
|
|
|
|
Split segment loading in two steps, namely segment loading and heap
loading. Explicitely handle segments with no heap.
|
|
|
|
|
|
|
|
This function is now unused, and there shouldn't be any need for it in
the future.
|
|
Now that a direct physical mapping is available, memory can be allocated
out of it without the need of an early virtual memory allocator.
|
|
One of the side effects of a direct physical mapping is that it makes
the kentry area, an area of virtual memory of fixed size reserved at
boot time for kernel map entries, irrelevant.
|