mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
mm: rename vmm api to mm
This commit is contained in:
@@ -62,7 +62,7 @@ void uacpi_kernel_free(void *ptr) {
|
||||
|
||||
void *uacpi_kernel_map(uacpi_phys_addr physical, uacpi_size length) {
|
||||
uintmax_t pageoffset = (uintptr_t)physical % PAGE_SIZE;
|
||||
void *virt = vmm_map(NULL, ROUND_UP(length + pageoffset, PAGE_SIZE), VMM_FLAGS_PHYSICAL,
|
||||
void *virt = mm_map(NULL, ROUND_UP(length + pageoffset, PAGE_SIZE), MM_RANGE_FLAGS_PHYSICAL,
|
||||
ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_WRITE | ARCH_MMU_FLAGS_NOEXEC,
|
||||
(void*)ROUND_DOWN(physical, PAGE_SIZE));
|
||||
|
||||
@@ -74,7 +74,7 @@ void uacpi_kernel_unmap(void *ptr, uacpi_size length) {
|
||||
uintmax_t pageoffset = (uintptr_t)ptr % PAGE_SIZE;
|
||||
|
||||
uintptr_t addr = (uintptr_t)ptr;
|
||||
vmm_unmap((void*)ROUND_DOWN(addr, PAGE_SIZE), ROUND_UP(length + pageoffset, PAGE_SIZE), 0);
|
||||
mm_unmap((void*)ROUND_DOWN(addr, PAGE_SIZE), ROUND_UP(length + pageoffset, PAGE_SIZE), 0);
|
||||
}
|
||||
|
||||
uacpi_status uacpi_kernel_raw_memory_read(uacpi_phys_addr address, uacpi_u8 width, uacpi_u64 *out) {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <kernel/alloc.h>
|
||||
#include <kernel/devfs.h>
|
||||
#include <string.h>
|
||||
#include <kernel/vmm.h>
|
||||
#include <kernel/mm.h>
|
||||
#include <kernel/usercopy.h>
|
||||
|
||||
#define DISK_READ(desc, it, lba, size) (desc)->read(desc->private, it, lba, size)
|
||||
@@ -200,7 +200,7 @@ static int registerdesc(blockdesc_t *desc, char *name) {
|
||||
|
||||
static int detectpart(blockdesc_t *desc) {
|
||||
// read first two sectors
|
||||
void *sects = vmm_map(NULL, desc->blocksize * 2, VMM_FLAGS_ALLOCATE, MAP_FLAGS, NULL);
|
||||
void *sects = mm_map(NULL, desc->blocksize * 2, MM_RANGE_FLAGS_ALLOCATE, MAP_FLAGS, NULL);
|
||||
__assert(sects);
|
||||
__assert(disk_read_direct(desc, sects, 0, 2) == 0);
|
||||
|
||||
@@ -216,7 +216,7 @@ static int detectpart(blockdesc_t *desc) {
|
||||
else if (bootmagic == MBR_BOOT_MAGIC)
|
||||
ret = PART_MBR;
|
||||
|
||||
vmm_unmap(sects, desc->blocksize * 2, 0);
|
||||
mm_unmap(sects, desc->blocksize * 2, 0);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -241,7 +241,7 @@ static bool gptentryvalid(blockdesc_t *desc, gptheader_t *header, gptentry_t *en
|
||||
|
||||
static void dogpt(blockdesc_t *desc, char *name) {
|
||||
// get header
|
||||
void *lba1 = vmm_map(NULL, desc->blocksize, VMM_FLAGS_ALLOCATE, MAP_FLAGS, NULL);
|
||||
void *lba1 = mm_map(NULL, desc->blocksize, MM_RANGE_FLAGS_ALLOCATE, MAP_FLAGS, NULL);
|
||||
__assert(lba1);
|
||||
__assert(disk_read_direct(desc, lba1, 1, 1) == 0);
|
||||
gptheader_t *header = lba1;
|
||||
@@ -249,7 +249,7 @@ static void dogpt(blockdesc_t *desc, char *name) {
|
||||
// get partition table
|
||||
size_t tablebytesize = header->entrybytesize * header->entrycount;
|
||||
size_t tablelbasize = ROUND_UP(tablebytesize, desc->blocksize) / desc->blocksize;
|
||||
void *tablebuffer = vmm_map(NULL, tablelbasize * desc->blocksize, VMM_FLAGS_ALLOCATE, MAP_FLAGS, NULL);
|
||||
void *tablebuffer = mm_map(NULL, tablelbasize * desc->blocksize, MM_RANGE_FLAGS_ALLOCATE, MAP_FLAGS, NULL);
|
||||
__assert(tablebuffer);
|
||||
__assert(disk_read_direct(desc, tablebuffer, header->entryarraylbastart, tablelbasize) == 0);
|
||||
|
||||
@@ -277,13 +277,13 @@ static void dogpt(blockdesc_t *desc, char *name) {
|
||||
__assert(registerdesc(partdesc, partname) == 0);
|
||||
}
|
||||
|
||||
vmm_unmap(tablebuffer, tablelbasize * desc->blocksize, 0);
|
||||
vmm_unmap(lba1, desc->blocksize, 0);
|
||||
mm_unmap(tablebuffer, tablelbasize * desc->blocksize, 0);
|
||||
mm_unmap(lba1, desc->blocksize, 0);
|
||||
}
|
||||
|
||||
static void dombr(blockdesc_t *desc, char *name) {
|
||||
// get entries
|
||||
void *lba0 = vmm_map(NULL, desc->blocksize, VMM_FLAGS_ALLOCATE, MAP_FLAGS, NULL);
|
||||
void *lba0 = mm_map(NULL, desc->blocksize, MM_RANGE_FLAGS_ALLOCATE, MAP_FLAGS, NULL);
|
||||
__assert(lba0);
|
||||
__assert(disk_read_direct(desc, lba0, 0, 1) == 0);
|
||||
mbrentry_t *mbrents = (mbrentry_t *)((uintptr_t)lba0 + MBR_ENTRIES_OFFSET);
|
||||
@@ -310,7 +310,7 @@ static void dombr(blockdesc_t *desc, char *name) {
|
||||
__assert(registerdesc(partdesc, partname) == 0);
|
||||
}
|
||||
|
||||
vmm_unmap(lba0, desc->blocksize, 0);
|
||||
mm_unmap(lba0, desc->blocksize, 0);
|
||||
}
|
||||
|
||||
void block_register(blockdesc_t *desc, char *name) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <kernel/pci.h>
|
||||
#include <logging.h>
|
||||
#include <kernel/vmm.h>
|
||||
#include <kernel/mm.h>
|
||||
#include <util.h>
|
||||
#include <kernel/page.h>
|
||||
#include <kernel/alloc.h>
|
||||
|
||||
+5
-5
@@ -144,7 +144,7 @@ static int mmap(int minor, void *addr, uintmax_t offset, int flags) {
|
||||
if (flags & V_FFLAGS_SHARED) {
|
||||
// make sure offset is ALWAYS page aligned when doing a shared mapping
|
||||
__assert((offset % PAGE_SIZE) == 0);
|
||||
return arch_mmu_map(current_vmm_context()->pagetable, FROM_HHDM((void *)((uintptr_t)fbs[minor]->address + offset)), addr, vnodeflagstommuflags(flags)) ? 0 : ENOMEM;
|
||||
return arch_mmu_map(current_mm_context()->pagetable, FROM_HHDM((void *)((uintptr_t)fbs[minor]->address + offset)), addr, mm_vnode_flags_to_mmu_flags(flags)) ? 0 : ENOMEM;
|
||||
} else {
|
||||
size_t size = offset + PAGE_SIZE < end ? PAGE_SIZE : end - offset;
|
||||
paddr = mm_alloc_page(MEMORY_SECTION_DEFAULT);
|
||||
@@ -153,7 +153,7 @@ static int mmap(int minor, void *addr, uintmax_t offset, int flags) {
|
||||
|
||||
memcpy(MAKE_HHDM(paddr), (void *)((uintptr_t)fbs[minor]->address + offset), size);
|
||||
|
||||
if (arch_mmu_map(current_vmm_context()->pagetable, paddr, addr, vnodeflagstommuflags(flags) | ARCH_MMU_FLAGS_WC) == false) {
|
||||
if (arch_mmu_map(current_mm_context()->pagetable, paddr, addr, mm_vnode_flags_to_mmu_flags(flags) | ARCH_MMU_FLAGS_WC) == false) {
|
||||
mm_release_page(paddr);
|
||||
return ENOMEM;
|
||||
}
|
||||
@@ -163,9 +163,9 @@ static int mmap(int minor, void *addr, uintmax_t offset, int flags) {
|
||||
}
|
||||
|
||||
static int munmap(int minor, void *addr, uintmax_t offset, int flags) {
|
||||
void *phys = arch_mmu_getphysical(current_vmm_context()->pagetable, addr);
|
||||
bool release = (flags & V_FFLAGS_SHARED) && arch_mmu_iswritable(current_vmm_context()->pagetable, addr);
|
||||
arch_mmu_unmap(current_vmm_context()->pagetable, addr);
|
||||
void *phys = arch_mmu_getphysical(current_mm_context()->pagetable, addr);
|
||||
bool release = (flags & V_FFLAGS_SHARED) && arch_mmu_iswritable(current_mm_context()->pagetable, addr);
|
||||
arch_mmu_unmap(current_mm_context()->pagetable, addr);
|
||||
arch_mmu_invalidate_range(addr, PAGE_SIZE);
|
||||
if (release)
|
||||
mm_release_page(phys);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include <kernel/iovec.h>
|
||||
#include <kernel/vmm.h>
|
||||
#include <kernel/mm.h>
|
||||
#include <kernel/usercopy.h>
|
||||
|
||||
static inline bool iovec_iterator_finished(iovec_iterator_t *iovec_iterator) {
|
||||
@@ -246,7 +246,7 @@ int iovec_iterator_next_page(iovec_iterator_t *iovec_iterator, size_t *page_offs
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *phys = vmm_getphysical((void *)((uintptr_t)addr - offset_in_page), VMM_GET_PHYSICAL_FLAGS_HOLD | VMM_GET_PHYSICAL_FLAGS_LOCK);
|
||||
void *phys = mm_get_physical_address((void *)((uintptr_t)addr - offset_in_page), MM_GET_PHYSICAL_ADDRESS_FLAGS_HOLD | MM_GET_PHYSICAL_ADDRESS_FLAGS_LOCK);
|
||||
if (phys == NULL)
|
||||
return EFAULT;
|
||||
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@
|
||||
#include <arch/pci.h>
|
||||
#include <kernel/pci.h>
|
||||
#include <kernel/alloc.h>
|
||||
#include <kernel/vmm.h>
|
||||
#include <kernel/mm.h>
|
||||
#include <kernel/init.h>
|
||||
|
||||
uint8_t pci_read8(int bus, int device, int function, uint32_t offset) {
|
||||
@@ -185,7 +185,7 @@ void pci_msisetmask(pcienum_t *e, int vector, int value) {
|
||||
|
||||
void *pci_mapbar(pcibar_t bar) {
|
||||
__assert(bar.mmio);
|
||||
return vmm_map(NULL, bar.length, VMM_FLAGS_PHYSICAL, BAR_MAP_FLAGS | (bar.prefetchable ? ARCH_MMU_FLAGS_WT : ARCH_MMU_FLAGS_UC), (void *)bar.address);
|
||||
return mm_map(NULL, bar.length, MM_RANGE_FLAGS_PHYSICAL, BAR_MAP_FLAGS | (bar.prefetchable ? ARCH_MMU_FLAGS_WT : ARCH_MMU_FLAGS_UC), (void *)bar.address);
|
||||
}
|
||||
|
||||
#define BAR_IO 1
|
||||
|
||||
@@ -102,4 +102,4 @@ void term_init() {
|
||||
logging_sethook(term_putchar);
|
||||
}
|
||||
|
||||
INIT_ROUTINE_DEFINE(term, INIT_ROUTINE_FLAGS_NONE, term_init, vmm);
|
||||
INIT_ROUTINE_DEFINE(term, INIT_ROUTINE_FLAGS_NONE, term_init, mm);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include <kernel/pci.h>
|
||||
#include <kernel/page.h>
|
||||
#include <kernel/usb.h>
|
||||
#include <kernel/vmm.h>
|
||||
#include <kernel/mm.h>
|
||||
#include <list.h>
|
||||
#include <logging.h>
|
||||
#include <util.h>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <kernel/xhci.h>
|
||||
#include <errno.h>
|
||||
#include <kernel/alloc.h>
|
||||
#include <kernel/vmm.h>
|
||||
#include <kernel/mm.h>
|
||||
#include <kernel/page.h>
|
||||
#include <logging.h>
|
||||
|
||||
@@ -70,7 +70,7 @@ int xhci_data_xfer(xhci_ctrl_t *xhci, xhci_device_t *dev, usb_xfer_t *xfer, xhci
|
||||
// This should never be called with user pages. Doing so is a bug. For user-fronting code, use
|
||||
// the scatter-gather variant
|
||||
__assert(!IS_USER_ADDRESS(xfer->data));
|
||||
void *page = vmm_getphysical(xfer->data - page_offset, VMM_GET_PHYSICAL_FLAGS_HOLD);
|
||||
void *page = mm_get_physical_address(xfer->data - page_offset, MM_GET_PHYSICAL_ADDRESS_FLAGS_HOLD);
|
||||
__assert(page != NULL);
|
||||
trb.parameters = (uint64_t)page + page_offset;
|
||||
}
|
||||
@@ -242,7 +242,7 @@ int xhci_control_xfer(xhci_ctrl_t *xhci, xhci_device_t *dev, usb_xfer_t *xfer, x
|
||||
mm_hold_page(xfer->data - page_offset);
|
||||
data_trb.parameters = (uint64_t)xfer->data;
|
||||
} else {
|
||||
void *page = vmm_getphysical(xfer->data - page_offset, VMM_GET_PHYSICAL_FLAGS_HOLD);
|
||||
void *page = mm_get_physical_address(xfer->data - page_offset, MM_GET_PHYSICAL_ADDRESS_FLAGS_HOLD);
|
||||
if (page == NULL) {
|
||||
xhci_ring_unreserve(ring, trb_count);
|
||||
return EFAULT;
|
||||
|
||||
Reference in New Issue
Block a user