summaryrefslogtreecommitdiff
path: root/vm
AgeCommit message (Collapse)Author
2017-12-03Revert "Make assert have no side effects"Richard Braun
This reverts commit 9c7906d8ad6ebec014b22b8757d916e9cad7d6d3.
2017-10-04Fix some header inclusionsRichard Braun
2017-09-21New build systemRichard Braun
The new build system, called xbuild, is a minimalistic kbuild-like make-based build system, also using kconfig for scalable configurations.
2017-09-07Use accessors when referring to global kernel objectsRichard Braun
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.
2017-09-06vm: rename min/max macros to start/end variantsRichard Braun
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.
2017-09-02Rework the build systemRichard Braun
2017-09-02Make assert have no side effectsRichard Braun
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.
2017-08-04vm/vm_page: rename vm_page_atop and vm_page_ptoaRichard Braun
Talk about "bytes" instead of "addresses" for better clarity.
2017-07-13Switch to initialization operationsRichard Braun
2017-07-02vm/vm_kmem: create a VM object to track mapped kernel pagesRichard Braun
2017-07-02vm/vm_object: new moduleRichard Braun
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.
2017-06-25Use the C11 alignas and noreturn macrosRichard Braun
2017-06-25Remove the param moduleRichard Braun
Move the page properties into the new x86/page module, and the virtual memory layout macros into the x86/pmap module.
2017-06-25Move physical memory properties into the new x86/pmem moduleRichard Braun
2017-06-24Make shell command descriptions consistentRichard Braun
2017-06-24vm/vm_map: implement the vm_map_info shell commandRichard Braun
2017-06-24vm/vm_page: implement the vm_page_info shell commandRichard Braun
2017-06-22kern/macros: move the __read_mostly macro hereRichard Braun
2017-06-11vm/vm_page: fix debug messageRichard Braun
2017-06-10Use log functions where appropriateRichard Braun
2017-05-30Move assert.h to the include directoryRichard Braun
This turns assert.h into a standard header.
2017-04-29Revert "Remove unneeded quotes when using #error"Richard Braun
This reverts commit b1aa94d0c7dba4138f651e6b081c1a0055ea8d54. New occurrences of #error are also affected by this commit.
2017-04-29New stdio.h standard headerRichard Braun
Make kernel code obtain definitions for the printf family of functions through the inclusion of the standard stdio.h header.
2017-04-29kern/printk: rename to printfRichard Braun
The printk functions are close enough to the printf ones to bear the same names.
2017-03-14Use the X15 namespace consistently for macros defined by autoconfRichard Braun
2017-03-13Remove unneeded quotes when using #errorRichard Braun
2017-02-04Fix printf-format related warningsRichard Braun
2017-02-04Clean up compilationRichard Braun
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.
2017-02-04kern/types: split into module-specific type headersRichard Braun
Using a single header for all types causing inclusion circular dependencies isn't very elegant and doesn't scale.
2017-01-31vm/vm_map: remove unused function vm_map_prevRichard Braun
2017-01-30vm/vm_map: fix map entry linkingRichard Braun
I was actually not satisfied enough with the "solution" of commit a90d38274ec139ea8d593373cecccbc59e8fb3f6, so let's really fix this issue.
2017-01-27vm/vm_map: fix map entry clippingRichard Braun
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.
2017-01-27vm/vm_kmem: return NULL instead of 0 where appropriateRichard Braun
2017-01-26kern/rdxtree: reintroduce the rdxtree moduleRichard Braun
2017-01-13Replace unsigned long with uintptr_t for integer/pointer conversionsRichard Braun
This is mostly done for the machine-independent part.
2017-01-12Rename VM page segments to zonesRichard Braun
The segments are modeled after the Linux zones, so let's just use that name. Besides, it avoids confusion with x86 segments.
2017-01-11vm/vm_page: provide accessors to private dataRichard Braun
Make per-page private data generic, provide accessors, and make the slab allocator use them.
2017-01-11kern/kmem: rework slab allocationRichard Braun
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.
2017-01-09x86/pmap: report pmap update failuresRichard Braun
Update the test_vm_page_fill module accordingly. The vm_kmem module needs to be reworked in order to correctly handle failures.
2017-01-09vm/vm_page: do not panic on pmap page allocation failureRichard Braun
2016-12-09Force brackets around one-line conditional statementsRichard Braun
This change was done using astyle, with a few manual editing here and there.
2016-09-02vm_page: make details reporting conditionalRichard Braun
2016-09-02vm/vm_page: update copyright noticeRichard Braun
2016-09-02vm/vm_page: change segment loadingRichard Braun
Split segment loading in two steps, namely segment loading and heap loading. Explicitely handle segments with no heap.
2016-02-02vm/vm_page: add missing error checkingRichard Braun
2015-11-22vm_page: remove unused headerRichard Braun
2014-12-10vm/vm_kmem: replace call to pmap_extractRichard Braun
2014-12-10vm/vm_kmem: remove vm_kmem_lookup_pageRichard Braun
This function is now unused, and there shouldn't be any need for it in the future.
2014-12-10vm/vm_kmem: directmap updateRichard Braun
Now that a direct physical mapping is available, memory can be allocated out of it without the need of an early virtual memory allocator.
2014-12-10vm/vm_map: remove the kentry areaRichard Braun
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.