Files
PluralTechnology/service/ptos/head/mm/vm.h
T
2026-07-10 19:06:53 -04:00

32 lines
714 B
C

/*
* Copyright (c) 2026, Chloe M.
* Provided under the BSD-3 clause.
*
* Description: Virtual memory management
* Author: Chloe M.
*/
#ifndef _MM_VM_H_
#define _MM_VM_H_ 1
#include <ke/bpal.h>
/*
* Virtual memory allocation region. This is outside the
* higher half direct map and thus cannot be converted with
* PMA_TO_VMA() / VMA_TO_PMA()
*/
#define VALLOC_BASE 0xFFFF804000000000
/*
* Used to convert physical addresses to virtual addresses
* and vice versa only when they are within the higher half
* direct map.
*/
#define PMA_TO_VMA(PMA) \
PTR_OFFSET((VOID *)PMA, KeBpalLoadBase())
#define VMA_TO_PMA(VMA) \
(UPTR)PTR_NOFFSET(VMA, KeBpalLoadBase())
#endif /* !_MM_VM_H_ */