1*7b1019a6SJerry Jelinek /****************************************************************************** 2*7b1019a6SJerry Jelinek * 3*7b1019a6SJerry Jelinek * Name: acdragonfly.h - OS specific for DragonFly BSD 4*7b1019a6SJerry Jelinek * 5*7b1019a6SJerry Jelinek *****************************************************************************/ 6*7b1019a6SJerry Jelinek 7*7b1019a6SJerry Jelinek /* 8*7b1019a6SJerry Jelinek * Copyright (C) 2000 - 2016, Intel Corp. 9*7b1019a6SJerry Jelinek * All rights reserved. 10*7b1019a6SJerry Jelinek * 11*7b1019a6SJerry Jelinek * Redistribution and use in source and binary forms, with or without 12*7b1019a6SJerry Jelinek * modification, are permitted provided that the following conditions 13*7b1019a6SJerry Jelinek * are met: 14*7b1019a6SJerry Jelinek * 1. Redistributions of source code must retain the above copyright 15*7b1019a6SJerry Jelinek * notice, this list of conditions, and the following disclaimer, 16*7b1019a6SJerry Jelinek * without modification. 17*7b1019a6SJerry Jelinek * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18*7b1019a6SJerry Jelinek * substantially similar to the "NO WARRANTY" disclaimer below 19*7b1019a6SJerry Jelinek * ("Disclaimer") and any redistribution must be conditioned upon 20*7b1019a6SJerry Jelinek * including a substantially similar Disclaimer requirement for further 21*7b1019a6SJerry Jelinek * binary redistribution. 22*7b1019a6SJerry Jelinek * 3. Neither the names of the above-listed copyright holders nor the names 23*7b1019a6SJerry Jelinek * of any contributors may be used to endorse or promote products derived 24*7b1019a6SJerry Jelinek * from this software without specific prior written permission. 25*7b1019a6SJerry Jelinek * 26*7b1019a6SJerry Jelinek * Alternatively, this software may be distributed under the terms of the 27*7b1019a6SJerry Jelinek * GNU General Public License ("GPL") version 2 as published by the Free 28*7b1019a6SJerry Jelinek * Software Foundation. 29*7b1019a6SJerry Jelinek * 30*7b1019a6SJerry Jelinek * NO WARRANTY 31*7b1019a6SJerry Jelinek * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32*7b1019a6SJerry Jelinek * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33*7b1019a6SJerry Jelinek * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34*7b1019a6SJerry Jelinek * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35*7b1019a6SJerry Jelinek * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36*7b1019a6SJerry Jelinek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37*7b1019a6SJerry Jelinek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38*7b1019a6SJerry Jelinek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39*7b1019a6SJerry Jelinek * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40*7b1019a6SJerry Jelinek * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41*7b1019a6SJerry Jelinek * POSSIBILITY OF SUCH DAMAGES. 42*7b1019a6SJerry Jelinek */ 43*7b1019a6SJerry Jelinek 44*7b1019a6SJerry Jelinek #ifndef __ACDRAGONFLY_H_ 45*7b1019a6SJerry Jelinek #define __ACDRAGONFLY_H_ 46*7b1019a6SJerry Jelinek 47*7b1019a6SJerry Jelinek #include <platform/acgcc.h> /* DragonFly uses GCC */ 48*7b1019a6SJerry Jelinek #include <sys/types.h> 49*7b1019a6SJerry Jelinek 50*7b1019a6SJerry Jelinek #ifdef __LP64__ 51*7b1019a6SJerry Jelinek #define ACPI_MACHINE_WIDTH 64 52*7b1019a6SJerry Jelinek #else 53*7b1019a6SJerry Jelinek #define ACPI_MACHINE_WIDTH 32 54*7b1019a6SJerry Jelinek #define ACPI_USE_NATIVE_DIVIDE 55*7b1019a6SJerry Jelinek #endif 56*7b1019a6SJerry Jelinek 57*7b1019a6SJerry Jelinek #define ACPI_UINTPTR_T uintptr_t 58*7b1019a6SJerry Jelinek #define COMPILER_DEPENDENT_INT64 int64_t 59*7b1019a6SJerry Jelinek #define COMPILER_DEPENDENT_UINT64 uint64_t 60*7b1019a6SJerry Jelinek 61*7b1019a6SJerry Jelinek #define ACPI_USE_DO_WHILE_0 62*7b1019a6SJerry Jelinek #define ACPI_USE_SYSTEM_CLIBRARY 63*7b1019a6SJerry Jelinek 64*7b1019a6SJerry Jelinek #ifdef _KERNEL 65*7b1019a6SJerry Jelinek 66*7b1019a6SJerry Jelinek #include "opt_acpi.h" 67*7b1019a6SJerry Jelinek #include <sys/ctype.h> 68*7b1019a6SJerry Jelinek #include <sys/systm.h> 69*7b1019a6SJerry Jelinek #include <machine/acpica_machdep.h> 70*7b1019a6SJerry Jelinek #include <stdarg.h> 71*7b1019a6SJerry Jelinek 72*7b1019a6SJerry Jelinek #ifdef ACPI_DEBUG 73*7b1019a6SJerry Jelinek #define ACPI_DEBUG_OUTPUT /* enable debug output */ 74*7b1019a6SJerry Jelinek #ifdef DEBUGGER_THREADING 75*7b1019a6SJerry Jelinek #undef DEBUGGER_THREADING 76*7b1019a6SJerry Jelinek #endif /* DEBUGGER_THREADING */ 77*7b1019a6SJerry Jelinek #define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED /* integrated with DDB */ 78*7b1019a6SJerry Jelinek #include "opt_ddb.h" 79*7b1019a6SJerry Jelinek #ifdef DDB 80*7b1019a6SJerry Jelinek #define ACPI_DEBUGGER 81*7b1019a6SJerry Jelinek #endif /* DDB */ 82*7b1019a6SJerry Jelinek #define ACPI_DISASSEMBLER 83*7b1019a6SJerry Jelinek #endif 84*7b1019a6SJerry Jelinek 85*7b1019a6SJerry Jelinek #ifdef ACPI_DEBUG_CACHE 86*7b1019a6SJerry Jelinek #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject 87*7b1019a6SJerry Jelinek #define AcpiOsReleaseObject(Cache, Object) \ 88*7b1019a6SJerry Jelinek _AcpiOsReleaseObject((Cache), (Object), __func__, __LINE__) 89*7b1019a6SJerry Jelinek #endif 90*7b1019a6SJerry Jelinek 91*7b1019a6SJerry Jelinek #ifdef ACPI_DEBUG_LOCKS 92*7b1019a6SJerry Jelinek #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock 93*7b1019a6SJerry Jelinek #define AcpiOsAcquireLock(Handle) \ 94*7b1019a6SJerry Jelinek _AcpiOsAcquireLock((Handle), __func__, __LINE__) 95*7b1019a6SJerry Jelinek #endif 96*7b1019a6SJerry Jelinek 97*7b1019a6SJerry Jelinek #ifdef ACPI_DEBUG_MEMMAP 98*7b1019a6SJerry Jelinek #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory 99*7b1019a6SJerry Jelinek #define AcpiOsMapMemory(Where, Length) \ 100*7b1019a6SJerry Jelinek _AcpiOsMapMemory((Where), (Length), __func__, __LINE__) 101*7b1019a6SJerry Jelinek 102*7b1019a6SJerry Jelinek #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory 103*7b1019a6SJerry Jelinek #define AcpiOsUnmapMemory(LogicalAddress, Size) \ 104*7b1019a6SJerry Jelinek _AcpiOsUnmapMemory((LogicalAddress), (Size), __func__, __LINE__) 105*7b1019a6SJerry Jelinek #endif 106*7b1019a6SJerry Jelinek 107*7b1019a6SJerry Jelinek /* XXX TBI */ 108*7b1019a6SJerry Jelinek #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete 109*7b1019a6SJerry Jelinek #define AcpiOsWaitEventsComplete() 110*7b1019a6SJerry Jelinek 111*7b1019a6SJerry Jelinek #define USE_NATIVE_ALLOCATE_ZEROED 112*7b1019a6SJerry Jelinek 113*7b1019a6SJerry Jelinek #define ACPI_SPINLOCK struct acpi_spinlock * 114*7b1019a6SJerry Jelinek struct acpi_spinlock; 115*7b1019a6SJerry Jelinek 116*7b1019a6SJerry Jelinek #define ACPI_CACHE_T struct acpicache 117*7b1019a6SJerry Jelinek struct acpicache; 118*7b1019a6SJerry Jelinek 119*7b1019a6SJerry Jelinek #else /* _KERNEL */ 120*7b1019a6SJerry Jelinek 121*7b1019a6SJerry Jelinek #define ACPI_USE_STANDARD_HEADERS 122*7b1019a6SJerry Jelinek 123*7b1019a6SJerry Jelinek #define ACPI_CAST_PTHREAD_T(pthread) ((ACPI_THREAD_ID) ACPI_TO_INTEGER (pthread)) 124*7b1019a6SJerry Jelinek #define ACPI_FLUSH_CPU_CACHE() 125*7b1019a6SJerry Jelinek 126*7b1019a6SJerry Jelinek #endif /* _KERNEL */ 127*7b1019a6SJerry Jelinek 128*7b1019a6SJerry Jelinek #endif /* __ACDRAGONFLY_H_ */ 129