acfreebsd.h revision 102550
1155131Srwatson/****************************************************************************** 2155131Srwatson * 3185573Srwatson * Name: acfreebsd.h - OS specific defines, etc. 4155131Srwatson * $Revision: 10 $ 5155131Srwatson * 6155131Srwatson *****************************************************************************/ 7155131Srwatson 8155131Srwatson/****************************************************************************** 9155131Srwatson * 10155131Srwatson * 1. Copyright Notice 11155131Srwatson * 12155131Srwatson * Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp. 13155131Srwatson * All rights reserved. 14168777Srwatson * 15155131Srwatson * 2. License 16155131Srwatson * 17155131Srwatson * 2.1. This is your license from Intel Corp. under its intellectual property 18155131Srwatson * rights. You may have additional license terms from the party that provided 19155131Srwatson * you this software, covering your right to use that party's intellectual 20155131Srwatson * property rights. 21155131Srwatson * 22155131Srwatson * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 23155131Srwatson * copy of the source code appearing in this file ("Covered Code") an 24155131Srwatson * irrevocable, perpetual, worldwide license under Intel's copyrights in the 25155131Srwatson * base code distributed originally by Intel ("Original Intel Code") to copy, 26155131Srwatson * make derivatives, distribute, use and display any portion of the Covered 27185573Srwatson * Code in any form, with the right to sublicense such rights; and 28155131Srwatson * 29155131Srwatson * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 30155131Srwatson * license (with the right to sublicense), under only those claims of Intel 31155131Srwatson * patents that are infringed by the Original Intel Code, to make, use, sell, 32155131Srwatson * offer to sell, and import the Covered Code and derivative works thereof 33155131Srwatson * solely to the minimum extent necessary to exercise the above copyright 34168777Srwatson * license, and in no event shall the patent license extend to any additions 35155131Srwatson * to or modifications of the Original Intel Code. No other license or right 36155131Srwatson * is granted directly or by implication, estoppel or otherwise; 37155131Srwatson * 38155131Srwatson * The above copyright and patent license is granted only if the following 39155131Srwatson * conditions are met: 40168777Srwatson * 41168777Srwatson * 3. Conditions 42168777Srwatson * 43155131Srwatson * 3.1. Redistribution of Source with Rights to Further Distribute Source. 44155131Srwatson * Redistribution of source code of any substantial portion of the Covered 45155131Srwatson * Code or modification with rights to further distribute source must include 46168777Srwatson * the above Copyright Notice, the above License, this list of Conditions, 47155131Srwatson * and the following Disclaimer and Export Compliance provision. In addition, 48168777Srwatson * Licensee must cause all Covered Code to which Licensee contributes to 49155131Srwatson * contain a file documenting the changes Licensee made to create that Covered 50168777Srwatson * Code and the date of any change. Licensee must include in that file the 51185573Srwatson * documentation of any changes made by any predecessor Licensee. Licensee 52185573Srwatson * must include a prominent statement that the modification is derived, 53185573Srwatson * directly or indirectly, from Original Intel Code. 54185573Srwatson * 55185573Srwatson * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 56185573Srwatson * Redistribution of source code of any substantial portion of the Covered 57185573Srwatson * Code or modification without rights to further distribute source must 58185573Srwatson * include the following Disclaimer and Export Compliance provision in the 59185573Srwatson * documentation and/or other materials provided with distribution. In 60185573Srwatson * addition, Licensee may not authorize further sublicense of source of any 61185573Srwatson * portion of the Covered Code, and must include terms to the effect that the 62185573Srwatson * license from Licensee to its licensee is limited to the intellectual 63155131Srwatson * property embodied in the software Licensee provides to its licensee, and 64155131Srwatson * not to intellectual property embodied in modifications its licensee may 65155131Srwatson * make. 66168777Srwatson * 67168777Srwatson * 3.3. Redistribution of Executable. Redistribution in executable form of any 68155131Srwatson * substantial portion of the Covered Code or modification must reproduce the 69155131Srwatson * above Copyright Notice, and the following Disclaimer and Export Compliance 70155131Srwatson * provision in the documentation and/or other materials provided with the 71155131Srwatson * distribution. 72168777Srwatson * 73168777Srwatson * 3.4. Intel retains all right, title, and interest in and to the Original 74168777Srwatson * Intel Code. 75168777Srwatson * 76168777Srwatson * 3.5. Neither the name Intel nor any other trademark owned or controlled by 77155131Srwatson * Intel shall be used in advertising or otherwise to promote the sale, use or 78168777Srwatson * other dealings in products derived from or relating to the Covered Code 79155131Srwatson * without prior written authorization from Intel. 80155131Srwatson * 81168777Srwatson * 4. Disclaimer and Export Compliance 82168777Srwatson * 83168777Srwatson * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 84168777Srwatson * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 85155131Srwatson * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 86155131Srwatson * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 87155131Srwatson * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 88155131Srwatson * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 89155131Srwatson * PARTICULAR PURPOSE. 90155131Srwatson * 91 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 92 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 93 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 94 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 95 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 96 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 97 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 98 * LIMITED REMEDY. 99 * 100 * 4.3. Licensee shall not export, either directly or indirectly, any of this 101 * software or system incorporating such software without first obtaining any 102 * required license or other approval from the U. S. Department of Commerce or 103 * any other agency or department of the United States Government. In the 104 * event Licensee exports any such software from the United States or 105 * re-exports any such software from a foreign destination, Licensee shall 106 * ensure that the distribution and export/re-export of the software is in 107 * compliance with all laws, regulations, orders, or other restrictions of the 108 * U.S. Export Administration Regulations. Licensee agrees that neither it nor 109 * any of its subsidiaries will export/re-export any technical data, process, 110 * software, or service, directly or indirectly, to any country for which the 111 * United States government or any agency thereof requires an export license, 112 * other governmental approval, or letter of assurance, without first obtaining 113 * such license, approval or letter. 114 * 115 *****************************************************************************/ 116 117#ifndef __ACFREEBSD_H__ 118#define __ACFREEBSD_H__ 119 120/* 121 * XXX this is technically correct, but will cause problems with some ASL 122 * which only works if the string names a Microsoft operating system. 123 */ 124#define ACPI_OS_NAME "FreeBSD" 125 126/* FreeBSD uses GCC */ 127 128#include "acgcc.h" 129#include <machine/acpica_machdep.h> 130 131#ifdef _KERNEL 132#include <sys/ctype.h> 133#include <sys/param.h> 134#include <sys/systm.h> 135#include <sys/libkern.h> 136#include <machine/stdarg.h> 137 138#define asm __asm 139#define __cli() disable_intr() 140#define __sti() enable_intr() 141 142#ifdef ACPI_DEBUG_OUTPUT 143#ifdef DEBUGGER_THREADING 144#undef DEBUGGER_THREADING 145#endif /* DEBUGGER_THREADING */ 146#define DEBUGGER_THREADING 0 /* integrated with DDB */ 147#include "opt_ddb.h" 148#ifdef DDB 149#define ACPI_DEBUGGER 150#endif /* DDB */ 151#endif /* ACPI_DEBUG_OUTPUT */ 152 153#else /* _KERNEL */ 154 155/* Not building kernel code, so use libc */ 156#define ACPI_USE_STANDARD_HEADERS 157 158#define __cli() 159#define __sti() 160 161#endif /* _KERNEL */ 162 163/* Always use FreeBSD code over our local versions */ 164#define ACPI_USE_SYSTEM_CLIBRARY 165 166/* FreeBSD doesn't have strupr, should be fixed. (move to libkern) */ 167static __inline char * 168strupr(char *str) 169{ 170 char *c = str; 171 while(*c) { 172 *c = toupper(*c); 173 c++; 174 } 175 return(str); 176} 177 178#ifdef _KERNEL 179/* Or strstr (used in debugging mode, also move to libkern) */ 180static __inline char * 181strstr(char *s, char *find) 182{ 183 char c, sc; 184 size_t len; 185 186 if ((c = *find++) != 0) { 187 len = strlen(find); 188 do { 189 do { 190 if ((sc = *s++) == 0) 191 return (NULL); 192 } while (sc != c); 193 } while (strncmp(s, find, len) != 0); 194 s--; 195 } 196 return ((char *)s); 197} 198#endif /* _KERNEL */ 199 200#endif /* __ACFREEBSD_H__ */ 201