gallium: Windows user mode portability fixes.
This commit is contained in:
@@ -34,6 +34,12 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "pipe/p_config.h"
|
||||
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "pipe/p_compiler.h"
|
||||
#include "pipe/p_error.h"
|
||||
#include "pipe/p_debug.h"
|
||||
@@ -45,9 +51,6 @@
|
||||
#include "pb_buffer.h"
|
||||
#include "pb_buffer_fenced.h"
|
||||
|
||||
#ifndef WIN32
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
@@ -425,7 +428,7 @@ fenced_buffer_list_destroy(struct fenced_buffer_list *fenced_list)
|
||||
/* Wait on outstanding fences */
|
||||
while (fenced_list->numDelayed) {
|
||||
_glthread_UNLOCK_MUTEX(fenced_list->mutex);
|
||||
#ifndef WIN32
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
sched_yield();
|
||||
#endif
|
||||
_fenced_buffer_list_check_free(fenced_list, 1);
|
||||
|
@@ -26,9 +26,11 @@
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include "pipe/p_config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
|
||||
#include <windows.h>
|
||||
#include <winddi.h>
|
||||
#else
|
||||
@@ -42,7 +44,7 @@
|
||||
#include "util/u_string.h"
|
||||
|
||||
|
||||
#ifdef WIN32
|
||||
#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
|
||||
static INLINE void
|
||||
_EngDebugPrint(const char *format, ...)
|
||||
{
|
||||
@@ -56,7 +58,7 @@ _EngDebugPrint(const char *format, ...)
|
||||
|
||||
void _debug_vprintf(const char *format, va_list ap)
|
||||
{
|
||||
#ifdef WIN32
|
||||
#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
|
||||
#ifndef WINCE
|
||||
/* EngDebugPrint does not handle float point arguments, so we need to use
|
||||
* our own vsnprintf implementation. It is also very slow, so buffer until
|
||||
@@ -101,7 +103,7 @@ void _debug_break(void)
|
||||
__asm("int3");
|
||||
#elif (defined(__i386__) || defined(__386__)) && defined(__MSC__)
|
||||
_asm {int 3};
|
||||
#elif defined(WIN32) && !defined(WINCE)
|
||||
#elif defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) && !defined(WINCE)
|
||||
EngDebugBreak();
|
||||
#else
|
||||
abort();
|
||||
@@ -109,7 +111,7 @@ void _debug_break(void)
|
||||
}
|
||||
|
||||
|
||||
#ifdef WIN32
|
||||
#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
|
||||
static const char *
|
||||
find(const char *start, const char *end, char c)
|
||||
{
|
||||
@@ -150,7 +152,7 @@ const char *
|
||||
debug_get_option(const char *name, const char *dfault)
|
||||
{
|
||||
const char *result;
|
||||
#ifdef WIN32
|
||||
#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
|
||||
ULONG_PTR iFile = 0;
|
||||
const void *pMap = NULL;
|
||||
const char *sol, *eol, *sep;
|
||||
|
@@ -32,7 +32,9 @@
|
||||
* @author José Fonseca <jrfonseca@tungstengraphics.com>
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "pipe/p_config.h"
|
||||
|
||||
#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
|
||||
#include <windows.h>
|
||||
#include <winddi.h>
|
||||
#else
|
||||
@@ -47,7 +49,7 @@
|
||||
#define DEBUG_MEMORY_MAGIC 0x6e34090aU
|
||||
|
||||
|
||||
#if defined(WIN32) && !defined(WINCE)
|
||||
#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) && !defined(WINCE)
|
||||
#define real_malloc(_size) EngAllocMem(0, _size, 'D3AG')
|
||||
#define real_free(_ptr) EngFreeMem(_ptr)
|
||||
#else
|
||||
|
@@ -33,27 +33,35 @@
|
||||
*/
|
||||
|
||||
|
||||
#ifndef WIN32
|
||||
#include <sys/time.h>
|
||||
#else
|
||||
#include <windows.h>
|
||||
#include <winddi.h>
|
||||
#endif
|
||||
|
||||
#include "util/u_time.h"
|
||||
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
#include <sys/time.h>
|
||||
#elif defined(PIPE_OS_WINDOWS)
|
||||
#include <windows.h>
|
||||
#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
|
||||
#include <winddi.h>
|
||||
#endif
|
||||
#else
|
||||
#error Unsupported OS
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
#if defined(PIPE_OS_WINDOWS)
|
||||
static LONGLONG frequency = 0;
|
||||
#if !defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
|
||||
#define EngQueryPerformanceFrequency(p) QueryPerformanceFrequency((LARGE_INTEGER*)(p))
|
||||
#define EngQueryPerformanceCounter(p) QueryPerformanceCounter((LARGE_INTEGER*)(p))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
void
|
||||
util_time_get(struct util_time *t)
|
||||
{
|
||||
#ifndef WIN32
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
gettimeofday(&t->tv, NULL);
|
||||
#else
|
||||
#elif defined(PIPE_OS_WINDOWS)
|
||||
EngQueryPerformanceCounter(&t->counter);
|
||||
#endif
|
||||
}
|
||||
@@ -64,10 +72,10 @@ util_time_add(const struct util_time *t1,
|
||||
int64_t usecs,
|
||||
struct util_time *t2)
|
||||
{
|
||||
#ifndef WIN32
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
t2->tv.tv_sec = t1->tv.tv_sec + usecs / 1000000;
|
||||
t2->tv.tv_usec = t1->tv.tv_usec + usecs % 1000000;
|
||||
#else
|
||||
#elif defined(PIPE_OS_WINDOWS)
|
||||
if(!frequency)
|
||||
EngQueryPerformanceFrequency(&frequency);
|
||||
t2->counter = t1->counter + (usecs * frequency + 999999LL)/1000000LL;
|
||||
@@ -79,10 +87,12 @@ int64_t
|
||||
util_time_diff(const struct util_time *t1,
|
||||
const struct util_time *t2)
|
||||
{
|
||||
#ifndef WIN32
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
return (t2->tv.tv_usec - t1->tv.tv_usec) +
|
||||
(t2->tv.tv_sec - t1->tv.tv_sec)*1000000;
|
||||
#else
|
||||
#elif defined(PIPE_OS_WINDOWS)
|
||||
if(!frequency)
|
||||
EngQueryPerformanceFrequency(&frequency);
|
||||
return (t2->counter - t1->counter)*1000000LL/frequency;
|
||||
#endif
|
||||
}
|
||||
@@ -98,7 +108,7 @@ static INLINE int
|
||||
util_time_compare(const struct util_time *t1,
|
||||
const struct util_time *t2)
|
||||
{
|
||||
#ifndef WIN32
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
if (t1->tv.tv_sec < t2->tv.tv_sec)
|
||||
return -1;
|
||||
else if(t1->tv.tv_sec > t2->tv.tv_sec)
|
||||
@@ -109,7 +119,7 @@ util_time_compare(const struct util_time *t1,
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
#else
|
||||
#elif defined(PIPE_OS_WINDOWS)
|
||||
if (t1->counter < t2->counter)
|
||||
return -1;
|
||||
else if(t1->counter > t2->counter)
|
||||
@@ -132,7 +142,7 @@ util_time_timeout(const struct util_time *start,
|
||||
}
|
||||
|
||||
|
||||
#ifdef WIN32
|
||||
#if defined(PIPE_OS_WINDOWS)
|
||||
void util_time_sleep(unsigned usecs)
|
||||
{
|
||||
LONGLONG start, curr, end;
|
||||
|
@@ -36,7 +36,9 @@
|
||||
#define U_TIME_H_
|
||||
|
||||
|
||||
#ifndef WIN32
|
||||
#include "pipe/p_config.h"
|
||||
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
#include <time.h> /* timeval */
|
||||
#include <unistd.h> /* usleep */
|
||||
#endif
|
||||
@@ -56,7 +58,7 @@ extern "C" {
|
||||
*/
|
||||
struct util_time
|
||||
{
|
||||
#ifndef WIN32
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
struct timeval tv;
|
||||
#else
|
||||
long long counter;
|
||||
@@ -84,7 +86,7 @@ util_time_timeout(const struct util_time *start,
|
||||
const struct util_time *end,
|
||||
const struct util_time *curr);
|
||||
|
||||
#ifndef WIN32
|
||||
#if defined(PIPE_OS_LINUX)
|
||||
#define util_time_sleep usleep
|
||||
#else
|
||||
void
|
||||
|
@@ -28,6 +28,7 @@
|
||||
#ifndef P_UTIL_H
|
||||
#define P_UTIL_H
|
||||
|
||||
#include "p_config.h"
|
||||
#include "p_compiler.h"
|
||||
#include "p_debug.h"
|
||||
#include "p_pointer.h"
|
||||
@@ -40,7 +41,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(WIN32) && defined(DEBUG) /* memory debugging */
|
||||
#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) && defined(DEBUG) /* memory debugging */
|
||||
|
||||
#include "p_debug.h"
|
||||
|
||||
@@ -55,7 +56,7 @@ extern "C" {
|
||||
|
||||
#else
|
||||
|
||||
#ifdef WIN32
|
||||
#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
|
||||
|
||||
void * __stdcall
|
||||
EngAllocMem(
|
||||
@@ -118,7 +119,7 @@ REALLOC( void *old_ptr, unsigned old_size, unsigned new_size )
|
||||
return new_ptr;
|
||||
}
|
||||
|
||||
#else /* !WIN32 */
|
||||
#else /* !PIPE_SUBSYSTEM_WINDOWS_DISPLAY */
|
||||
|
||||
#define MALLOC( SIZE ) malloc( SIZE )
|
||||
|
||||
@@ -128,7 +129,7 @@ REALLOC( void *old_ptr, unsigned old_size, unsigned new_size )
|
||||
|
||||
#define REALLOC( OLDPTR, OLDSIZE, NEWSIZE ) realloc( OLDPTR, NEWSIZE )
|
||||
|
||||
#endif /* !WIN32 */
|
||||
#endif /* !PIPE_SUBSYSTEM_WINDOWS_DISPLAY */
|
||||
#endif /* !DEBUG */
|
||||
|
||||
#define MALLOC_STRUCT(T) (struct T *) MALLOC(sizeof(struct T))
|
||||
|
Reference in New Issue
Block a user