1aa2aa9a6SDana Myers /****************************************************************************** 2aa2aa9a6SDana Myers * 3aa2aa9a6SDana Myers * Name: accygwin.h - OS specific defines, etc. for cygwin environment 4aa2aa9a6SDana Myers * 5aa2aa9a6SDana Myers *****************************************************************************/ 6aa2aa9a6SDana Myers 726f3cdf0SGordon Ross /* 8*7b1019a6SJerry Jelinek * Copyright (C) 2000 - 2016, Intel Corp. 9aa2aa9a6SDana Myers * All rights reserved. 10aa2aa9a6SDana Myers * 1126f3cdf0SGordon Ross * Redistribution and use in source and binary forms, with or without 1226f3cdf0SGordon Ross * modification, are permitted provided that the following conditions 1326f3cdf0SGordon Ross * are met: 1426f3cdf0SGordon Ross * 1. Redistributions of source code must retain the above copyright 1526f3cdf0SGordon Ross * notice, this list of conditions, and the following disclaimer, 1626f3cdf0SGordon Ross * without modification. 1726f3cdf0SGordon Ross * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1826f3cdf0SGordon Ross * substantially similar to the "NO WARRANTY" disclaimer below 1926f3cdf0SGordon Ross * ("Disclaimer") and any redistribution must be conditioned upon 2026f3cdf0SGordon Ross * including a substantially similar Disclaimer requirement for further 2126f3cdf0SGordon Ross * binary redistribution. 2226f3cdf0SGordon Ross * 3. Neither the names of the above-listed copyright holders nor the names 2326f3cdf0SGordon Ross * of any contributors may be used to endorse or promote products derived 2426f3cdf0SGordon Ross * from this software without specific prior written permission. 2526f3cdf0SGordon Ross * 2626f3cdf0SGordon Ross * Alternatively, this software may be distributed under the terms of the 2726f3cdf0SGordon Ross * GNU General Public License ("GPL") version 2 as published by the Free 2826f3cdf0SGordon Ross * Software Foundation. 2926f3cdf0SGordon Ross * 3026f3cdf0SGordon Ross * NO WARRANTY 3126f3cdf0SGordon Ross * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 3226f3cdf0SGordon Ross * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 3326f3cdf0SGordon Ross * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 3426f3cdf0SGordon Ross * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 3526f3cdf0SGordon Ross * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3626f3cdf0SGordon Ross * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3726f3cdf0SGordon Ross * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3826f3cdf0SGordon Ross * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 3926f3cdf0SGordon Ross * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 4026f3cdf0SGordon Ross * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 4126f3cdf0SGordon Ross * POSSIBILITY OF SUCH DAMAGES. 4226f3cdf0SGordon Ross */ 43aa2aa9a6SDana Myers 44aa2aa9a6SDana Myers #ifndef __ACCYGWIN_H__ 45aa2aa9a6SDana Myers #define __ACCYGWIN_H__ 46aa2aa9a6SDana Myers 47aa2aa9a6SDana Myers /* 48aa2aa9a6SDana Myers * ACPICA configuration 49aa2aa9a6SDana Myers */ 50aa2aa9a6SDana Myers #define ACPI_USE_SYSTEM_CLIBRARY 51aa2aa9a6SDana Myers #define ACPI_USE_DO_WHILE_0 52aa2aa9a6SDana Myers #define ACPI_FLUSH_CPU_CACHE() 53*7b1019a6SJerry Jelinek 54aa2aa9a6SDana Myers /* 55aa2aa9a6SDana Myers * This is needed since sem_timedwait does not appear to work properly 56aa2aa9a6SDana Myers * on cygwin (always hangs forever). 57aa2aa9a6SDana Myers */ 58aa2aa9a6SDana Myers #define ACPI_USE_ALTERNATE_TIMEOUT 59aa2aa9a6SDana Myers 60aa2aa9a6SDana Myers 61aa2aa9a6SDana Myers #include <stdarg.h> 62aa2aa9a6SDana Myers #include <string.h> 63aa2aa9a6SDana Myers #include <stdlib.h> 64aa2aa9a6SDana Myers #include <ctype.h> 65aa2aa9a6SDana Myers #include <unistd.h> 66aa2aa9a6SDana Myers 67aa2aa9a6SDana Myers #if defined(__ia64__) || defined(__x86_64__) 68aa2aa9a6SDana Myers #define ACPI_MACHINE_WIDTH 64 69aa2aa9a6SDana Myers #define COMPILER_DEPENDENT_INT64 long 70aa2aa9a6SDana Myers #define COMPILER_DEPENDENT_UINT64 unsigned long 71aa2aa9a6SDana Myers #else 72aa2aa9a6SDana Myers #define ACPI_MACHINE_WIDTH 32 73aa2aa9a6SDana Myers #define COMPILER_DEPENDENT_INT64 long long 74aa2aa9a6SDana Myers #define COMPILER_DEPENDENT_UINT64 unsigned long long 75aa2aa9a6SDana Myers #define ACPI_USE_NATIVE_DIVIDE 76aa2aa9a6SDana Myers #endif 77aa2aa9a6SDana Myers 78aa2aa9a6SDana Myers #ifndef __cdecl 79aa2aa9a6SDana Myers #define __cdecl 80aa2aa9a6SDana Myers #endif 81aa2aa9a6SDana Myers 8226f3cdf0SGordon Ross #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) if (GLptr) Acq=1; else Acq=0; 8326f3cdf0SGordon Ross #define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pending) Pending = 1 8426f3cdf0SGordon Ross 8526f3cdf0SGordon Ross /* On Cygwin, pthread_t is a pointer */ 86aa2aa9a6SDana Myers 8726f3cdf0SGordon Ross #define ACPI_CAST_PTHREAD_T(pthread) ((ACPI_THREAD_ID) ACPI_TO_INTEGER (pthread)) 88aa2aa9a6SDana Myers 89aa2aa9a6SDana Myers /* Cygwin uses GCC */ 90aa2aa9a6SDana Myers 91aa2aa9a6SDana Myers #include "acgcc.h" 92aa2aa9a6SDana Myers 93*7b1019a6SJerry Jelinek 94*7b1019a6SJerry Jelinek /* 95*7b1019a6SJerry Jelinek * The vsnprintf/snprintf functions are defined by c99, but cygwin/gcc 96*7b1019a6SJerry Jelinek * does not enable this prototype when the -ansi flag is set. Also related 97*7b1019a6SJerry Jelinek * to __STRICT_ANSI__. So, we just declare the prototype here. 98*7b1019a6SJerry Jelinek */ 99*7b1019a6SJerry Jelinek int 100*7b1019a6SJerry Jelinek vsnprintf (char *s, size_t n, const char *format, va_list ap); 101*7b1019a6SJerry Jelinek 102*7b1019a6SJerry Jelinek int 103*7b1019a6SJerry Jelinek snprintf (char *s, size_t n, const char *format, ...); 104*7b1019a6SJerry Jelinek 105aa2aa9a6SDana Myers #endif /* __ACCYGWIN_H__ */ 106