gallium: Fix build for WinXP.
authorMichal Krol <michal@tungstengraphics.com>
Sun, 20 Jan 2008 18:36:23 +0000 (19:36 +0100)
committerJosé Fonseca <jrfonseca@tungstengraphics.com>
Sat, 26 Jan 2008 01:52:01 +0000 (10:52 +0900)
src/mesa/pipe/p_thread.h [new file with mode: 0644]
src/mesa/pipe/pipebuffer/pb_buffer.h
src/mesa/pipe/pipebuffer/pb_buffer_fenced.c
src/mesa/pipe/pipebuffer/pb_bufmgr_fenced.c
src/mesa/pipe/pipebuffer/pb_bufmgr_pool.c

diff --git a/src/mesa/pipe/p_thread.h b/src/mesa/pipe/p_thread.h
new file mode 100644 (file)
index 0000000..cd432c5
--- /dev/null
@@ -0,0 +1,54 @@
+/**************************************************************************
+ * 
+ * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * All Rights Reserved.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ * 
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * 
+ **************************************************************************/
+
+#ifndef P_THREAD_H
+#define P_THREAD_H
+
+#include "p_compiler.h"
+
+/*
+ * XXX: We should come up with a system-independent thread definitions.
+ * XXX: Patching glthread defs for now.
+ */
+
+#ifndef __MSC__
+
+#include "glapi/glthread.h"
+
+#else /* __MSC__ */
+
+typedef int _glthread_Mutex;
+
+#define _glthread_INIT_MUTEX( M )   ((void) (M))
+#define _glthread_LOCK_MUTEX( M )   ((void) (M))
+#define _glthread_UNLOCK_MUTEX( M ) ((void) (M))
+
+#define sched_yield() ((void) 0)
+
+#endif /* __MSC__ */
+
+#endif /* P_THREAD_H */
index f909bded0ddc73f57c8dd231f01c7f61813459bc..b8cb731338c0ce42aa6a30dd55200d8fe5eaf5b2 100644 (file)
@@ -46,6 +46,7 @@
 
 #include <assert.h>
 #include <stdlib.h>
+#include "p_compiler.h"
 
 #include "pipe/p_state.h"
 
@@ -104,7 +105,7 @@ struct pb_vtbl
 
 /* Accessor functions for pb->vtbl:
  */
-static inline void *
+static INLINE void *
 pb_map(struct pb_buffer *buf, 
        unsigned flags)
 {
@@ -113,7 +114,7 @@ pb_map(struct pb_buffer *buf,
 }
 
 
-static inline void 
+static INLINE void 
 pb_unmap(struct pb_buffer *buf)
 {
    assert(buf);
@@ -121,7 +122,7 @@ pb_unmap(struct pb_buffer *buf)
 }
 
 
-static inline void
+static INLINE void
 pb_get_base_buffer( struct pb_buffer *buf,
                    struct pb_buffer **base_buf,
                    unsigned *offset )
@@ -129,7 +130,7 @@ pb_get_base_buffer( struct pb_buffer *buf,
    buf->vtbl->get_base_buffer(buf, base_buf, offset);
 }
 
-static inline void 
+static INLINE void 
 pb_destroy(struct pb_buffer *buf)
 {
    assert(buf);
@@ -163,13 +164,13 @@ pb_malloc_buffer_create( unsigned alignment,
 
 
 
-static inline struct pipe_buffer *
+static INLINE struct pipe_buffer *
 pb_pipe_buffer( struct pb_buffer *pbuf )
 {
    return &pbuf->base;
 }
 
-static inline struct pb_buffer *
+static INLINE struct pb_buffer *
 pb_buffer( struct pipe_buffer *buf )
 {
    /* Could add a magic cookie check on debug builds.
index 625120d7143bfb9395b7ce478651e876bc679ed5..ad2da71c4a7c482f3840e56430b56a9d8ac5c886 100644 (file)
 
 #include <assert.h>
 #include <stdlib.h>
-#include <unistd.h>
 
-#include "main/imports.h"
-#include "glapi/glthread.h"
 #include "linked_list.h"
 
+#include "p_compiler.h"
 #include "p_winsys.h"
+#include "p_thread.h"
 
 #include "pb_buffer.h"
 #include "pb_buffer_fenced.h"
 
+#ifndef __MSC__
+#include <unistd.h>
+#include "main/imports.h"
+#endif
+
 
 /**
  * Convenience macro (type safe).
@@ -103,11 +107,12 @@ _fenced_buffer_list_check_free(struct fenced_buffer_list *fenced_list,
    struct fenced_buffer *fenced_buf;   
    struct list_head *list, *prev;
    int signaled = -1;
-   int i;
 
    list = fenced_list->delayed.next;
 
    if (fenced_list->numDelayed > 3) {
+      unsigned i;
+
       for (i = 0; i < fenced_list->numDelayed; i += 3) {
          list = list->next;
       }
@@ -281,7 +286,7 @@ fenced_buffer_list_destroy(struct fenced_buffer_list *fenced_list)
    while (fenced_list->numDelayed) {
       _glthread_UNLOCK_MUTEX(fenced_list->mutex);
       sched_yield();
-      _fenced_buffer_list_check_free(fenced_list, GL_TRUE);
+      _fenced_buffer_list_check_free(fenced_list, 1);
       _glthread_LOCK_MUTEX(fenced_list->mutex);
    }
 
index 8cdbbed2725b0412cbafcba3267d46db01f4b12f..28996b9a17628b267315103a11b720a13bed547e 100644 (file)
@@ -52,7 +52,7 @@ struct fenced_pb_manager
 };
 
 
-static inline struct fenced_pb_manager *
+static INLINE struct fenced_pb_manager *
 fenced_pb_manager(struct pb_manager *mgr)
 {
    assert(mgr);
index 7e8494f615fce680b94861c6ff9500ac546cd8a5..1e213074f140188d946d8da1868e5de54f9da730 100644 (file)
 
 #include <assert.h>
 #include <stdlib.h>
-#include <unistd.h>
 
-#include "main/imports.h"
-#include "glapi/glthread.h"
 #include "linked_list.h"
 
+#include "p_compiler.h"
+#include "p_thread.h"
 #include "p_defines.h"
 
 #include "pb_buffer.h"
 #include "pb_bufmgr.h"
 
+#ifndef __MSC__
+#include <unistd.h>
+#include "main/imports.h"
+#endif
+
 
 /**
  * Convenience macro (type safe).
@@ -75,7 +79,7 @@ struct pool_pb_manager
 };
 
 
-static inline struct pool_pb_manager *
+static INLINE struct pool_pb_manager *
 pool_pb_manager(struct pb_manager *mgr)
 {
    assert(mgr);
@@ -95,7 +99,7 @@ struct pool_buffer
 };
 
 
-static inline struct pool_buffer *
+static INLINE struct pool_buffer *
 pool_buffer(struct pb_buffer *buf)
 {
    assert(buf);
@@ -217,7 +221,7 @@ pool_bufmgr_create(struct pb_manager *provider,
 {
    struct pool_pb_manager *pool;
    struct pool_buffer *pool_buf;
-   int i;
+   size_t i;
 
    pool = (struct pool_pb_manager *)calloc(1, sizeof(*pool));
    if (!pool)