summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/auxiliary/os/os_memory.h4
-rw-r--r--src/gallium/auxiliary/os/os_memory_win32k.h123
-rw-r--r--src/gallium/auxiliary/os/os_misc.c120
-rw-r--r--src/gallium/auxiliary/os/os_misc.h2
-rw-r--r--src/gallium/auxiliary/os/os_time.c50
-rw-r--r--src/gallium/auxiliary/util/u_atomic.h5
-rw-r--r--src/gallium/auxiliary/util/u_debug.c47
-rw-r--r--src/gallium/auxiliary/util/u_debug_refcnt.c2
-rw-r--r--src/gallium/auxiliary/util/u_math.h68
-rw-r--r--src/gallium/auxiliary/util/u_snprintf.c8
-rw-r--r--src/gallium/include/pipe/p_config.h14
11 files changed, 11 insertions, 432 deletions
diff --git a/src/gallium/auxiliary/os/os_memory.h b/src/gallium/auxiliary/os/os_memory.h
index 91a84a24bc8..46a6b6e4572 100644
--- a/src/gallium/auxiliary/os/os_memory.h
+++ b/src/gallium/auxiliary/os/os_memory.h
@@ -71,10 +71,6 @@ os_free_aligned(void *ptr);
# include "os_memory_debug.h"
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) || defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
-
-# include "os_memory_win32k.h"
-
#else
# include "os_memory_stdc.h"
diff --git a/src/gallium/auxiliary/os/os_memory_win32k.h b/src/gallium/auxiliary/os/os_memory_win32k.h
deleted file mode 100644
index d56d6908722..00000000000
--- a/src/gallium/auxiliary/os/os_memory_win32k.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2008-2010 VMware, Inc.
- * 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 VMWARE 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.
- *
- **************************************************************************/
-
-
-/*
- * OS memory management abstractions for Windows kernel.
- */
-
-
-#ifndef _OS_MEMORY_H_
-#error "Must not be included directly. Include os_memory.h instead"
-#endif
-
-
-#include "pipe/p_compiler.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
-
-void * __stdcall
-EngAllocMem(unsigned long Flags,
- unsigned long MemSize,
- unsigned long Tag);
-
-void __stdcall
-EngFreeMem(void *Mem);
-
-#define os_malloc(_size) EngAllocMem(0, _size, 'D3AG')
-#define os_calloc(_count, _size) EngAllocMem(1, (_count)*(_size), 'D3AG')
-#define _os_free(_ptr) EngFreeMem(_ptr)
-
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
-
-void *
-ExAllocatePool(unsigned long PoolType,
- size_t NumberOfBytes);
-
-void
-ExFreePool(void *P);
-
-#define os_malloc(_size) ExAllocatePool(0, _size)
-#define _os_free(_ptr) ExFreePool(_ptr)
-
-static INLINE void *
-os_calloc(unsigned count, unsigned size)
-{
- void *ptr = os_malloc(count * size);
- if (ptr) {
- memset(ptr, 0, count * size);
- }
- return ptr;
-}
-
-#else
-
-#error "Unsupported subsystem"
-
-#endif
-
-
-static INLINE void
-os_free( void *ptr )
-{
- if (ptr) {
- _os_free(ptr);
- }
-}
-
-
-static INLINE void *
-os_realloc(void *old_ptr, unsigned old_size, unsigned new_size)
-{
- void *new_ptr = NULL;
-
- if (new_size != 0) {
- unsigned copy_size = old_size < new_size ? old_size : new_size;
- new_ptr = os_malloc( new_size );
- if (new_ptr && old_ptr && copy_size) {
- memcpy(new_ptr, old_ptr, copy_size);
- }
- }
-
- os_free(old_ptr);
-
- return new_ptr;
-}
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#include "os_memory_aligned.h"
diff --git a/src/gallium/auxiliary/os/os_misc.c b/src/gallium/auxiliary/os/os_misc.c
index 384988017b7..5744dd5b4fc 100644
--- a/src/gallium/auxiliary/os/os_misc.c
+++ b/src/gallium/auxiliary/os/os_misc.c
@@ -31,19 +31,7 @@
#include <stdarg.h>
-#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
-
-#include <windows.h>
-#include <winddi.h>
-
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_CE)
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <windows.h>
-#include <types.h>
-
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER)
+#if defined(PIPE_SUBSYSTEM_WINDOWS_USER)
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
@@ -59,44 +47,16 @@
#endif
-#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
-static INLINE void
-_EngDebugPrint(const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- EngDebugPrint("", (PCHAR)format, ap);
- va_end(ap);
-}
-#endif
-
-
void
os_log_message(const char *message)
{
-#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
- _EngDebugPrint("%s", message);
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER)
+#if defined(PIPE_SUBSYSTEM_WINDOWS_USER)
OutputDebugStringA(message);
if(GetConsoleWindow() && !IsDebuggerPresent()) {
fflush(stdout);
fputs(message, stderr);
fflush(stderr);
}
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_CE)
- wchar_t *wide_format;
- long wide_str_len;
- /* Format is ascii - needs to be converted to wchar_t for printing */
- wide_str_len = MultiByteToWideChar(CP_ACP, 0, message, -1, NULL, 0);
- wide_format = (wchar_t *) malloc((wide_str_len+1) * sizeof(wchar_t));
- if (wide_format) {
- MultiByteToWideChar(CP_ACP, 0, message, -1,
- wide_format, wide_str_len);
- NKDbgPrintfW(wide_format, wide_format);
- free(wide_format);
- }
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
- /* TODO */
#else /* !PIPE_SUBSYSTEM_WINDOWS */
fflush(stdout);
fputs(message, stderr);
@@ -104,85 +64,9 @@ os_log_message(const char *message)
}
-#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
-static const char *
-find(const char *start, const char *end, char c)
-{
- const char *p;
- for(p = start; !end || p != end; ++p) {
- if(*p == c)
- return p;
- if(*p < 32)
- break;
- }
- return NULL;
-}
-
-static int
-compare(const char *start, const char *end, const char *s)
-{
- const char *p, *q;
- for(p = start, q = s; p != end && *q != '\0'; ++p, ++q) {
- if(*p != *q)
- return 0;
- }
- return p == end && *q == '\0';
-}
-
-static void
-copy(char *dst, const char *start, const char *end, size_t n)
-{
- const char *p;
- char *q;
- for(p = start, q = dst, n = n - 1; p != end && n; ++p, ++q, --n)
- *q = *p;
- *q = '\0';
-}
-#endif
-
-
const char *
os_get_option(const char *name)
{
-#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
- /* EngMapFile creates the file if it does not exists, so it must either be
- * disabled on release versions (or put in a less conspicuous place). */
-#ifdef DEBUG
- const char *result = NULL;
- ULONG_PTR iFile = 0;
- const void *pMap = NULL;
- const char *sol, *eol, *sep;
- static char output[1024];
-
- pMap = EngMapFile(L"\\??\\c:\\gallium.cfg", 0, &iFile);
- if(pMap) {
- sol = (const char *)pMap;
- while(1) {
- /* TODO: handle LF line endings */
- eol = find(sol, NULL, '\r');
- if(!eol || eol == sol)
- break;
- sep = find(sol, eol, '=');
- if(!sep)
- break;
- if(compare(sol, sep, name)) {
- copy(output, sep + 1, eol, sizeof(output));
- result = output;
- break;
- }
- sol = eol + 2;
- }
- EngUnmapFile(iFile);
- }
- return result;
-#else
- return NULL;
-#endif
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_CE) || defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
- /* TODO: implement */
- return NULL;
-#else
return getenv(name);
-#endif
}
diff --git a/src/gallium/auxiliary/os/os_misc.h b/src/gallium/auxiliary/os/os_misc.h
index 48522dac4d7..5029ab96aac 100644
--- a/src/gallium/auxiliary/os/os_misc.h
+++ b/src/gallium/auxiliary/os/os_misc.h
@@ -66,7 +66,7 @@ extern "C" {
/*
* Abort the program.
*/
-#if defined(DEBUG) || defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) || defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
+#if defined(DEBUG)
# define os_abort() os_break()
#else
# define os_abort() abort()
diff --git a/src/gallium/auxiliary/os/os_time.c b/src/gallium/auxiliary/os/os_time.c
index 73d86296d91..3e9d50a598a 100644
--- a/src/gallium/auxiliary/os/os_time.c
+++ b/src/gallium/auxiliary/os/os_time.c
@@ -37,13 +37,7 @@
#if defined(PIPE_OS_UNIX)
# include <sys/time.h> /* timeval */
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
-# include <windows.h>
-# include <winddi.h>
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
-# include <windows.h>
-extern VOID KeQuerySystemTime(PLARGE_INTEGER);
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER) || defined(PIPE_SUBSYSTEM_WINDOWS_CE)
+#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER)
# include <windows.h>
#else
# error Unsupported OS
@@ -61,16 +55,7 @@ os_time_get(void)
gettimeofday(&tv, NULL);
return tv.tv_usec + tv.tv_sec*1000000LL;
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
-
- static LONGLONG frequency;
- LONGLONG counter;
- if(!frequency)
- EngQueryPerformanceFrequency(&frequency);
- EngQueryPerformanceCounter(&counter);
- return counter*INT64_C(1000000)/frequency;
-
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER) || defined(PIPE_SUBSYSTEM_WINDOWS_CE)
+#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER)
static LARGE_INTEGER frequency;
LARGE_INTEGER counter;
@@ -79,40 +64,11 @@ os_time_get(void)
QueryPerformanceCounter(&counter);
return counter.QuadPart*INT64_C(1000000)/frequency.QuadPart;
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
-
- /* Updated every 10 miliseconds, measured in units of 100 nanoseconds.
- * http://msdn.microsoft.com/en-us/library/ms801642.aspx */
- LARGE_INTEGER counter;
- KeQuerySystemTime(&counter);
- return counter.QuadPart/10;
-
#endif
}
-#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
-
-void
-os_time_sleep(int64_t usecs)
-{
- static LONGLONG frequency;
- LONGLONG start, curr, end;
-
- EngQueryPerformanceCounter(&start);
-
- if(!frequency)
- EngQueryPerformanceFrequency(&frequency);
-
- end = start + (usecs * frequency + 999999LL)/1000000LL;
-
- do {
- EngQueryPerformanceCounter(&curr);
- } while(start <= curr && curr < end ||
- end < start && (curr < end || start <= curr));
-}
-
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER)
+#if defined(PIPE_SUBSYSTEM_WINDOWS_USER)
void
os_time_sleep(int64_t usecs)
diff --git a/src/gallium/auxiliary/util/u_atomic.h b/src/gallium/auxiliary/util/u_atomic.h
index 8434491a421..2f2b42b346f 100644
--- a/src/gallium/auxiliary/util/u_atomic.h
+++ b/src/gallium/auxiliary/util/u_atomic.h
@@ -18,10 +18,7 @@
* locally coded assembly, compiler intrinsic or ultimately a
* mutex-based implementation.
*/
-#if (defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) || \
- defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT))
-#define PIPE_ATOMIC_OS_UNLOCKED
-#elif defined(PIPE_OS_SOLARIS)
+#if defined(PIPE_OS_SOLARIS)
#define PIPE_ATOMIC_OS_SOLARIS
#elif defined(PIPE_CC_MSVC)
#define PIPE_ATOMIC_MSVC_INTRINSIC
diff --git a/src/gallium/auxiliary/util/u_debug.c b/src/gallium/auxiliary/util/u_debug.c
index b3a30adadb0..df1d8e68cfd 100644
--- a/src/gallium/auxiliary/util/u_debug.c
+++ b/src/gallium/auxiliary/util/u_debug.c
@@ -274,11 +274,7 @@ void _debug_assert_fail(const char *expr,
const char *function)
{
_debug_printf("%s:%u:%s: Assertion `%s' failed.\n", file, line, function, expr);
-#if defined(PIPE_OS_WINDOWS) && !defined(PIPE_SUBSYSTEM_WINDOWS_USER)
- if (debug_get_bool_option("GALLIUM_ABORT_ON_ASSERT", FALSE))
-#else
if (debug_get_bool_option("GALLIUM_ABORT_ON_ASSERT", TRUE))
-#endif
os_abort();
else
_debug_printf("continuing...\n");
@@ -453,42 +449,6 @@ void debug_dump_image(const char *prefix,
unsigned stride,
const void *data)
{
-#ifdef PIPE_SUBSYSTEM_WINDOWS_DISPLAY
- static unsigned no = 0;
- char filename[256];
- WCHAR wfilename[sizeof(filename)];
- ULONG_PTR iFile = 0;
- struct {
- unsigned format;
- unsigned cpp;
- unsigned width;
- unsigned height;
- } header;
- unsigned char *pMap = NULL;
- unsigned i;
-
- util_snprintf(filename, sizeof(filename), "\\??\\c:\\%03u%s.raw", ++no, prefix);
- for(i = 0; i < sizeof(filename); ++i)
- wfilename[i] = (WCHAR)filename[i];
-
- pMap = (unsigned char *)EngMapFile(wfilename, sizeof(header) + height*width*cpp, &iFile);
- if(!pMap)
- return;
-
- header.format = format;
- header.cpp = cpp;
- header.width = width;
- header.height = height;
- memcpy(pMap, &header, sizeof(header));
- pMap += sizeof(header);
-
- for(i = 0; i < height; ++i) {
- memcpy(pMap, (unsigned char *)data + stride*i, cpp*width);
- pMap += cpp*width;
- }
-
- EngUnmapFile(iFile);
-#elif defined(PIPE_OS_UNIX)
/* write a ppm file */
char filename[256];
FILE *f;
@@ -534,7 +494,6 @@ void debug_dump_image(const char *prefix,
else {
fprintf(stderr, "Can't open %s for writing\n", filename);
}
-#endif
}
/* FIXME: dump resources, not surfaces... */
@@ -636,7 +595,6 @@ debug_dump_surface_bmp(struct pipe_context *pipe,
const char *filename,
struct pipe_surface *surface)
{
-#ifndef PIPE_SUBSYSTEM_WINDOWS_MINIPORT
struct pipe_transfer *transfer;
struct pipe_resource *texture = surface->texture;
@@ -647,7 +605,6 @@ debug_dump_surface_bmp(struct pipe_context *pipe,
debug_dump_transfer_bmp(pipe, filename, transfer);
pipe->transfer_destroy(pipe, transfer);
-#endif
}
void
@@ -655,7 +612,6 @@ debug_dump_transfer_bmp(struct pipe_context *pipe,
const char *filename,
struct pipe_transfer *transfer)
{
-#ifndef PIPE_SUBSYSTEM_WINDOWS_MINIPORT
float *rgba;
if (!transfer)
@@ -679,7 +635,6 @@ debug_dump_transfer_bmp(struct pipe_context *pipe,
FREE(rgba);
error1:
;
-#endif
}
void
@@ -687,7 +642,6 @@ debug_dump_float_rgba_bmp(const char *filename,
unsigned width, unsigned height,
float *rgba, unsigned stride)
{
-#ifndef PIPE_SUBSYSTEM_WINDOWS_MINIPORT
FILE *stream;
struct bmp_file_header bmfh;
struct bmp_info_header bmih;
@@ -738,7 +692,6 @@ debug_dump_float_rgba_bmp(const char *filename,
fclose(stream);
error1:
;
-#endif
}
#endif
diff --git a/src/gallium/auxiliary/util/u_debug_refcnt.c b/src/gallium/auxiliary/util/u_debug_refcnt.c
index 2679932008d..b94f1af1851 100644
--- a/src/gallium/auxiliary/util/u_debug_refcnt.c
+++ b/src/gallium/auxiliary/util/u_debug_refcnt.c
@@ -24,7 +24,7 @@
*
**************************************************************************/
-#if defined(DEBUG) && (!defined(PIPE_OS_WINDOWS) || defined(PIPE_SUBSYSTEM_WINDOWS_USER))
+#if defined(DEBUG)
/* see http://www.mozilla.org/performance/refcnt-balancer.html for what do with the output
* on Linux, use tools/addr2line.sh to postprocess it before anything else
diff --git a/src/gallium/auxiliary/util/u_math.h b/src/gallium/auxiliary/util/u_math.h
index 551463f75cd..f908341f624 100644
--- a/src/gallium/auxiliary/util/u_math.h
+++ b/src/gallium/auxiliary/util/u_math.h
@@ -48,74 +48,8 @@ extern "C" {
#endif
-#if defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
-__inline double ceil(double val)
-{
- double ceil_val;
-
- if ((val - (long) val) == 0) {
- ceil_val = val;
- }
- else {
- if (val > 0) {
- ceil_val = (long) val + 1;
- }
- else {
- ceil_val = (long) val;
- }
- }
-
- return ceil_val;
-}
-
-#ifndef PIPE_SUBSYSTEM_WINDOWS_CE_OGL
-__inline double floor(double val)
-{
- double floor_val;
-
- if ((val - (long) val) == 0) {
- floor_val = val;
- }
- else {
- if (val > 0) {
- floor_val = (long) val;
- }
- else {
- floor_val = (long) val - 1;
- }
- }
-
- return floor_val;
-}
-#endif
-
-#pragma function(pow)
-__inline double __cdecl pow(double val, double exponent)
-{
- /* XXX */
- assert(0);
- return 0;
-}
-
-#pragma function(log)
-__inline double __cdecl log(double val)
-{
- /* XXX */
- assert(0);
- return 0;
-}
-
-#pragma function(atan2)
-__inline double __cdecl atan2(double val)
-{
- /* XXX */
- assert(0);
- return 0;
-}
-#else
#include <math.h>
#include <stdarg.h>
-#endif
#ifndef M_SQRT2
@@ -125,7 +59,7 @@ __inline double __cdecl atan2(double val)
#if defined(_MSC_VER)
-#if _MSC_VER < 1400 && !defined(__cplusplus) || defined(PIPE_SUBSYSTEM_WINDOWS_CE)
+#if _MSC_VER < 1400 && !defined(__cplusplus)
static INLINE float cosf( float f )
{
diff --git a/src/gallium/auxiliary/util/u_snprintf.c b/src/gallium/auxiliary/util/u_snprintf.c
index 65bdd0df2b7..f0d53b3cecd 100644
--- a/src/gallium/auxiliary/util/u_snprintf.c
+++ b/src/gallium/auxiliary/util/u_snprintf.c
@@ -1113,11 +1113,7 @@ again:
* Factor of ten with the number of digits needed for the fractional
* part. For example, if the precision is 3, the mask will be 1000.
*/
-#if defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
- mask = (unsigned long)mypow10(precision);
-#else
mask = (UINTMAX_T)mypow10(precision);
-#endif
/*
* We "cheat" by converting the fractional part to integer by
* multiplying by a factor of ten.
@@ -1369,11 +1365,7 @@ cast(LDOUBLE value)
if (value >= UINTMAX_MAX)
return UINTMAX_MAX;
-#if defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
- result = (unsigned long)value;
-#else
result = (UINTMAX_T)value;
-#endif
/*
* At least on NetBSD/sparc64 3.0.2 and 4.99.30, casting long double to
* an integer type converts e.g. 1.9 to 2 instead of 1 (which violates
diff --git a/src/gallium/include/pipe/p_config.h b/src/gallium/include/pipe/p_config.h
index 7cd42c6f71c..d63eccdc447 100644
--- a/src/gallium/include/pipe/p_config.h
+++ b/src/gallium/include/pipe/p_config.h
@@ -229,20 +229,10 @@
#endif /* PIPE_OS_LINUX || PIPE_OS_BSD || PIPE_OS_SOLARIS */
#if defined(PIPE_OS_WINDOWS)
-#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
-/* Windows 2000/XP Display Driver */
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
-/* Windows 2000/XP Miniport Driver */
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER)
+#if defined(PIPE_SUBSYSTEM_WINDOWS_USER)
/* Windows User-space Library */
-#elif defined(PIPE_SUBSYSTEM_WINDOWS_CE)
-/* Windows CE 5.0/6.0 */
#else
-#ifdef _WIN32_WCE
-#define PIPE_SUBSYSTEM_WINDOWS_CE
-#else /* !_WIN32_WCE */
-#error No PIPE_SUBSYSTEM_WINDOWS_xxx subsystem defined.
-#endif /* !_WIN32_WCE */
+#define PIPE_SUBSYSTEM_WINDOWS_USER
#endif
#endif /* PIPE_OS_WINDOWS */