125ca8c79SSascha Wildner /****************************************************************************** 225ca8c79SSascha Wildner * 325ca8c79SSascha Wildner * Name: acclib.h -- C library support. Prototypes for the (optional) local 425ca8c79SSascha Wildner * implementations of required C library functions. 525ca8c79SSascha Wildner * 625ca8c79SSascha Wildner *****************************************************************************/ 725ca8c79SSascha Wildner 8b4315fc7SSascha Wildner /****************************************************************************** 9b4315fc7SSascha Wildner * 10b4315fc7SSascha Wildner * 1. Copyright Notice 11b4315fc7SSascha Wildner * 12*383048acSSascha Wildner * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. 1325ca8c79SSascha Wildner * All rights reserved. 1425ca8c79SSascha Wildner * 15b4315fc7SSascha Wildner * 2. License 16b4315fc7SSascha Wildner * 17b4315fc7SSascha Wildner * 2.1. This is your license from Intel Corp. under its intellectual property 18b4315fc7SSascha Wildner * rights. You may have additional license terms from the party that provided 19b4315fc7SSascha Wildner * you this software, covering your right to use that party's intellectual 20b4315fc7SSascha Wildner * property rights. 21b4315fc7SSascha Wildner * 22b4315fc7SSascha Wildner * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 23b4315fc7SSascha Wildner * copy of the source code appearing in this file ("Covered Code") an 24b4315fc7SSascha Wildner * irrevocable, perpetual, worldwide license under Intel's copyrights in the 25b4315fc7SSascha Wildner * base code distributed originally by Intel ("Original Intel Code") to copy, 26b4315fc7SSascha Wildner * make derivatives, distribute, use and display any portion of the Covered 27b4315fc7SSascha Wildner * Code in any form, with the right to sublicense such rights; and 28b4315fc7SSascha Wildner * 29b4315fc7SSascha Wildner * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 30b4315fc7SSascha Wildner * license (with the right to sublicense), under only those claims of Intel 31b4315fc7SSascha Wildner * patents that are infringed by the Original Intel Code, to make, use, sell, 32b4315fc7SSascha Wildner * offer to sell, and import the Covered Code and derivative works thereof 33b4315fc7SSascha Wildner * solely to the minimum extent necessary to exercise the above copyright 34b4315fc7SSascha Wildner * license, and in no event shall the patent license extend to any additions 35b4315fc7SSascha Wildner * to or modifications of the Original Intel Code. No other license or right 36b4315fc7SSascha Wildner * is granted directly or by implication, estoppel or otherwise; 37b4315fc7SSascha Wildner * 38b4315fc7SSascha Wildner * The above copyright and patent license is granted only if the following 39b4315fc7SSascha Wildner * conditions are met: 40b4315fc7SSascha Wildner * 41b4315fc7SSascha Wildner * 3. Conditions 42b4315fc7SSascha Wildner * 43b4315fc7SSascha Wildner * 3.1. Redistribution of Source with Rights to Further Distribute Source. 44b4315fc7SSascha Wildner * Redistribution of source code of any substantial portion of the Covered 45b4315fc7SSascha Wildner * Code or modification with rights to further distribute source must include 46b4315fc7SSascha Wildner * the above Copyright Notice, the above License, this list of Conditions, 47b4315fc7SSascha Wildner * and the following Disclaimer and Export Compliance provision. In addition, 48b4315fc7SSascha Wildner * Licensee must cause all Covered Code to which Licensee contributes to 49b4315fc7SSascha Wildner * contain a file documenting the changes Licensee made to create that Covered 50b4315fc7SSascha Wildner * Code and the date of any change. Licensee must include in that file the 51b4315fc7SSascha Wildner * documentation of any changes made by any predecessor Licensee. Licensee 52b4315fc7SSascha Wildner * must include a prominent statement that the modification is derived, 53b4315fc7SSascha Wildner * directly or indirectly, from Original Intel Code. 54b4315fc7SSascha Wildner * 55b4315fc7SSascha Wildner * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 56b4315fc7SSascha Wildner * Redistribution of source code of any substantial portion of the Covered 57b4315fc7SSascha Wildner * Code or modification without rights to further distribute source must 58b4315fc7SSascha Wildner * include the following Disclaimer and Export Compliance provision in the 59b4315fc7SSascha Wildner * documentation and/or other materials provided with distribution. In 60b4315fc7SSascha Wildner * addition, Licensee may not authorize further sublicense of source of any 61b4315fc7SSascha Wildner * portion of the Covered Code, and must include terms to the effect that the 62b4315fc7SSascha Wildner * license from Licensee to its licensee is limited to the intellectual 63b4315fc7SSascha Wildner * property embodied in the software Licensee provides to its licensee, and 64b4315fc7SSascha Wildner * not to intellectual property embodied in modifications its licensee may 65b4315fc7SSascha Wildner * make. 66b4315fc7SSascha Wildner * 67b4315fc7SSascha Wildner * 3.3. Redistribution of Executable. Redistribution in executable form of any 68b4315fc7SSascha Wildner * substantial portion of the Covered Code or modification must reproduce the 69b4315fc7SSascha Wildner * above Copyright Notice, and the following Disclaimer and Export Compliance 70b4315fc7SSascha Wildner * provision in the documentation and/or other materials provided with the 71b4315fc7SSascha Wildner * distribution. 72b4315fc7SSascha Wildner * 73b4315fc7SSascha Wildner * 3.4. Intel retains all right, title, and interest in and to the Original 74b4315fc7SSascha Wildner * Intel Code. 75b4315fc7SSascha Wildner * 76b4315fc7SSascha Wildner * 3.5. Neither the name Intel nor any other trademark owned or controlled by 77b4315fc7SSascha Wildner * Intel shall be used in advertising or otherwise to promote the sale, use or 78b4315fc7SSascha Wildner * other dealings in products derived from or relating to the Covered Code 79b4315fc7SSascha Wildner * without prior written authorization from Intel. 80b4315fc7SSascha Wildner * 81b4315fc7SSascha Wildner * 4. Disclaimer and Export Compliance 82b4315fc7SSascha Wildner * 83b4315fc7SSascha Wildner * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 84b4315fc7SSascha Wildner * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 85b4315fc7SSascha Wildner * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 86b4315fc7SSascha Wildner * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 87b4315fc7SSascha Wildner * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 88b4315fc7SSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 89b4315fc7SSascha Wildner * PARTICULAR PURPOSE. 90b4315fc7SSascha Wildner * 91b4315fc7SSascha Wildner * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 92b4315fc7SSascha Wildner * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 93b4315fc7SSascha Wildner * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 94b4315fc7SSascha Wildner * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 95b4315fc7SSascha Wildner * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 96b4315fc7SSascha Wildner * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 97b4315fc7SSascha Wildner * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 98b4315fc7SSascha Wildner * LIMITED REMEDY. 99b4315fc7SSascha Wildner * 100b4315fc7SSascha Wildner * 4.3. Licensee shall not export, either directly or indirectly, any of this 101b4315fc7SSascha Wildner * software or system incorporating such software without first obtaining any 102b4315fc7SSascha Wildner * required license or other approval from the U. S. Department of Commerce or 103b4315fc7SSascha Wildner * any other agency or department of the United States Government. In the 104b4315fc7SSascha Wildner * event Licensee exports any such software from the United States or 105b4315fc7SSascha Wildner * re-exports any such software from a foreign destination, Licensee shall 106b4315fc7SSascha Wildner * ensure that the distribution and export/re-export of the software is in 107b4315fc7SSascha Wildner * compliance with all laws, regulations, orders, or other restrictions of the 108b4315fc7SSascha Wildner * U.S. Export Administration Regulations. Licensee agrees that neither it nor 109b4315fc7SSascha Wildner * any of its subsidiaries will export/re-export any technical data, process, 110b4315fc7SSascha Wildner * software, or service, directly or indirectly, to any country for which the 111b4315fc7SSascha Wildner * United States government or any agency thereof requires an export license, 112b4315fc7SSascha Wildner * other governmental approval, or letter of assurance, without first obtaining 113b4315fc7SSascha Wildner * such license, approval or letter. 114b4315fc7SSascha Wildner * 115b4315fc7SSascha Wildner ***************************************************************************** 116b4315fc7SSascha Wildner * 117b4315fc7SSascha Wildner * Alternatively, you may choose to be licensed under the terms of the 118b4315fc7SSascha Wildner * following license: 119b4315fc7SSascha Wildner * 12025ca8c79SSascha Wildner * Redistribution and use in source and binary forms, with or without 12125ca8c79SSascha Wildner * modification, are permitted provided that the following conditions 12225ca8c79SSascha Wildner * are met: 12325ca8c79SSascha Wildner * 1. Redistributions of source code must retain the above copyright 12425ca8c79SSascha Wildner * notice, this list of conditions, and the following disclaimer, 12525ca8c79SSascha Wildner * without modification. 12625ca8c79SSascha Wildner * 2. Redistributions in binary form must reproduce at minimum a disclaimer 12725ca8c79SSascha Wildner * substantially similar to the "NO WARRANTY" disclaimer below 12825ca8c79SSascha Wildner * ("Disclaimer") and any redistribution must be conditioned upon 12925ca8c79SSascha Wildner * including a substantially similar Disclaimer requirement for further 13025ca8c79SSascha Wildner * binary redistribution. 13125ca8c79SSascha Wildner * 3. Neither the names of the above-listed copyright holders nor the names 13225ca8c79SSascha Wildner * of any contributors may be used to endorse or promote products derived 13325ca8c79SSascha Wildner * from this software without specific prior written permission. 13425ca8c79SSascha Wildner * 135b4315fc7SSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 136b4315fc7SSascha Wildner * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 137b4315fc7SSascha Wildner * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 138b4315fc7SSascha Wildner * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 139b4315fc7SSascha Wildner * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 140b4315fc7SSascha Wildner * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 141b4315fc7SSascha Wildner * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 142b4315fc7SSascha Wildner * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 143b4315fc7SSascha Wildner * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 144b4315fc7SSascha Wildner * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 145b4315fc7SSascha Wildner * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 146b4315fc7SSascha Wildner * 147b4315fc7SSascha Wildner * Alternatively, you may choose to be licensed under the terms of the 14825ca8c79SSascha Wildner * GNU General Public License ("GPL") version 2 as published by the Free 14925ca8c79SSascha Wildner * Software Foundation. 15025ca8c79SSascha Wildner * 151b4315fc7SSascha Wildner *****************************************************************************/ 15225ca8c79SSascha Wildner 15325ca8c79SSascha Wildner #ifndef _ACCLIB_H 15425ca8c79SSascha Wildner #define _ACCLIB_H 15525ca8c79SSascha Wildner 15625ca8c79SSascha Wildner 15725ca8c79SSascha Wildner /* 15825ca8c79SSascha Wildner * Prototypes and macros for local implementations of C library functions 15925ca8c79SSascha Wildner */ 16025ca8c79SSascha Wildner 16125ca8c79SSascha Wildner /* is* functions. The AcpiGbl_Ctypes array is defined in utclib.c */ 16225ca8c79SSascha Wildner 16325ca8c79SSascha Wildner extern const UINT8 AcpiGbl_Ctypes[]; 16425ca8c79SSascha Wildner 16525ca8c79SSascha Wildner #define _ACPI_XA 0x00 /* extra alphabetic - not supported */ 16625ca8c79SSascha Wildner #define _ACPI_XS 0x40 /* extra space */ 16725ca8c79SSascha Wildner #define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */ 16825ca8c79SSascha Wildner #define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */ 16925ca8c79SSascha Wildner #define _ACPI_DI 0x04 /* '0'-'9' */ 17025ca8c79SSascha Wildner #define _ACPI_LO 0x02 /* 'a'-'z' */ 17125ca8c79SSascha Wildner #define _ACPI_PU 0x10 /* punctuation */ 17225ca8c79SSascha Wildner #define _ACPI_SP 0x08 /* space, tab, CR, LF, VT, FF */ 17325ca8c79SSascha Wildner #define _ACPI_UP 0x01 /* 'A'-'Z' */ 17425ca8c79SSascha Wildner #define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */ 17525ca8c79SSascha Wildner 17625ca8c79SSascha Wildner #define isdigit(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_DI)) 17725ca8c79SSascha Wildner #define isspace(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_SP)) 17825ca8c79SSascha Wildner #define isxdigit(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_XD)) 17925ca8c79SSascha Wildner #define isupper(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_UP)) 18025ca8c79SSascha Wildner #define islower(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_LO)) 18125ca8c79SSascha Wildner #define isprint(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_XS | _ACPI_PU)) 18225ca8c79SSascha Wildner #define isalpha(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP)) 18325ca8c79SSascha Wildner 184277350a0SSascha Wildner /* Error code */ 185277350a0SSascha Wildner 186277350a0SSascha Wildner #define EPERM 1 /* Operation not permitted */ 187277350a0SSascha Wildner #define ENOENT 2 /* No such file or directory */ 188277350a0SSascha Wildner #define EINTR 4 /* Interrupted system call */ 189277350a0SSascha Wildner #define EIO 5 /* I/O error */ 190277350a0SSascha Wildner #define EBADF 9 /* Bad file number */ 191277350a0SSascha Wildner #define EAGAIN 11 /* Try again */ 192277350a0SSascha Wildner #define ENOMEM 12 /* Out of memory */ 193277350a0SSascha Wildner #define EACCES 13 /* Permission denied */ 194277350a0SSascha Wildner #define EFAULT 14 /* Bad address */ 195277350a0SSascha Wildner #define EBUSY 16 /* Device or resource busy */ 196277350a0SSascha Wildner #define EEXIST 17 /* File exists */ 197277350a0SSascha Wildner #define ENODEV 19 /* No such device */ 198277350a0SSascha Wildner #define EINVAL 22 /* Invalid argument */ 199277350a0SSascha Wildner #define EPIPE 32 /* Broken pipe */ 200277350a0SSascha Wildner #define ERANGE 34 /* Math result not representable */ 20125ca8c79SSascha Wildner 20225ca8c79SSascha Wildner /* Strings */ 20325ca8c79SSascha Wildner 20425ca8c79SSascha Wildner char * 20525ca8c79SSascha Wildner strcat ( 20625ca8c79SSascha Wildner char *DstString, 20725ca8c79SSascha Wildner const char *SrcString); 20825ca8c79SSascha Wildner 20925ca8c79SSascha Wildner char * 21025ca8c79SSascha Wildner strchr ( 21125ca8c79SSascha Wildner const char *String, 21225ca8c79SSascha Wildner int ch); 21325ca8c79SSascha Wildner 21425ca8c79SSascha Wildner char * 21538b5d46cSSascha Wildner strpbrk ( 21638b5d46cSSascha Wildner const char *String, 21738b5d46cSSascha Wildner const char *Delimiters); 21838b5d46cSSascha Wildner 21938b5d46cSSascha Wildner char * 22038b5d46cSSascha Wildner strtok ( 22138b5d46cSSascha Wildner char *String, 22238b5d46cSSascha Wildner const char *Delimiters); 22338b5d46cSSascha Wildner 22438b5d46cSSascha Wildner char * 22525ca8c79SSascha Wildner strcpy ( 22625ca8c79SSascha Wildner char *DstString, 22725ca8c79SSascha Wildner const char *SrcString); 22825ca8c79SSascha Wildner 22925ca8c79SSascha Wildner int 23025ca8c79SSascha Wildner strcmp ( 23125ca8c79SSascha Wildner const char *String1, 23225ca8c79SSascha Wildner const char *String2); 23325ca8c79SSascha Wildner 23425ca8c79SSascha Wildner ACPI_SIZE 23525ca8c79SSascha Wildner strlen ( 23625ca8c79SSascha Wildner const char *String); 23725ca8c79SSascha Wildner 23825ca8c79SSascha Wildner char * 23925ca8c79SSascha Wildner strncat ( 24025ca8c79SSascha Wildner char *DstString, 24125ca8c79SSascha Wildner const char *SrcString, 24225ca8c79SSascha Wildner ACPI_SIZE Count); 24325ca8c79SSascha Wildner 24425ca8c79SSascha Wildner int 24525ca8c79SSascha Wildner strncmp ( 24625ca8c79SSascha Wildner const char *String1, 24725ca8c79SSascha Wildner const char *String2, 24825ca8c79SSascha Wildner ACPI_SIZE Count); 24925ca8c79SSascha Wildner 25025ca8c79SSascha Wildner char * 25125ca8c79SSascha Wildner strncpy ( 25225ca8c79SSascha Wildner char *DstString, 25325ca8c79SSascha Wildner const char *SrcString, 25425ca8c79SSascha Wildner ACPI_SIZE Count); 25525ca8c79SSascha Wildner 25625ca8c79SSascha Wildner char * 25725ca8c79SSascha Wildner strstr ( 25825ca8c79SSascha Wildner char *String1, 25925ca8c79SSascha Wildner char *String2); 26025ca8c79SSascha Wildner 26125ca8c79SSascha Wildner 26225ca8c79SSascha Wildner /* Conversion */ 26325ca8c79SSascha Wildner 26425ca8c79SSascha Wildner UINT32 26525ca8c79SSascha Wildner strtoul ( 26625ca8c79SSascha Wildner const char *String, 26725ca8c79SSascha Wildner char **Terminator, 26825ca8c79SSascha Wildner UINT32 Base); 26925ca8c79SSascha Wildner 27025ca8c79SSascha Wildner 27125ca8c79SSascha Wildner /* Memory */ 27225ca8c79SSascha Wildner 27325ca8c79SSascha Wildner int 27425ca8c79SSascha Wildner memcmp ( 27525ca8c79SSascha Wildner void *Buffer1, 27625ca8c79SSascha Wildner void *Buffer2, 27725ca8c79SSascha Wildner ACPI_SIZE Count); 27825ca8c79SSascha Wildner 27925ca8c79SSascha Wildner void * 28025ca8c79SSascha Wildner memcpy ( 28125ca8c79SSascha Wildner void *Dest, 28225ca8c79SSascha Wildner const void *Src, 28325ca8c79SSascha Wildner ACPI_SIZE Count); 28425ca8c79SSascha Wildner 28525ca8c79SSascha Wildner void * 28638b5d46cSSascha Wildner memmove ( 28738b5d46cSSascha Wildner void *Dest, 28838b5d46cSSascha Wildner const void *Src, 28938b5d46cSSascha Wildner ACPI_SIZE Count); 29038b5d46cSSascha Wildner 29138b5d46cSSascha Wildner void * 29225ca8c79SSascha Wildner memset ( 29325ca8c79SSascha Wildner void *Dest, 29425ca8c79SSascha Wildner int Value, 29525ca8c79SSascha Wildner ACPI_SIZE Count); 29625ca8c79SSascha Wildner 29725ca8c79SSascha Wildner 29825ca8c79SSascha Wildner /* upper/lower case */ 29925ca8c79SSascha Wildner 30025ca8c79SSascha Wildner int 30125ca8c79SSascha Wildner tolower ( 30225ca8c79SSascha Wildner int c); 30325ca8c79SSascha Wildner 30425ca8c79SSascha Wildner int 30525ca8c79SSascha Wildner toupper ( 30625ca8c79SSascha Wildner int c); 30725ca8c79SSascha Wildner 308277350a0SSascha Wildner /* 309277350a0SSascha Wildner * utprint - printf/vprintf output functions 310277350a0SSascha Wildner */ 311277350a0SSascha Wildner const char * 312277350a0SSascha Wildner AcpiUtScanNumber ( 313277350a0SSascha Wildner const char *String, 314277350a0SSascha Wildner UINT64 *NumberPtr); 315277350a0SSascha Wildner 316277350a0SSascha Wildner const char * 317277350a0SSascha Wildner AcpiUtPrintNumber ( 318277350a0SSascha Wildner char *String, 319277350a0SSascha Wildner UINT64 Number); 320277350a0SSascha Wildner 321277350a0SSascha Wildner int 322277350a0SSascha Wildner vsnprintf ( 323277350a0SSascha Wildner char *String, 324277350a0SSascha Wildner ACPI_SIZE Size, 325277350a0SSascha Wildner const char *Format, 326277350a0SSascha Wildner va_list Args); 327277350a0SSascha Wildner 328277350a0SSascha Wildner int 329277350a0SSascha Wildner snprintf ( 330277350a0SSascha Wildner char *String, 331277350a0SSascha Wildner ACPI_SIZE Size, 332277350a0SSascha Wildner const char *Format, 333277350a0SSascha Wildner ...); 334277350a0SSascha Wildner 335277350a0SSascha Wildner int 336277350a0SSascha Wildner sprintf ( 337277350a0SSascha Wildner char *String, 338277350a0SSascha Wildner const char *Format, 339277350a0SSascha Wildner ...); 340277350a0SSascha Wildner 341277350a0SSascha Wildner #ifdef ACPI_APPLICATION 342277350a0SSascha Wildner #define SEEK_SET 0 343277350a0SSascha Wildner #define SEEK_CUR 1 344277350a0SSascha Wildner #define SEEK_END 2 345277350a0SSascha Wildner 346277350a0SSascha Wildner /* 347277350a0SSascha Wildner * NOTE: Currently we only need to update errno for file IOs. Other 34800ffa116SSascha Wildner * Clibrary invocations in ACPICA do not make decisions according to 349277350a0SSascha Wildner * the errno. 350277350a0SSascha Wildner */ 351277350a0SSascha Wildner extern int errno; 352277350a0SSascha Wildner 35338b5d46cSSascha Wildner #ifndef EOF 35438b5d46cSSascha Wildner #define EOF (-1) 35538b5d46cSSascha Wildner #endif 35638b5d46cSSascha Wildner 35738b5d46cSSascha Wildner #define putchar(c) fputc(stdout, c) 35838b5d46cSSascha Wildner #define getchar(c) fgetc(stdin) 35938b5d46cSSascha Wildner 360277350a0SSascha Wildner int 361277350a0SSascha Wildner vprintf ( 362277350a0SSascha Wildner const char *Format, 363277350a0SSascha Wildner va_list Args); 364277350a0SSascha Wildner 365277350a0SSascha Wildner int 366277350a0SSascha Wildner printf ( 367277350a0SSascha Wildner const char *Format, 368277350a0SSascha Wildner ...); 369277350a0SSascha Wildner 370277350a0SSascha Wildner int 371277350a0SSascha Wildner vfprintf ( 372277350a0SSascha Wildner FILE *File, 373277350a0SSascha Wildner const char *Format, 374277350a0SSascha Wildner va_list Args); 375277350a0SSascha Wildner 376277350a0SSascha Wildner int 377277350a0SSascha Wildner fprintf ( 378277350a0SSascha Wildner FILE *File, 379277350a0SSascha Wildner const char *Format, 380277350a0SSascha Wildner ...); 381277350a0SSascha Wildner 382277350a0SSascha Wildner FILE * 383277350a0SSascha Wildner fopen ( 384277350a0SSascha Wildner const char *Path, 385277350a0SSascha Wildner const char *Modes); 386277350a0SSascha Wildner 387277350a0SSascha Wildner void 388277350a0SSascha Wildner fclose ( 389277350a0SSascha Wildner FILE *File); 390277350a0SSascha Wildner 391277350a0SSascha Wildner int 392277350a0SSascha Wildner fread ( 393277350a0SSascha Wildner void *Buffer, 394277350a0SSascha Wildner ACPI_SIZE Size, 395277350a0SSascha Wildner ACPI_SIZE Count, 396277350a0SSascha Wildner FILE *File); 397277350a0SSascha Wildner 398277350a0SSascha Wildner int 399277350a0SSascha Wildner fwrite ( 400277350a0SSascha Wildner void *Buffer, 401277350a0SSascha Wildner ACPI_SIZE Size, 402277350a0SSascha Wildner ACPI_SIZE Count, 403277350a0SSascha Wildner FILE *File); 404277350a0SSascha Wildner 405277350a0SSascha Wildner int 406277350a0SSascha Wildner fseek ( 407277350a0SSascha Wildner FILE *File, 408277350a0SSascha Wildner long Offset, 409277350a0SSascha Wildner int From); 410277350a0SSascha Wildner 411277350a0SSascha Wildner long 412277350a0SSascha Wildner ftell ( 413277350a0SSascha Wildner FILE *File); 41438b5d46cSSascha Wildner 41538b5d46cSSascha Wildner int 41638b5d46cSSascha Wildner fgetc ( 41738b5d46cSSascha Wildner FILE *File); 41838b5d46cSSascha Wildner 41938b5d46cSSascha Wildner int 42038b5d46cSSascha Wildner fputc ( 42138b5d46cSSascha Wildner FILE *File, 42238b5d46cSSascha Wildner char c); 42338b5d46cSSascha Wildner 42438b5d46cSSascha Wildner char * 42538b5d46cSSascha Wildner fgets ( 42638b5d46cSSascha Wildner char *s, 42738b5d46cSSascha Wildner ACPI_SIZE Size, 42838b5d46cSSascha Wildner FILE *File); 429277350a0SSascha Wildner #endif 430277350a0SSascha Wildner 43125ca8c79SSascha Wildner #endif /* _ACCLIB_H */ 432