1 | /* $Id: heap.h,v 1.1 1999-05-24 20:19:12 ktk Exp $ */
|
---|
2 |
|
---|
3 | /*
|
---|
4 | * Win32 heap definitions
|
---|
5 | *
|
---|
6 | * Copyright 1996 Alexandre Julliard
|
---|
7 | */
|
---|
8 |
|
---|
9 | #ifndef __WINE_HEAP_H
|
---|
10 | #define __WINE_HEAP_H
|
---|
11 |
|
---|
12 | #include "winbase.h"
|
---|
13 |
|
---|
14 | extern HANDLE SystemHeap;
|
---|
15 | extern HANDLE SegptrHeap;
|
---|
16 |
|
---|
17 | extern int HEAP_IsInsideHeap( HANDLE heap, DWORD flags, LPCVOID ptr );
|
---|
18 | extern SEGPTR HEAP_GetSegptr( HANDLE heap, DWORD flags, LPCVOID ptr );
|
---|
19 | extern LPVOID HEAP_xalloc( HANDLE heap, DWORD flags, DWORD size );
|
---|
20 | extern LPVOID HEAP_xrealloc( HANDLE heap, DWORD flags, LPVOID lpMem, DWORD size );
|
---|
21 | extern LPSTR HEAP_strdupA( HANDLE heap, DWORD flags, LPCSTR str );
|
---|
22 | extern LPWSTR HEAP_strdupW( HANDLE heap, DWORD flags, LPCWSTR str );
|
---|
23 | extern LPWSTR HEAP_strdupAtoW( HANDLE heap, DWORD flags, LPCSTR str );
|
---|
24 | extern LPSTR HEAP_strdupWtoA( HANDLE heap, DWORD flags, LPCWSTR str );
|
---|
25 |
|
---|
26 | /* SEGPTR helper macros */
|
---|
27 |
|
---|
28 | #define SEGPTR_ALLOC(size) \
|
---|
29 | (HeapAlloc( SegptrHeap, 0, (size) ))
|
---|
30 | #define SEGPTR_NEW(type) \
|
---|
31 | ((type *)HeapAlloc( SegptrHeap, 0, sizeof(type) ))
|
---|
32 | #define SEGPTR_STRDUP(str) \
|
---|
33 | (HIWORD(str) ? HEAP_strdupA( SegptrHeap, 0, (str) ) : (LPSTR)(str))
|
---|
34 | #define SEGPTR_STRDUP_WtoA(str) \
|
---|
35 | (HIWORD(str) ? HEAP_strdupWtoA( SegptrHeap, 0, (str) ) : (LPSTR)(str))
|
---|
36 | /* define an inline function, a macro won't do */
|
---|
37 | static __inline__ SEGPTR WINE_UNUSED SEGPTR_Get(LPCVOID ptr) {
|
---|
38 | return (HIWORD(ptr) ? HEAP_GetSegptr( SegptrHeap, 0, ptr ) : (SEGPTR)ptr);
|
---|
39 | }
|
---|
40 | #define SEGPTR_GET(ptr) SEGPTR_Get(ptr)
|
---|
41 | #define SEGPTR_FREE(ptr) \
|
---|
42 | (HIWORD(ptr) ? HeapFree( SegptrHeap, 0, (ptr) ) : 0)
|
---|
43 |
|
---|
44 |
|
---|
45 | #endif /* __WINE_HEAP_H */
|
---|