acpica_machdep.h revision 128979
178344Sobrien/*- 278344Sobrien * Copyright (c) 2002 Mitsuru IWASAKI 3171881Smtm * All rights reserved. 498184Sgordon * 578344Sobrien * Redistribution and use in source and binary forms, with or without 678344Sobrien * modification, are permitted provided that the following conditions 7171881Smtm * are met: 8172040Smtm * 1. Redistributions of source code must retain the above copyright 998184Sgordon * notice, this list of conditions and the following disclaimer. 10180564Sdougb * 2. Redistributions in binary form must reproduce the above copyright 1178344Sobrien * notice, this list of conditions and the following disclaimer in the 1278344Sobrien * documentation and/or other materials provided with the distribution. 1378344Sobrien * 14171881Smtm * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15171881Smtm * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16171881Smtm * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17171881Smtm * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18180070Smtm * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19171881Smtm * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2078344Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21171881Smtm * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22171881Smtm * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23125987Smtm * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24171881Smtm * SUCH DAMAGE. 25168085Smtm * 26169653Smtm * $FreeBSD: head/sys/i386/include/acpica_machdep.h 128979 2004-05-05 20:04:14Z njl $ 27169653Smtm */ 28169653Smtm 29180070Smtm/****************************************************************************** 30168085Smtm * 31169653Smtm * Name: acpica_machdep.h - arch-specific defines, etc. 32168085Smtm * $Revision$ 33168085Smtm * 34168085Smtm *****************************************************************************/ 35168085Smtm 36169653Smtm#ifndef __ACPICA_MACHDEP_H__ 37168085Smtm#define __ACPICA_MACHDEP_H__ 38171871Smtm 39169653Smtm#ifdef _KERNEL 40168085Smtm/* 41168085Smtm * Calling conventions: 4278344Sobrien * 43171871Smtm * ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads) 44 * ACPI_EXTERNAL_XFACE - External ACPI interfaces 45 * ACPI_INTERNAL_XFACE - Internal ACPI interfaces 46 * ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces 47 */ 48#define ACPI_SYSTEM_XFACE 49#define ACPI_EXTERNAL_XFACE 50#define ACPI_INTERNAL_XFACE 51#define ACPI_INTERNAL_VAR_XFACE 52 53/* Asm macros */ 54 55#define ACPI_ASM_MACROS 56#define BREAKPOINT3 57#define ACPI_DISABLE_IRQS() disable_intr() 58#define ACPI_ENABLE_IRQS() enable_intr() 59 60#define ACPI_FLUSH_CPU_CACHE() wbinvd() 61 62/* Section 5.2.9.1: global lock acquire/release functions */ 63extern int acpi_acquire_global_lock(uint32_t *lock); 64extern int acpi_release_global_lock(uint32_t *lock); 65#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ 66 ((Acq) = acpi_acquire_global_lock(GLptr)) 67#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \ 68 ((Acq) = acpi_release_global_lock(GLptr)) 69 70/*! [Begin] no source code translation 71 * 72 * Math helper asm macros 73 */ 74#define asm __asm 75#define ACPI_DIV_64_BY_32(n_hi, n_lo, d32, q32, r32) \ 76 asm("divl %2;" \ 77 :"=a"(q32), "=d"(r32) \ 78 :"r"(d32), \ 79 "0"(n_lo), "1"(n_hi)) 80 81 82#define ACPI_SHIFT_RIGHT_64(n_hi, n_lo) \ 83 asm("shrl $1,%2;" \ 84 "rcrl $1,%3;" \ 85 :"=r"(n_hi), "=r"(n_lo) \ 86 :"0"(n_hi), "1"(n_lo)) 87 88/*! [End] no source code translation !*/ 89#endif /* _KERNEL */ 90 91#define ACPI_MACHINE_WIDTH 32 92#define COMPILER_DEPENDENT_INT64 long long 93#define COMPILER_DEPENDENT_UINT64 unsigned long long 94#define ACPI_USE_NATIVE_DIVIDE 95 96void acpi_SetDefaultIntrModel(int model); 97 98#endif /* __ACPICA_MACHDEP_H__ */ 99