d3d: Windows miniport driver portability fixes.
authorJosé Fonseca <jrfonseca@tungstengraphics.com>
Wed, 30 Apr 2008 15:59:12 +0000 (00:59 +0900)
committerJosé Fonseca <jrfonseca@tungstengraphics.com>
Wed, 30 Apr 2008 17:25:23 +0000 (02:25 +0900)
src/gallium/auxiliary/util/p_debug.c
src/gallium/auxiliary/util/p_debug_mem.c
src/gallium/auxiliary/util/u_time.c
src/gallium/include/pipe/p_config.h
src/gallium/include/pipe/p_util.h

index 8ef2880..56eecaa 100644 (file)
@@ -104,7 +104,7 @@ void _debug_break(void)
    __asm("int3");
 #elif (defined(__i386__) || defined(__386__)) && defined(__MSC__)
    _asm {int 3};
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) && !defined(WINCE)
+#elif defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
    EngDebugBreak();
 #else
    abort();
index 9321cf7..3b5e4fb 100644 (file)
 
 #include "pipe/p_config.h" 
 
-#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
+#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
 #include <windows.h>
 #include <winddi.h>
+#elif defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
+#include <wdm.h>
 #else
 #include <stdio.h>
 #include <stdlib.h>
@@ -52,6 +54,9 @@
 #if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) && !defined(WINCE)
 #define real_malloc(_size) EngAllocMem(0, _size, 'D3AG')
 #define real_free(_ptr) EngFreeMem(_ptr)
+#elif defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
+#define real_malloc(_size) ExAllocatePool(0, _size)
+#define real_free(_ptr) ExFreePool(_ptr)
 #else
 #define real_malloc(_size) malloc(_size)
 #define real_free(_ptr) free(_ptr)
index dd28ff4..9b97050 100644 (file)
 
 #if defined(PIPE_OS_LINUX)
 #include <sys/time.h>
-#elif defined(PIPE_OS_WINDOWS)
+#elif defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
 #include <windows.h>
-#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
 #include <winddi.h>
-#endif
+#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER)
+#include <windows.h>
 #else
 #error Unsupported OS
 #endif
index e44fafe..5c030bd 100644 (file)
 #if defined(PIPE_SUBSYSTEM_KERNEL)
 #define PIPE_SUBSYSTEM_WINDOWS_DISPLAY
 #endif
+#if 0 /* FIXME */
+#define PIPE_SUBSYSTEM_WINDOWS_MINIPORT
+#endif
+#if 0 /* FIXME */
+#define PIPE_SUBSYSTEM_WINDOWS_CE
+#endif
+#if defined(PIPE_SUBSYSTEM_USER)
+#define PIPE_SUBSYSTEM_WINDOWS_USER
 #endif
+#endif /* PIPE_OS_WINDOWS */
 
 
 #endif /* P_CONFIG_H_ */
index 63301ae..0e7e246 100644 (file)
@@ -41,7 +41,9 @@ extern "C" {
 #endif
 
 
-#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) && defined(DEBUG) /* memory debugging */
+#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) && defined(DEBUG) 
+
+/* memory debugging */
 
 #include "p_debug.h"
 
@@ -54,9 +56,7 @@ extern "C" {
 #define REALLOC( _ptr, _old_size, _size ) \
    debug_realloc( __FILE__, __LINE__, __FUNCTION__,  _ptr, _old_size, _size )
 
-#else
-   
-#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
+#elif defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
 
 void * __stdcall
 EngAllocMem(
@@ -68,17 +68,33 @@ void __stdcall
 EngFreeMem(
     void *Mem );
 
-static INLINE void *
-MALLOC( unsigned size )
-{
-#ifdef WINCE
-   /* TODO: Need to abstract this */
-   return malloc( size );
+#define MALLOC( _size ) EngAllocMem( 0, _size, 'D3AG' )
+#define _FREE( _ptr ) EngFreeMem( _ptr )
+
+#elif defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
+
+void *
+ExAllocatePool(
+    unsigned long PoolType, 
+    size_t NumberOfBytes);
+
+void 
+ExFreePool(void *P);
+
+#define MALLOC(_size) ExAllocatePool(0, _size)
+#define _FREE(_ptr) ExFreePool(_ptr)
+
 #else
-   return EngAllocMem( 0, size, 'D3AG' );
+
+#define MALLOC( SIZE )  malloc( SIZE )
+#define CALLOC( COUNT, SIZE )   calloc( COUNT, SIZE )
+#define FREE( PTR )  free( PTR )
+#define REALLOC( OLDPTR, OLDSIZE, NEWSIZE )  realloc( OLDPTR, NEWSIZE )
+
 #endif
-}
 
+
+#ifndef CALLOC
 static INLINE void *
 CALLOC( unsigned count, unsigned size )
 {
@@ -88,20 +104,19 @@ CALLOC( unsigned count, unsigned size )
    }
    return ptr;
 }
+#endif /* !CALLOC */
 
+#ifndef FREE
 static INLINE void
 FREE( void *ptr )
 {
    if( ptr ) {
-#ifdef WINCE
-      /* TODO: Need to abstract this */
-      free( ptr );
-#else
-      EngFreeMem( ptr );
-#endif
+      _FREE( ptr );
    }
 }
+#endif /* !FREE */
 
+#ifndef REALLOC
 static INLINE void *
 REALLOC( void *old_ptr, unsigned old_size, unsigned new_size )
 {
@@ -118,19 +133,8 @@ REALLOC( void *old_ptr, unsigned old_size, unsigned new_size )
    FREE( old_ptr );
    return new_ptr;
 }
+#endif /* !REALLOC */
 
-#else /* !PIPE_SUBSYSTEM_WINDOWS_DISPLAY */
-
-#define MALLOC( SIZE )  malloc( SIZE )
-
-#define CALLOC( COUNT, SIZE )   calloc( COUNT, SIZE )
-
-#define FREE( PTR )  free( PTR )
-
-#define REALLOC( OLDPTR, OLDSIZE, NEWSIZE )  realloc( OLDPTR, NEWSIZE )
-
-#endif /* !PIPE_SUBSYSTEM_WINDOWS_DISPLAY */
-#endif /* !DEBUG */
 
 #define MALLOC_STRUCT(T)   (struct T *) MALLOC(sizeof(struct T))