PatchworkOS
Loading...
Searching...
No Matches
pmm_bitmap.h
Go to the documentation of this file.
1#pragma once
2
3#include <sys/bitmap.h>
4#include <sys/proc.h>
5
40
49void pmm_bitmap_init(pmm_bitmap_t* bitmap, void* buffer, uint64_t size, uintptr_t maxAddr);
50
61
70
void * pmm_bitmap_alloc(pmm_bitmap_t *bitmap, uint64_t count, uintptr_t maxAddr, uint64_t alignment)
Allocates a contiguous region of pages from the bitmap.
Definition pmm_bitmap.c:16
void pmm_bitmap_init(pmm_bitmap_t *bitmap, void *buffer, uint64_t size, uintptr_t maxAddr)
Initializes a PMM bitmap.
Definition pmm_bitmap.c:7
void pmm_bitmap_free(pmm_bitmap_t *bitmap, void *address, uint64_t count)
Frees a region of pages, returning them to the bitmap.
Definition pmm_bitmap.c:32
static uintptr_t address
Definition hpet.c:12
EFI_PHYSICAL_ADDRESS buffer
Definition mem.c:15
static pmm_bitmap_t bitmap
Definition pmm.c:37
static atomic_long count
Definition main.c:9
__UINT64_TYPE__ uint64_t
Definition stdint.h:17
__UINTPTR_TYPE__ uintptr_t
Definition stdint.h:43
Bitmap structure.
Definition bitmap.h:22
Represents a bitmap allocator's state.
Definition pmm_bitmap.h:22
uint64_t free
The number of free pages in the bitmap.
Definition pmm_bitmap.h:30
bitmap_t bitmap
The underlying bitmap used for tracking page status.
Definition pmm_bitmap.h:26
uint64_t total
The total number of pages managed by the bitmap.
Definition pmm_bitmap.h:34
uintptr_t maxAddr
The maximum address managed by the bitmap.
Definition pmm_bitmap.h:38