X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Finclude%2Fheap.h;h=bfffcb29a9f38337dd648db13051fe8f685ec552;hb=13078002b01ee4f63eb2001d2ef479a2a006ea32;hp=b058e8b41b0b3748e52fb899feb8c10c45fc5546;hpb=51ab5f489bc356940c95cc936fd0508e8f07ea97;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/include/heap.h b/KernelLand/Kernel/include/heap.h index b058e8b4..bfffcb29 100644 --- a/KernelLand/Kernel/include/heap.h +++ b/KernelLand/Kernel/include/heap.h @@ -10,14 +10,20 @@ extern void *Heap_Allocate(const char *File, int Line, size_t Bytes); extern void *Heap_AllocateZero(const char *File, int Line, size_t Bytes); extern void *Heap_Reallocate(const char *File, int Line, void *Ptr, size_t Bytes); -extern void Heap_Deallocate(void *Ptr); +extern void Heap_Deallocate(const char *File, int Line, void *Ptr); extern int Heap_IsHeapAddr(void *Ptr); extern void Heap_Validate(void); +/** + * \brief Hint to the heap code to put a watchpoint on this block's memory + * + * Use sparingly, watchpoints are limited and/or very expensive (or not even implemented) + */ +extern int Heap_WatchBlock(void *Ptr); #define malloc(size) Heap_Allocate(_MODULE_NAME_"/"__FILE__, __LINE__, (size)) #define calloc(num,size) Heap_AllocateZero(_MODULE_NAME_"/"__FILE__, __LINE__, (num)*(size)) #define realloc(ptr,size) Heap_Reallocate(_MODULE_NAME_"/"__FILE__, __LINE__, (ptr), (size)) -#define free(ptr) Heap_Deallocate((ptr)) +#define free(ptr) Heap_Deallocate(_MODULE_NAME_"/"__FILE__,__LINE__,(ptr)) #define IsHeap(ptr) Heap_IsHeapAddr((ptr)) #define strdup(Str) _strdup(_MODULE_NAME_"/"__FILE__, __LINE__, (Str))