diff options
| author | Harry Fei <[email protected]> | 2018-09-30 17:53:14 +0800 |
|---|---|---|
| committer | Harry Fei <[email protected]> | 2018-10-08 16:48:14 +0800 |
| commit | d8b204c31f07ab98aa0f1a47a00c0b30efebecc2 (patch) | |
| tree | 038239674bf2f5daa2a98ff6871fe5df1dd615b5 /src/lib.rs | |
| download | win-kmd-alloc-d8b204c31f07ab98aa0f1a47a00c0b30efebecc2.tar.xz win-kmd-alloc-d8b204c31f07ab98aa0f1a47a00c0b30efebecc2.zip | |
init commitrebase2
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..678735d --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,20 @@ +#![no_std] + +mod alloc_sys; + +use self::alloc_sys::*; +use core::alloc::{GlobalAlloc, Layout}; + +const KMRS_TAG: u32 = 0x4B4D5253; // 'KMRS' + +pub struct KernelAlloc; + +unsafe impl GlobalAlloc for KernelAlloc { + unsafe fn alloc(&self, layout: Layout) -> *mut u8 { + ExAllocatePoolWithTag(POOL_TYPE::PagedPool, layout.size(), KMRS_TAG) + } + + unsafe fn dealloc(&self, ptr: *mut u8, _layout: Layout) { + ExFreePoolWithTag(ptr, KMRS_TAG); + } +} |