--- /dev/null
+/**************************************************************************
+ *
+ * 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 */
#include <assert.h>
#include <stdlib.h>
+#include "p_compiler.h"
#include "pipe/p_state.h"
/* Accessor functions for pb->vtbl:
*/
-static inline void *
+static INLINE void *
pb_map(struct pb_buffer *buf,
unsigned flags)
{
}
-static inline void
+static INLINE void
pb_unmap(struct pb_buffer *buf)
{
assert(buf);
}
-static inline void
+static INLINE void
pb_get_base_buffer( struct pb_buffer *buf,
struct pb_buffer **base_buf,
unsigned *offset )
buf->vtbl->get_base_buffer(buf, base_buf, offset);
}
-static inline void
+static INLINE void
pb_destroy(struct pb_buffer *buf)
{
assert(buf);
-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.
#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).
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;
}
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);
}
};
-static inline struct fenced_pb_manager *
+static INLINE struct fenced_pb_manager *
fenced_pb_manager(struct pb_manager *mgr)
{
assert(mgr);
#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).
};
-static inline struct pool_pb_manager *
+static INLINE struct pool_pb_manager *
pool_pb_manager(struct pb_manager *mgr)
{
assert(mgr);
};
-static inline struct pool_buffer *
+static INLINE struct pool_buffer *
pool_buffer(struct pb_buffer *buf)
{
assert(buf);
{
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)