summaryrefslogtreecommitdiff
path: root/include/sys/physalloc.h
blob: 683797296d09e108b6e263395df104cc243df50e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once

#ifndef MEMORY_INTERNAL
	#error "Do not include headers from <sys/physalloc.h>, only use <memory.h>"
#endif

/**
 * Allocates a single physical page in memory
 * @preturns the physical address of the page
 */
void *alloc_phys_page(void);

/**
 * Allocates count physical pages in memory
 * @returns the physical address of the first page
 */
void *alloc_phys_pages(int count);

/**
* Frees a single physical page in memory
 * @param ptr - the physical address of the page
 */
void free_phys_page(void *ptr);

/**
 * Frees count physical pages in memory
 * @param ptr - the physical address of the first page
 * @param count - the number of pages in the list
 */
void free_phys_pages(void *ptr, int count);