summaryrefslogtreecommitdiffstats
path: root/source/tools/acpisrc/acpisrc.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/tools/acpisrc/acpisrc.h')
-rw-r--r--source/tools/acpisrc/acpisrc.h405
1 files changed, 405 insertions, 0 deletions
diff --git a/source/tools/acpisrc/acpisrc.h b/source/tools/acpisrc/acpisrc.h
new file mode 100644
index 0000000..3c0e5dc
--- /dev/null
+++ b/source/tools/acpisrc/acpisrc.h
@@ -0,0 +1,405 @@
+
+/******************************************************************************
+ *
+ * Module Name: acpisrc.h - Include file for AcpiSrc utility
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2012, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+
+#define LINES_IN_LEGAL_HEADER 105 /* See above */
+#define LEGAL_HEADER_SIGNATURE " * 2.1. This is your license from Intel Corp. under its intellectual property"
+#define LINES_IN_LINUX_HEADER 34
+#define LINUX_HEADER_SIGNATURE " * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS"
+#define LINES_IN_ASL_HEADER 29 /* Header as output from disassembler */
+
+#include "acpi.h"
+#include "accommon.h"
+
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include <ctype.h>
+#ifdef WIN32
+#include <io.h>
+#include <direct.h>
+#endif
+#include <errno.h>
+
+
+/* O_BINARY is not always defined */
+#ifndef O_BINARY
+#define O_BINARY 0x0
+#endif
+
+/* Fixups for non-Win32 compilation */
+#ifndef WIN32
+#define mkdir(x) mkdir(x, 0770)
+char * strlwr(char* str);
+#endif
+
+
+/* Constants */
+
+#define ASRC_MAX_FILE_SIZE (1024 * 100)
+
+#define FILE_TYPE_SOURCE 1
+#define FILE_TYPE_HEADER 2
+#define FILE_TYPE_DIRECTORY 3
+
+#define CVT_COUNT_TABS 0x00000001
+#define CVT_COUNT_NON_ANSI_COMMENTS 0x00000002
+#define CVT_TRIM_LINES 0x00000004
+#define CVT_CHECK_BRACES 0x00000008
+#define CVT_COUNT_LINES 0x00000010
+#define CVT_BRACES_ON_SAME_LINE 0x00000020
+#define CVT_MIXED_CASE_TO_UNDERSCORES 0x00000040
+#define CVT_LOWER_CASE_IDENTIFIERS 0x00000080
+#define CVT_REMOVE_DEBUG_MACROS 0x00000100
+#define CVT_TRIM_WHITESPACE 0x00000200 /* Should be after all line removal */
+#define CVT_REMOVE_EMPTY_BLOCKS 0x00000400 /* Should be after trimming lines */
+#define CVT_REDUCE_TYPEDEFS 0x00000800
+#define CVT_COUNT_SHORTMULTILINE_COMMENTS 0x00001000
+#define CVT_SPACES_TO_TABS4 0x40000000 /* Tab conversion should be last */
+#define CVT_SPACES_TO_TABS8 0x80000000 /* Tab conversion should be last */
+
+#define FLG_DEFAULT_FLAGS 0x00000000
+#define FLG_NO_CARRIAGE_RETURNS 0x00000001
+#define FLG_NO_FILE_OUTPUT 0x00000002
+#define FLG_LOWERCASE_DIRNAMES 0x00000004
+
+#define AS_START_IGNORE "/*!"
+#define AS_STOP_IGNORE "!*/"
+
+
+/* Globals */
+
+extern UINT32 Gbl_Files;
+extern UINT32 Gbl_MissingBraces;
+extern UINT32 Gbl_Tabs;
+extern UINT32 Gbl_NonAnsiComments;
+extern UINT32 Gbl_SourceLines;
+extern UINT32 Gbl_WhiteLines;
+extern UINT32 Gbl_CommentLines;
+extern UINT32 Gbl_LongLines;
+extern UINT32 Gbl_TotalLines;
+extern UINT32 Gbl_HeaderSize;
+extern UINT32 Gbl_HeaderLines;
+extern struct stat Gbl_StatBuf;
+extern char *Gbl_FileBuffer;
+extern UINT32 Gbl_TotalSize;
+extern UINT32 Gbl_FileSize;
+extern UINT32 Gbl_FileType;
+extern BOOLEAN Gbl_VerboseMode;
+extern BOOLEAN Gbl_QuietMode;
+extern BOOLEAN Gbl_BatchMode;
+extern BOOLEAN Gbl_MadeChanges;
+extern BOOLEAN Gbl_Overwrite;
+extern BOOLEAN Gbl_WidenDeclarations;
+extern BOOLEAN Gbl_IgnoreLoneLineFeeds;
+extern BOOLEAN Gbl_HasLoneLineFeeds;
+extern void *Gbl_StructDefs;
+
+#define PARAM_LIST(pl) pl
+#define TERSE_PRINT(a) if (!Gbl_VerboseMode) printf PARAM_LIST(a)
+#define VERBOSE_PRINT(a) if (Gbl_VerboseMode) printf PARAM_LIST(a)
+
+#define REPLACE_WHOLE_WORD 0x00
+#define REPLACE_SUBSTRINGS 0x01
+#define REPLACE_MASK 0x01
+
+#define EXTRA_INDENT_C 0x02
+
+
+/* Conversion table structs */
+
+typedef struct acpi_string_table
+{
+ char *Target;
+ char *Replacement;
+ UINT8 Type;
+
+} ACPI_STRING_TABLE;
+
+
+typedef struct acpi_typed_identifier_table
+{
+ char *Identifier;
+ UINT8 Type;
+
+} ACPI_TYPED_IDENTIFIER_TABLE;
+
+#define SRC_TYPE_SIMPLE 0
+#define SRC_TYPE_STRUCT 1
+#define SRC_TYPE_UNION 2
+
+
+typedef struct acpi_identifier_table
+{
+ char *Identifier;
+
+} ACPI_IDENTIFIER_TABLE;
+
+typedef struct acpi_conversion_table
+{
+ char *NewHeader;
+ UINT32 Flags;
+
+ ACPI_TYPED_IDENTIFIER_TABLE *LowerCaseTable;
+
+ ACPI_STRING_TABLE *SourceStringTable;
+ ACPI_IDENTIFIER_TABLE *SourceLineTable;
+ ACPI_IDENTIFIER_TABLE *SourceConditionalTable;
+ ACPI_IDENTIFIER_TABLE *SourceMacroTable;
+ ACPI_TYPED_IDENTIFIER_TABLE *SourceStructTable;
+ UINT32 SourceFunctions;
+
+ ACPI_STRING_TABLE *HeaderStringTable;
+ ACPI_IDENTIFIER_TABLE *HeaderLineTable;
+ ACPI_IDENTIFIER_TABLE *HeaderConditionalTable;
+ ACPI_IDENTIFIER_TABLE *HeaderMacroTable;
+ ACPI_TYPED_IDENTIFIER_TABLE *HeaderStructTable;
+ UINT32 HeaderFunctions;
+
+} ACPI_CONVERSION_TABLE;
+
+
+/* Conversion tables */
+
+extern ACPI_CONVERSION_TABLE LinuxConversionTable;
+extern ACPI_CONVERSION_TABLE CleanupConversionTable;
+extern ACPI_CONVERSION_TABLE StatsConversionTable;
+extern ACPI_CONVERSION_TABLE CustomConversionTable;
+extern ACPI_CONVERSION_TABLE LicenseConversionTable;
+
+
+/* Prototypes */
+
+char *
+AsSkipUntilChar (
+ char *Buffer,
+ char Target);
+
+char *
+AsSkipPastChar (
+ char *Buffer,
+ char Target);
+
+char *
+AsReplaceData (
+ char *Buffer,
+ UINT32 LengthToRemove,
+ char *BufferToAdd,
+ UINT32 LengthToAdd);
+
+int
+AsReplaceString (
+ char *Target,
+ char *Replacement,
+ UINT8 Type,
+ char *Buffer);
+
+int
+AsLowerCaseString (
+ char *Target,
+ char *Buffer);
+
+void
+AsRemoveLine (
+ char *Buffer,
+ char *Keyword);
+
+void
+AsRemoveMacro (
+ char *Buffer,
+ char *Keyword);
+
+void
+AsCheckForBraces (
+ char *Buffer,
+ char *Filename);
+
+void
+AsTrimLines (
+ char *Buffer,
+ char *Filename);
+
+void
+AsMixedCaseToUnderscores (
+ char *Buffer);
+
+void
+AsCountTabs (
+ char *Buffer,
+ char *Filename);
+
+void
+AsBracesOnSameLine (
+ char *Buffer);
+
+void
+AsLowerCaseIdentifiers (
+ char *Buffer);
+
+void
+AsReduceTypedefs (
+ char *Buffer,
+ char *Keyword);
+
+void
+AsRemoveDebugMacros (
+ char *Buffer);
+
+void
+AsRemoveEmptyBlocks (
+ char *Buffer,
+ char *Filename);
+
+void
+AsCountSourceLines (
+ char *Buffer,
+ char *Filename);
+
+void
+AsCountNonAnsiComments (
+ char *Buffer,
+ char *Filename);
+
+void
+AsTrimWhitespace (
+ char *Buffer);
+
+void
+AsTabify4 (
+ char *Buffer);
+
+void
+AsTabify8 (
+ char *Buffer);
+
+void
+AsRemoveConditionalCompile (
+ char *Buffer,
+ char *Keyword);
+
+ACPI_NATIVE_INT
+AsProcessTree (
+ ACPI_CONVERSION_TABLE *ConversionTable,
+ char *SourcePath,
+ char *TargetPath);
+
+int
+AsGetFile (
+ char *FileName,
+ char **FileBuffer,
+ UINT32 *FileSize);
+
+int
+AsPutFile (
+ char *Pathname,
+ char *FileBuffer,
+ UINT32 SystemFlags);
+
+void
+AsReplaceHeader (
+ char *Buffer,
+ char *NewHeader);
+
+void
+AsConvertFile (
+ ACPI_CONVERSION_TABLE *ConversionTable,
+ char *FileBuffer,
+ char *Filename,
+ ACPI_NATIVE_INT FileType);
+
+ACPI_NATIVE_INT
+AsProcessOneFile (
+ ACPI_CONVERSION_TABLE *ConversionTable,
+ char *SourcePath,
+ char *TargetPath,
+ int MaxPathLength,
+ char *Filename,
+ ACPI_NATIVE_INT FileType);
+
+ACPI_NATIVE_INT
+AsCheckForDirectory (
+ char *SourceDirPath,
+ char *TargetDirPath,
+ char *Filename,
+ char **SourcePath,
+ char **TargetPath);
+
+BOOLEAN
+AsMatchExactWord (
+ char *Word,
+ UINT32 WordLength);
+
+void
+AsPrint (
+ char *Message,
+ UINT32 Count,
+ char *Filename);
+
+void
+AsInsertPrefix (
+ char *Buffer,
+ char *Keyword,
+ UINT8 Type);
+
+char *
+AsInsertData (
+ char *Buffer,
+ char *BufferToAdd,
+ UINT32 LengthToAdd);
+
+char *
+AsRemoveData (
+ char *StartPointer,
+ char *EndPointer);
+
+void
+AsInsertCarriageReturns (
+ char *Buffer);
+
+void
+AsConvertToLineFeeds (
+ char *Buffer);
+
+
OpenPOWER on IntegriCloud