/* woutsup.h: for Cygwin code compiled outside the DLL (i.e. cygserver). Copyright 2002 Red Hat, Inc. This file is part of Cygwin. This software is a copyrighted work licensed under the terms of the Cygwin license. Please consult the file "CYGWIN_LICENSE" for details. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef __INSIDE_CYGWIN__ #error "woutsup.h is not for code being compiled inside the dll" #endif #define WIN32_LEAN_AND_MEAN 1 #define _WINGDI_H #define _WINUSER_H #define _WINNLS_H #define _WINVER_H #define _WINNETWK_H #define _WINSVC_H #include #include #include #undef _WINGDI_H #undef _WINUSER_H #undef _WINNLS_H #undef _WINVER_H #undef _WINNETWK_H #undef _WINSVC_H #include "wincap.h" /* The one function we use from winuser.h most of the time */ extern "C" DWORD WINAPI GetLastError (void); /* From "winsup.h". */ #if !defined(__STDC_VERSION__) || __STDC_VERSION__ >= 199900L #define NEW_MACRO_VARARGS #endif /* * A reproduction of the api_fatal() and macros. This * allows code that runs both inside and outside the Cygwin DLL to use * the same macros for logging messages. */ #include #ifdef NEW_MACRO_VARARGS #define system_printf(...) \ do \ { \ fprintf (stderr, "%s: ", __PRETTY_FUNCTION__); \ fprintf (stderr, __VA_ARGS__); \ fputc ('\n', stderr); \ } while (false); #define __noop_printf(...) do {;} while (false) #else /* !NEW_MACRO_VARARGS */ #define system_printf(args...) \ do \ { \ fprintf (stderr, "%s: ", __PRETTY_FUNCTION__); \ fprintf (stderr, ## args); \ fputc ('\n', stderr); \ } while (false) #define __noop_printf(args...) do {;} while (false) #endif /* !NEW_MACRO_VARARGS */ #define api_fatal system_printf #ifdef DEBUGGING #define debug_printf system_printf #define paranoid_printf system_printf #define select_printf system_printf #define sigproc_printf system_printf #define syscall_printf system_printf #define termios_printf system_printf #define wm_printf system_printf #define minimal_printf system_printf #define malloc_printf system_printf #define thread_printf system_printf #else #define debug_printf __noop_printf #define paranoid_printf __noop_printf #define select_printf __noop_printf #define sigproc_printf __noop_printf #define syscall_printf __noop_printf #define termios_printf __noop_printf #define wm_printf __noop_printf #define minimal_printf __noop_printf #define malloc_printf __noop_printf #define thread_printf __noop_printf #endif