gallium: Fix build for WinXP.
This commit is contained in:

committed by
José Fonseca

parent
7411a84c2b
commit
6c3d12e374
54
src/mesa/pipe/p_thread.h
Normal file
54
src/mesa/pipe/p_thread.h
Normal file
@@ -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 */
|
@@ -46,6 +46,7 @@
|
|||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include "p_compiler.h"
|
||||||
|
|
||||||
#include "pipe/p_state.h"
|
#include "pipe/p_state.h"
|
||||||
|
|
||||||
@@ -104,7 +105,7 @@ struct pb_vtbl
|
|||||||
|
|
||||||
/* Accessor functions for pb->vtbl:
|
/* Accessor functions for pb->vtbl:
|
||||||
*/
|
*/
|
||||||
static inline void *
|
static INLINE void *
|
||||||
pb_map(struct pb_buffer *buf,
|
pb_map(struct pb_buffer *buf,
|
||||||
unsigned flags)
|
unsigned flags)
|
||||||
{
|
{
|
||||||
@@ -113,7 +114,7 @@ pb_map(struct pb_buffer *buf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline void
|
static INLINE void
|
||||||
pb_unmap(struct pb_buffer *buf)
|
pb_unmap(struct pb_buffer *buf)
|
||||||
{
|
{
|
||||||
assert(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,
|
pb_get_base_buffer( struct pb_buffer *buf,
|
||||||
struct pb_buffer **base_buf,
|
struct pb_buffer **base_buf,
|
||||||
unsigned *offset )
|
unsigned *offset )
|
||||||
@@ -129,7 +130,7 @@ pb_get_base_buffer( struct pb_buffer *buf,
|
|||||||
buf->vtbl->get_base_buffer(buf, base_buf, offset);
|
buf->vtbl->get_base_buffer(buf, base_buf, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static INLINE void
|
||||||
pb_destroy(struct pb_buffer *buf)
|
pb_destroy(struct pb_buffer *buf)
|
||||||
{
|
{
|
||||||
assert(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 )
|
pb_pipe_buffer( struct pb_buffer *pbuf )
|
||||||
{
|
{
|
||||||
return &pbuf->base;
|
return &pbuf->base;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct pb_buffer *
|
static INLINE struct pb_buffer *
|
||||||
pb_buffer( struct pipe_buffer *buf )
|
pb_buffer( struct pipe_buffer *buf )
|
||||||
{
|
{
|
||||||
/* Could add a magic cookie check on debug builds.
|
/* Could add a magic cookie check on debug builds.
|
||||||
|
@@ -36,17 +36,21 @@
|
|||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include "main/imports.h"
|
|
||||||
#include "glapi/glthread.h"
|
|
||||||
#include "linked_list.h"
|
#include "linked_list.h"
|
||||||
|
|
||||||
|
#include "p_compiler.h"
|
||||||
#include "p_winsys.h"
|
#include "p_winsys.h"
|
||||||
|
#include "p_thread.h"
|
||||||
|
|
||||||
#include "pb_buffer.h"
|
#include "pb_buffer.h"
|
||||||
#include "pb_buffer_fenced.h"
|
#include "pb_buffer_fenced.h"
|
||||||
|
|
||||||
|
#ifndef __MSC__
|
||||||
|
#include <unistd.h>
|
||||||
|
#include "main/imports.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience macro (type safe).
|
* 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 fenced_buffer *fenced_buf;
|
||||||
struct list_head *list, *prev;
|
struct list_head *list, *prev;
|
||||||
int signaled = -1;
|
int signaled = -1;
|
||||||
int i;
|
|
||||||
|
|
||||||
list = fenced_list->delayed.next;
|
list = fenced_list->delayed.next;
|
||||||
|
|
||||||
if (fenced_list->numDelayed > 3) {
|
if (fenced_list->numDelayed > 3) {
|
||||||
|
unsigned i;
|
||||||
|
|
||||||
for (i = 0; i < fenced_list->numDelayed; i += 3) {
|
for (i = 0; i < fenced_list->numDelayed; i += 3) {
|
||||||
list = list->next;
|
list = list->next;
|
||||||
}
|
}
|
||||||
@@ -281,7 +286,7 @@ fenced_buffer_list_destroy(struct fenced_buffer_list *fenced_list)
|
|||||||
while (fenced_list->numDelayed) {
|
while (fenced_list->numDelayed) {
|
||||||
_glthread_UNLOCK_MUTEX(fenced_list->mutex);
|
_glthread_UNLOCK_MUTEX(fenced_list->mutex);
|
||||||
sched_yield();
|
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);
|
_glthread_LOCK_MUTEX(fenced_list->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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)
|
fenced_pb_manager(struct pb_manager *mgr)
|
||||||
{
|
{
|
||||||
assert(mgr);
|
assert(mgr);
|
||||||
|
@@ -37,17 +37,21 @@
|
|||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include "main/imports.h"
|
|
||||||
#include "glapi/glthread.h"
|
|
||||||
#include "linked_list.h"
|
#include "linked_list.h"
|
||||||
|
|
||||||
|
#include "p_compiler.h"
|
||||||
|
#include "p_thread.h"
|
||||||
#include "p_defines.h"
|
#include "p_defines.h"
|
||||||
|
|
||||||
#include "pb_buffer.h"
|
#include "pb_buffer.h"
|
||||||
#include "pb_bufmgr.h"
|
#include "pb_bufmgr.h"
|
||||||
|
|
||||||
|
#ifndef __MSC__
|
||||||
|
#include <unistd.h>
|
||||||
|
#include "main/imports.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience macro (type safe).
|
* 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)
|
pool_pb_manager(struct pb_manager *mgr)
|
||||||
{
|
{
|
||||||
assert(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)
|
pool_buffer(struct pb_buffer *buf)
|
||||||
{
|
{
|
||||||
assert(buf);
|
assert(buf);
|
||||||
@@ -217,7 +221,7 @@ pool_bufmgr_create(struct pb_manager *provider,
|
|||||||
{
|
{
|
||||||
struct pool_pb_manager *pool;
|
struct pool_pb_manager *pool;
|
||||||
struct pool_buffer *pool_buf;
|
struct pool_buffer *pool_buf;
|
||||||
int i;
|
size_t i;
|
||||||
|
|
||||||
pool = (struct pool_pb_manager *)calloc(1, sizeof(*pool));
|
pool = (struct pool_pb_manager *)calloc(1, sizeof(*pool));
|
||||||
if (!pool)
|
if (!pool)
|
||||||
|
Reference in New Issue
Block a user