074af3d4186cab07730812910546a25aabba2f22
[people/sha0/winvblock.git] / src / winvblock / wv_stdlib.c
1 /**\r
2  * Copyright (C) 2010, Shao Miller <shao.miller@yrdsb.edu.on.ca>.\r
3  *\r
4  * This file is part of WinVBlock, originally derived from WinAoE.\r
5  *\r
6  * WinVBlock is free software: you can redistribute it and/or modify\r
7  * it under the terms of the GNU General Public License as published by\r
8  * the Free Software Foundation, either version 3 of the License, or\r
9  * (at your option) any later version.\r
10  *\r
11  * WinVBlock is distributed in the hope that it will be useful,\r
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
14  * GNU General Public License for more details.\r
15  *\r
16  * You should have received a copy of the GNU General Public License\r
17  * along with WinVBlock.  If not, see <http://www.gnu.org/licenses/>.\r
18  */\r
19 \r
20 #include <ntddk.h>\r
21 #include "wv_stdlib.h"\r
22 \r
23 void *wv_malloc(wv_size_t size) {\r
24     return ExAllocatePoolWithTag(NonPagedPool, size, 'klBV');\r
25   }\r
26 \r
27 void *wv_palloc(wv_size_t size) {\r
28     return ExAllocatePoolWithTag(PagedPool, size, 'klBV');\r
29   }\r
30 \r
31 void *wv_mallocz(wv_size_t size) {\r
32     void *ptr = ExAllocatePoolWithTag(NonPagedPool, size, 'klBV');\r
33     return ptr ? RtlZeroMemory(ptr, size), ptr : ptr;\r
34   }\r
35 \r
36 void *wv_pallocz(wv_size_t size) {\r
37     void *ptr = ExAllocatePoolWithTag(PagedPool, size, 'klBV');\r
38     return ptr ? RtlZeroMemory(ptr, size), ptr : ptr;\r
39   }\r
40 \r
41 void wv_free(void *ptr) {\r
42     ExFreePool(ptr);\r
43     return;\r
44   }\r