knight/shared/KePageAllocator.h
author Nicholas Hastings <skamonkey@gmail.com>
Tue Mar 19 11:22:52 2013 -0400 (2013-03-19)
changeset 3857 3fd1717664b3
parent 2226 d10b38524be3
child 3980 dc7dfcd855dc
permissions -rw-r--r--
Initial commit of Dota 2 gamedata (bug 5656, r=asherkin).
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_