summaryrefslogtreecommitdiff
path: root/vm/vm_map.c
AgeCommit message (Collapse)Author
2019-06-08vm/vm_map: fix vm_map_infoRichard Braun
2019-05-22Add a log print function type for information reportingRichard Braun
This type allows the use of either printf-based or log-based functions when reporting information.
2018-07-30Rework assertive functionsRichard Braun
Instead of combining assertions and checking into single functions, rework those into pure checking functions usable with assert(). Those functions were introduced because of warnings about unused functions/variables caused by an earlier implementation of assert().
2018-07-25kern/{fmt,shell}: update from upstreamRichard Braun
The shell module has been "objectified" and now supports multiple instances with shareable command sets.
2018-02-24kern/{cbuf,fmt,hash,hlist,list,plist,rdxtree,shell,slist}: update from upstreamRichard Braun
Note that this commit changes the order of some list operations without triggering warnings.
2018-02-24New errno.h standard headerRichard Braun
Use standard errno codes. This change also adds strerror to string.h.
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-07-13Switch to initialization operationsRichard 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-24Make shell command descriptions consistentRichard Braun
2017-06-24vm/vm_map: implement the vm_map_info shell commandRichard Braun
2017-05-30Move assert.h to the include directoryRichard Braun
This turns assert.h into a standard header.
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-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-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-13Replace unsigned long with uintptr_t for integer/pointer conversionsRichard Braun
This is mostly done for the machine-independent part.
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.
2016-12-09Force brackets around one-line conditional statementsRichard Braun
This change was done using astyle, with a few manual editing here and there.
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.
2014-11-17kern/kmem: minor interface updatesRichard Braun
Make allocation functions accept and return pointers instead of integers for convenience.
2014-11-17vm/vm_map: minor interface updatesRichard Braun
Update interface so that it's closer to the standard mmap() call. Fix some offset declarations as uint64_t.
2014-05-08x86/pmap: per-CPU page tablesRichard Braun
Although currently not very useful since all pmap operations are global, this change enables the precise targeting of processors when maintaining the consistency of physical maps. It is essential to a scalable virtual memory system where non-overlapping mapping operations can be processed concurrently. It also temporarily removes some functionalities such as the ability to manipulate non-kernel pmaps and lazy TLB invalidation. These will be added again in the future.
2014-01-02Declare variables as read mostly where appropriateRichard Braun
2013-07-20x86/pmap: remove kernel-specific functionsRichard Braun
Remove the pmap_klimit, pmap_kgrow, pmap_kenter and pmap_kremove functions from the pmap interface. The regular pmap_enter and pmap_remove functions are now used instead. The kernel physical map is handled almost exactly like user physical maps, except shared root page table pages need special care. The pmap_kenter and pmap_kremove functions still exist but are private to the pmap implementation.
2013-07-10vm/vm_page: introduce page usage typesRichard Braun
2013-07-09vm/vm_phys: merge into the vm_page moduleRichard Braun
The original idea was to separate physical page allocation from page list management, but it doesn't make much sense any more.
2013-07-03x86/pmap: change pmap_kenter to pass protectionRichard Braun
2013-06-28x86/pmap: replace pmap_kupdate with pmap_updateRichard Braun
Similar to pmap_protect and pmap_extract, pmap_update is meant to handle both kernel and regular pmap updates.
2013-06-28x86/pmap: replace pmap_kextract with pmap_extractRichard Braun
As it was done for pmap_protect, replace a kernel-specific call with one that can handle both the kernel and regular pmaps. The new function isn't complete yet and cannot handle physical maps that aren't the kernel pmap or the currently loaded pmap.
2013-06-15vm/vm_map: rework flagsRichard Braun
Add vm/vm_adv.h for VM_ADV_xxx advice macros, and directly use VM_{ADV,INHERIT,PROT}_xxx macros in the "packed" format used for mapping requests and in map entries. This allows simpler comparisons between stored flags and user provided values.
2013-06-15vm/vm_map: advice macros updateRichard Braun
Use slightly shorter names, add WILLNEED and DONTNEED, and update users.
2013-06-15vm/vm_map: fix typoRichard Braun
2013-06-14vm/vm_map: fix map entry mergingRichard Braun
Map entry merging would not consider requests with objects, but it would merge two neighbor entries without checking their object. Make checking the object of both entries and requests part of the generic compatibility test.
2013-04-19vm/vm_map: make vm_map_info lock VM mapRichard Braun
2013-04-18vm/vm_map: fix lookup cache handlingRichard Braun
2013-04-18vm/vm_map: fix map entry clippingRichard Braun
2013-04-17vm/vm_map: serialize access to the kentry slabs listRichard Braun
2013-04-17vm/vm_map: replace spin locks with mutexesRichard Braun
2012-12-28x86/pmap: reintroduce the kernel pmapRichard Braun
It is expected some future processes will require the kernel to have its own separate low level address space instead of always using the high part of user tasks. It also simplifies collecting statistics and managing other kernel specific data in a generic way. In addition, this change removes some duplicated boot data and makes boot code use more virtual to physical translations.
2012-12-24vm/vm_map: create pmap for new VM mapsRichard Braun
2012-12-22x86/pmap: rename pmap_growkernel to pmap_kgrowRichard Braun
2012-12-18vm/vm_map: VM map creationRichard Braun
2012-12-11vm/vm_map: add locksRichard Braun