Ignore setsockopt calls that make the size of the receive buffer too
[wine] / include / heap.h
index 2ad3098..8bd9518 100644 (file)
@@ -7,20 +7,20 @@
 #ifndef __WINE_HEAP_H
 #define __WINE_HEAP_H
 
+#include "config.h"
+
 #include "winbase.h"
-#include "winnt.h"
 
-extern HANDLE32 SystemHeap;
-extern HANDLE32 SegptrHeap;
-extern CRITICAL_SECTION *HEAP_SystemLock;
+extern HANDLE SystemHeap;
+extern HANDLE SegptrHeap;
 
-extern int HEAP_IsInsideHeap( HANDLE32 heap, DWORD flags, LPCVOID ptr );
-extern SEGPTR HEAP_GetSegptr( HANDLE32 heap, DWORD flags, LPCVOID ptr );
-extern LPVOID HEAP_xalloc( HANDLE32 heap, DWORD flags, DWORD size );
-extern LPSTR HEAP_strdupA( HANDLE32 heap, DWORD flags, LPCSTR str );
-extern LPWSTR HEAP_strdupW( HANDLE32 heap, DWORD flags, LPCWSTR str );
-extern LPWSTR HEAP_strdupAtoW( HANDLE32 heap, DWORD flags, LPCSTR str );
-extern LPSTR HEAP_strdupWtoA( HANDLE32 heap, DWORD flags, LPCWSTR str );
+extern int HEAP_IsInsideHeap( HANDLE heap, DWORD flags, LPCVOID ptr );
+extern SEGPTR HEAP_GetSegptr( HANDLE heap, DWORD flags, LPCVOID ptr );
+extern LPSTR HEAP_strdupA( HANDLE heap, DWORD flags, LPCSTR str );
+extern LPWSTR HEAP_strdupW( HANDLE heap, DWORD flags, LPCWSTR str );
+extern LPWSTR HEAP_strdupAtoW( HANDLE heap, DWORD flags, LPCSTR str );
+extern LPSTR HEAP_strdupWtoA( HANDLE heap, DWORD flags, LPCWSTR str );
+extern BOOL HEAP_CreateSystemHeap(void);
 
 /* SEGPTR helper macros */
 
@@ -32,38 +32,26 @@ extern LPSTR HEAP_strdupWtoA( HANDLE32 heap, DWORD flags, LPCWSTR str );
          (HIWORD(str) ? HEAP_strdupA( SegptrHeap, 0, (str) ) : (LPSTR)(str))
 #define SEGPTR_STRDUP_WtoA(str) \
          (HIWORD(str) ? HEAP_strdupWtoA( SegptrHeap, 0, (str) ) : (LPSTR)(str))
-#define SEGPTR_GET(ptr) \
-         (HIWORD(ptr) ? HEAP_GetSegptr( SegptrHeap, 0, (ptr) ) : (SEGPTR)(ptr))
+       /* define an inline function, a macro won't do */
+static inline SEGPTR WINE_UNUSED SEGPTR_Get(LPCVOID ptr) {
+         return (HIWORD(ptr) ? HEAP_GetSegptr( SegptrHeap, 0, ptr ) : (SEGPTR)ptr);
+}
+#define SEGPTR_GET(ptr) SEGPTR_Get(ptr)
 #define SEGPTR_FREE(ptr) \
          (HIWORD(ptr) ? HeapFree( SegptrHeap, 0, (ptr) ) : 0)
 
-/* System heap locking macros */
-
-#define SYSTEM_LOCK()       (EnterCriticalSection(HEAP_SystemLock))
-#define SYSTEM_UNLOCK()     (LeaveCriticalSection(HEAP_SystemLock))
-/* Use this one only when you own the lock! */
-#define SYSTEM_LOCK_COUNT() (HEAP_SystemLock->RecursionCount)
-
-
+/* system heap private data */
+/* you must lock the system heap before using this structure */
 typedef struct
 {
-    LPVOID lpData;
-    DWORD cbData;
-    BYTE cbOverhead;
-    BYTE iRegionIndex;
-    WORD wFlags;
-    union {
-        struct {
-            HANDLE32 hMem;
-            DWORD dwReserved[3];
-        } Block;
-        struct {
-            DWORD dwCommittedSize;
-            DWORD dwUnCommittedSize;
-            LPVOID lpFirstBlock;
-            LPVOID lpLastBlock;
-        } Region;
-    } Foo;
-} PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY;
+    void     *gdi;        /* GDI heap */
+    void     *user;       /* USER handle table */
+    void     *cursor;     /* cursor information */
+    void     *queue;      /* message queues descriptor */
+    void     *win;        /* windows descriptor */
+    void     *root;       /* X11 root window */
+} SYSTEM_HEAP_DESCR;
+
+extern SYSTEM_HEAP_DESCR *SystemHeapDescr;
 
 #endif  /* __WINE_HEAP_H */