| author | Nicholas Hastings <skamonkey@gmail.com> |
| Sat Jul 06 11:53:58 2013 -0400 (2013-07-06) | |
| changeset 3934 | 1c4dcad39348 |
| parent 2226 | d10b38524be3 |
| child 3980 | dc7dfcd855dc |
| permissions | -rw-r--r-- |
| dvander@2226 | 1 |
#ifndef _INCLUDE_KNIGHT_KE_PAGE_ALLOCATOR_H_ |
| dvander@2226 | 2 |
#define _INCLUDE_KNIGHT_KE_PAGE_ALLOCATOR_H_ |
| dvander@2226 | 3 |
|
| dvander@2226 | 4 |
#include <KeStdTypes.h> |
| dvander@2226 | 5 |
|
| dvander@2226 | 6 |
namespace Knight |
| dvander@2226 | 7 |
{ |
| dvander@2226 | 8 |
class KePageAllocator; |
| dvander@2226 | 9 |
|
| dvander@2226 | 10 |
/** |
| dvander@2226 | 11 |
* @brief Creates a page allocator. |
| dvander@2226 | 12 |
* |
| dvander@2226 | 13 |
* @return New page allocator. |
| dvander@2226 | 14 |
*/ |
| dvander@2226 | 15 |
extern KePageAllocator *KE_CreatePageAllocator(); |
| dvander@2226 | 16 |
|
| dvander@2226 | 17 |
/** |
| dvander@2226 | 18 |
* @brief Destroys a page allocator, freeing all live pages it owns. |
| dvander@2226 | 19 |
* |
| dvander@2226 | 20 |
* @param Page allocator. |
| dvander@2226 | 21 |
*/ |
| dvander@2226 | 22 |
extern void KE_DestroyPageAllocator(KePageAllocator *alloc); |
| dvander@2226 | 23 |
|
| dvander@2226 | 24 |
/** |
| dvander@2226 | 25 |
* @brief Allocates a page of memory. |
| dvander@2226 | 26 |
* |
| dvander@2226 | 27 |
* @param alloc Page allocator. |
| dvander@2226 | 28 |
* @return Page of memory. |
| dvander@2226 | 29 |
*/ |
| dvander@2226 | 30 |
extern void *KE_PageAlloc(KePageAllocator *alloc); |
| dvander@2226 | 31 |
|
| dvander@2226 | 32 |
/** |
| dvander@2226 | 33 |
* @brief Frees a page of memory. |
| dvander@2226 | 34 |
* |
| dvander@2226 | 35 |
* @param alloc Page allocator. |
| dvander@2226 | 36 |
* @param page Page of memory. |
| dvander@2226 | 37 |
*/ |
| dvander@2226 | 38 |
extern void KE_PageFree(KePageAllocator *alloc, void *page); |
| dvander@2226 | 39 |
|
| dvander@2226 | 40 |
/** |
| dvander@2226 | 41 |
* @brief Returns the size of a page. |
| dvander@2226 | 42 |
* |
| dvander@2226 | 43 |
* @param alloc Page allocator. |
| dvander@2226 | 44 |
* @return Page size. |
| dvander@2226 | 45 |
*/ |
| dvander@2226 | 46 |
extern size_t KE_PageSize(KePageAllocator *alloc); |
| dvander@2226 | 47 |
} |
| dvander@2226 | 48 |
|
| dvander@2226 | 49 |
#endif //_INCLUDE_KNIGHT_KE_PAGE_ALLOCATOR_H_ |