From 3ed4b91545bc0bbf51fb7a410d59688784ab8aa8 Mon Sep 17 00:00:00 2001 From: aystarik Date: Wed, 29 Jun 2005 20:44:05 +0000 Subject: [PATCH] date 2000.06.28.22.53.00; author rmoore1; state Exp; --- source/tools/acpisrc/asconvrt.c | 1396 +++++++++++++++---------------- source/tools/acpisrc/asmain.c | 574 +++---------- 2 files changed, 812 insertions(+), 1158 deletions(-) diff --git a/source/tools/acpisrc/asconvrt.c b/source/tools/acpisrc/asconvrt.c index f47358708..2d2d6e155 100644 --- a/source/tools/acpisrc/asconvrt.c +++ b/source/tools/acpisrc/asconvrt.c @@ -1,8 +1,7 @@ /****************************************************************************** - * + * * Module Name: asconvrt - Source conversion code - * $Revision: 1.54 $ * *****************************************************************************/ @@ -10,8 +9,8 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp. - * All rights reserved. + * Some or all of this work - Copyright (c) 1999, Intel Corp. All rights + * reserved. * * 2. License * @@ -39,9 +38,9 @@ * The above copyright and patent license is granted only if the following * conditions are met: * - * 3. Conditions + * 3. Conditions * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * 3.1. Redistribution of Source with Rights to Further Distribute Source. * Redistribution of source code of any substantial portion of the Covered * Code or modification with rights to further distribute source must include * the above Copyright Notice, the above License, this list of Conditions, @@ -49,11 +48,11 @@ * Licensee must cause all Covered Code to which Licensee contributes to * contain a file documenting the changes Licensee made to create that Covered * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee + * documentation of any changes made by any predecessor Licensee. Licensee * must include a prominent statement that the modification is derived, * directly or indirectly, from Original Intel Code. * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. * Redistribution of source code of any substantial portion of the Covered * Code or modification without rights to further distribute source must * include the following Disclaimer and Export Compliance provision in the @@ -87,7 +86,7 @@ * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. + * PARTICULAR PURPOSE. * * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR @@ -118,42 +117,12 @@ #include "acpisrc.h" + /* Opening signature of the Intel legal header */ char *HeaderBegin = "/******************************************************************************\n *\n * 1. Copyright Notice"; -/****************************************************************************** - * - * FUNCTION: AsMatchExactWord - * - * DESCRIPTION: Check previous and next characters for whitespace - * - ******************************************************************************/ - -BOOLEAN -AsMatchExactWord ( - char *Word, - UINT32 WordLength) -{ - char NextChar; - char PrevChar; - - - NextChar = Word[WordLength]; - PrevChar = * (Word -1); - - if (isalnum (NextChar) || - (NextChar == '_') || - isalnum (PrevChar) || - (PrevChar == '_')) - { - return (FALSE); - } - - return (TRUE); -} - /****************************************************************************** * @@ -177,152 +146,7 @@ AsPrint ( /****************************************************************************** * - * FUNCTION: AsCheckAndSkipLiterals - * - * DESCRIPTION: Generic routine to skip comments and quoted string literals. - * Keeps a line count. - * - ******************************************************************************/ - -char * -AsCheckAndSkipLiterals ( - char *Buffer, - UINT32 *TotalLines) -{ - UINT32 NewLines = 0; - char *SubBuffer = Buffer; - char *LiteralEnd; - - - /* Ignore comments */ - - if ((SubBuffer[0] == '/') && - (SubBuffer[1] == '*')) - { - LiteralEnd = strstr (SubBuffer, "*/"); - SubBuffer += 2; /* Get past comment opening */ - - if (!LiteralEnd) - { - return SubBuffer; - } - - while (SubBuffer < LiteralEnd) - { - if (*SubBuffer == '\n') - { - NewLines++; - } - - SubBuffer++; - } - - SubBuffer += 2; /* Get past comment close */ - } - - /* Ignore quoted strings */ - - else if (*SubBuffer == '\"') - { - SubBuffer++; - LiteralEnd = AsSkipPastChar (SubBuffer, '\"'); - if (!LiteralEnd) - { - return SubBuffer; - } - } - - if (TotalLines) - { - (*TotalLines) += NewLines; - } - return SubBuffer; -} - - -/****************************************************************************** - * - * FUNCTION: AsAsCheckForBraces - * - * DESCRIPTION: Check for an open brace after each if statement - * - ******************************************************************************/ - -void -AsCheckForBraces ( - char *Buffer, - char *Filename) -{ - char *SubBuffer = Buffer; - char *NextBrace; - char *NextSemicolon; - char *NextIf; - UINT32 TotalLines = 1; - - - while (*SubBuffer) - { - - SubBuffer = AsCheckAndSkipLiterals (SubBuffer, &TotalLines); - - if (*SubBuffer == '\n') - { - TotalLines++; - } - else if (!(strncmp (" if", SubBuffer, 3))) - { - SubBuffer += 2; - NextBrace = strstr (SubBuffer, "{"); - NextSemicolon = strstr (SubBuffer, ";"); - NextIf = strstr (SubBuffer, " if"); - - if ((!NextBrace) || - (NextSemicolon && (NextBrace > NextSemicolon)) || - (NextIf && (NextBrace > NextIf))) - { - Gbl_MissingBraces++; - printf ("Missing braces for , line %d: %s\n", TotalLines, Filename); - } - } - else if (!(strncmp (" else if", SubBuffer, 8))) - { - SubBuffer += 7; - NextBrace = strstr (SubBuffer, "{"); - NextSemicolon = strstr (SubBuffer, ";"); - NextIf = strstr (SubBuffer, " if"); - - if ((!NextBrace) || - (NextSemicolon && (NextBrace > NextSemicolon)) || - (NextIf && (NextBrace > NextIf))) - { - Gbl_MissingBraces++; - printf ("Missing braces for , line %d: %s\n", TotalLines, Filename); - } - } - else if (!(strncmp (" else", SubBuffer, 5))) - { - SubBuffer += 4; - NextBrace = strstr (SubBuffer, "{"); - NextSemicolon = strstr (SubBuffer, ";"); - NextIf = strstr (SubBuffer, " if"); - - if ((!NextBrace) || - (NextSemicolon && (NextBrace > NextSemicolon)) || - (NextIf && (NextBrace > NextIf))) - { - Gbl_MissingBraces++; - printf ("Missing braces for , line %d: %s\n", TotalLines, Filename); - } - } - - SubBuffer++; - } -} - - -/****************************************************************************** - * - * FUNCTION: AsTrimLines + * FUNCTION: AsTrimLines * * DESCRIPTION: Remove extra blanks from the end of source lines. Does not * check for tabs. @@ -334,6 +158,7 @@ AsTrimLines ( char *Buffer, char *Filename) { + UINT32 Length; char *SubBuffer = Buffer; char *StartWhiteSpace = NULL; UINT32 SpaceCount = 0; @@ -358,7 +183,7 @@ AsTrimLines ( else { StartWhiteSpace = NULL; - } + } SubBuffer++; } @@ -367,12 +192,11 @@ AsTrimLines ( { SpaceCount += (SubBuffer - StartWhiteSpace); - /* Remove the spaces */ - - SubBuffer = AsRemoveData (StartWhiteSpace, SubBuffer); + Length = strlen (SubBuffer) + 1; + memmove (StartWhiteSpace, SubBuffer, Length); StartWhiteSpace = NULL; } - + SubBuffer++; } @@ -380,8 +204,7 @@ AsTrimLines ( Exit: if (SpaceCount) { - Gbl_MadeChanges = TRUE; - AsPrint ("Extraneous spaces removed", SpaceCount, Filename); + AsPrint ("Extraneous spaces Removed", SpaceCount, Filename); } } @@ -404,7 +227,7 @@ AsTrimWhitespace ( while (ReplaceCount) { - ReplaceCount = AsReplaceString ("\n\n\n\n", "\n\n\n", REPLACE_SUBSTRINGS, Buffer); + ReplaceCount = AsReplaceString ("\n\n\n\n", "\n\n\n", Buffer); } } @@ -422,6 +245,8 @@ AsReplaceHeader ( char *Buffer, char *NewHeader) { + UINT32 Length; + UINT32 HdrLength; char *SubBuffer; char *TokenEnd; @@ -439,9 +264,17 @@ AsReplaceHeader ( TokenEnd = strstr (SubBuffer, "*/"); TokenEnd = AsSkipPastChar (TokenEnd, '\n'); - /* Delete old header, insert new one */ + /* Move up the rest of the buffer to delete the header */ + + Length = strlen (TokenEnd) + 1; + memmove (SubBuffer, TokenEnd, Length); + + /* Insert the new header */ + + HdrLength = strlen (NewHeader); + memmove (SubBuffer + HdrLength, SubBuffer, Length); + memmove (SubBuffer, NewHeader, HdrLength); - AsReplaceData (SubBuffer, TokenEnd - SubBuffer, NewHeader, strlen (NewHeader)); } @@ -458,7 +291,6 @@ int AsReplaceString ( char *Target, char *Replacement, - UINT8 Type, char *Buffer) { char *SubString1; @@ -469,69 +301,44 @@ AsReplaceString ( int ReplaceCount = 0; + TargetLength = strlen (Target); ReplacementLength = strlen (Replacement); SubBuffer = Buffer; SubString1 = Buffer; + while (SubString1) { /* Find the target string */ SubString1 = strstr (SubBuffer, Target); - if (!SubString1) - { - return ReplaceCount; - } - /* + /* * Check for translation escape string -- means to ignore * blocks of code while replacing */ - SubString2 = strstr (SubBuffer, AS_START_IGNORE); + SubString2 = strstr (SubBuffer, "/*!"); if ((SubString2) && (SubString2 < SubString1)) { - /* Find end of the escape block starting at "Substring2" */ - - SubString2 = strstr (SubString2, AS_STOP_IGNORE); + SubString2 = strstr (SubBuffer, "!*/"); if (!SubString2) { - /* Didn't find terminator */ - return ReplaceCount; } - /* Move buffer to end of escape block and continue */ - SubBuffer = SubString2; } /* Do the actual replace if the target was found */ - else + else if (SubString1) { - if ((Type & REPLACE_MASK) == REPLACE_WHOLE_WORD) - { - if (!AsMatchExactWord (SubString1, TargetLength)) - { - SubBuffer = SubString1 + 1; - continue; - } - } - SubBuffer = AsReplaceData (SubString1, TargetLength, Replacement, ReplacementLength); -/* - if (((Type & INDENT_MASK) == EXTRA_INDENT_C) && - (Gbl_FileType == FILE_TYPE_SOURCE)) - { - SubBuffer = AsReplaceData (SubBuffer, 0, " ", 4); - } -*/ - ReplaceCount++; } } @@ -542,72 +349,194 @@ AsReplaceString ( /****************************************************************************** * - * FUNCTION: AsConvertToLineFeeds + * FUNCTION: AsMixedCaseToUnderscores * - * DESCRIPTION: + * DESCRIPTION: Converts mixed case identifiers to underscored identifiers. + * for example, + * + * ThisUsefullyNamedIdentifier becomes: + * + * this_usefully_named_identifier * ******************************************************************************/ void -AsConvertToLineFeeds ( +AsMixedCaseToUnderscores ( char *Buffer) { + UINT32 Length; + char *SubBuffer = Buffer; + char *TokenEnd; char *SubString; - char *SubBuffer; - SubBuffer = Buffer; - SubString = Buffer; - - while (SubString) + while (*SubBuffer) { - /* Find the target string */ - SubString = strstr (SubBuffer, "\r\n"); - if (!SubString) + /* + * Check for translation escape string -- means to ignore + * blocks of code while replacing + */ + + if ((SubBuffer[0] == '/') && + (SubBuffer[1] == '*') && + (SubBuffer[2] == '!')) { - return; + SubBuffer = strstr (SubBuffer, "!*/"); + if (!SubBuffer) + { + return; + } } - SubBuffer = AsReplaceData (SubString, 1, NULL, 0); + /* Ignore hex constants */ + + if (SubBuffer[0] == '0') + { + if ((SubBuffer[1] == 'x') || + (SubBuffer[1] == 'X')) + { + SubBuffer += 2; + while (isxdigit (*SubBuffer)) + { + SubBuffer++; + } + continue; + } + + SubBuffer++; + continue; + } + + + /* + * Convert each pair of letters that matches the form: + * + * + * to + * + */ + + else if ((islower (SubBuffer[0]) || isdigit (SubBuffer[0])) && + (isupper (SubBuffer[1]))) + + { + TokenEnd = SubBuffer; + while ((isalnum (*TokenEnd)) || (*TokenEnd == '_')) + { + TokenEnd++; + } + + SubBuffer[1] = (char) tolower (SubBuffer[1]); + + + + SubString = TokenEnd; + Length = 0; + + while (*SubString != '\n') + { + if ((SubString[0] == ' ') && + (SubString[1] == ' ')) + { + Length = SubString - SubBuffer - 2; + break; + } + + SubString++; + } + + + if (!Length) + { + Length = strlen (&SubBuffer[1]); + } + + memmove (&SubBuffer[2], &SubBuffer[1], (Length+1)); + SubBuffer[1] = '_'; + SubBuffer +=2; + } + + SubBuffer++; } - return; } /****************************************************************************** * - * FUNCTION: AsInsertCarriageReturns + * FUNCTION: AsLowerCaseIdentifiers * - * DESCRIPTION: + * DESCRIPTION: Converts mixed case identifiers to lower case. Leaves comments, + * quoted strings, and all-upper-case macros alone. * ******************************************************************************/ void -AsInsertCarriageReturns ( +AsLowerCaseIdentifiers ( char *Buffer) { - char *SubString; - char *SubBuffer; + char *SubBuffer = Buffer; - SubBuffer = Buffer; - SubString = Buffer; - - while (SubString) + while (*SubBuffer) { - /* Find the target string */ + /* + * Check for translation escape string -- means to ignore + * blocks of code while replacing + */ - SubString = strstr (SubBuffer, "\n"); - if (!SubString) + if ((SubBuffer[0] == '/') && + (SubBuffer[1] == '*') && + (SubBuffer[2] == '!')) { - return; + SubBuffer = strstr (SubBuffer, "!*/"); + if (!SubBuffer) + { + return; + } } - SubBuffer = AsInsertData (SubString, "\r", 1); - SubBuffer += 1; + /* Ignore comments */ + + if ((SubBuffer[0] == '/') && + (SubBuffer[1] == '*')) + { + SubBuffer = strstr (SubBuffer, "*/"); + if (!SubBuffer) + { + return; + } + + SubBuffer += 2; + } + + /* Ignore quoted strings */ + + if (SubBuffer[0] == '\"') + { + SubBuffer++; + SubBuffer = AsSkipPastChar (SubBuffer, '\"'); + if (!SubBuffer) + { + return; + } + } + + + /* + * Only lower case if we have an upper followed by a lower + * This leaves the all-uppercase things (macros, etc.) intact + */ + + if ((isupper (SubBuffer[0])) && + (islower (SubBuffer[1]))) + { + *SubBuffer = (char) tolower (*SubBuffer); + } + + SubBuffer++; } - return; + } @@ -629,97 +558,49 @@ AsBracesOnSameLine ( char *SubBuffer = Buffer; char *Beginning; char *StartOfThisLine; - BOOLEAN BlockBegin = TRUE; + char Tmp; while (*SubBuffer) { - /* Ignore comments */ - - if ((SubBuffer[0] == '/') && - (SubBuffer[1] == '*')) - { - SubBuffer = strstr (SubBuffer, "*/"); - if (!SubBuffer) - { - return; - } - - SubBuffer += 2; - continue; - } - - /* Ignore quoted strings */ - - if (*SubBuffer == '\"') - { - SubBuffer++; - SubBuffer = AsSkipPastChar (SubBuffer, '\"'); - if (!SubBuffer) - { - return; - } - } - - if (!strncmp ("\n}", SubBuffer, 2)) - { - /* - * A newline followed by a closing brace closes a function - * or struct or initializer block - */ - BlockBegin = TRUE; - } - - /* Move every standalone brace up to the previous line */ - if (*SubBuffer == '{') { - if (BlockBegin) + /* + * Backup to previous non-whitespace + */ + + Beginning = SubBuffer - 1; + while ((*Beginning == ' ') || + (*Beginning == '\n')) { - BlockBegin = FALSE; + Beginning--; + } + + StartOfThisLine = Beginning; + while (*StartOfThisLine != '\n') + { + StartOfThisLine--; + } + + Beginning++; + Tmp = *Beginning; + *Beginning = 0; + + if ((strstr (StartOfThisLine, " if")) || + (strstr (StartOfThisLine, " for")) || + (strstr (StartOfThisLine, " else")) || + (strstr (StartOfThisLine, " while"))) + { + SubBuffer++; + Length = strlen (SubBuffer); + memmove (Beginning + 2, SubBuffer, Length+3); + + memmove (Beginning, " {", 2); + /* memmove (Beginning, " {\n", 3); */ } else { - /* - * Backup to previous non-whitespace - */ - Beginning = SubBuffer - 1; - while ((*Beginning == ' ') || - (*Beginning == '\n')) - { - Beginning--; - } - - StartOfThisLine = Beginning; - while (*StartOfThisLine != '\n') - { - StartOfThisLine--; - } - - /* - * Move the brace up to the previous line, UNLESS: - * - * 1) There is a conditional compile on the line (starts with '#') - * 2) Previous line ends with an '=' (Start of initializer block) - * 3) Previous line ends with a comma (part of an init list) - * - */ - if ((StartOfThisLine[1] != '#') && - (*Beginning != '=') && - (*Beginning != ',')) - { - Beginning++; - SubBuffer++; - Length = strlen (SubBuffer); - - Gbl_MadeChanges = TRUE; - -#ifdef ADD_EXTRA_WHITESPACE - AsReplaceData (Beginning, SubBuffer-Beginning, " {\n", 3); -#else - AsReplaceData (Beginning, SubBuffer-Beginning, " {", 2); -#endif - } + *Beginning = Tmp; } } @@ -728,11 +609,363 @@ AsBracesOnSameLine ( } +/****************************************************************************** + * + * FUNCTION: AsRemoveStatement + * + * DESCRIPTION: Remove all statements that contain the given keyword. + * Limitations: Removes text from the start of the line that + * contains the keyword to the next semicolon. Currently + * doesn't ignore comments. + * + ******************************************************************************/ + +void +AsRemoveStatement ( + char *Buffer, + char *Keyword) +{ + char *SubString; + char *SubBuffer; + int StrLength; + + + + SubBuffer = Buffer; + SubString = Buffer; + + + while (SubString) + { + SubString = strstr (SubBuffer, Keyword); + + if (SubString) + { + SubBuffer = SubString; + + /* Find start of this line */ + + while (*SubString != '\n') + { + SubString--; + } + SubString++; + + /* Find end of this statement */ + + SubBuffer = AsSkipPastChar (SubBuffer, ';'); + if (!SubBuffer) + { + return; + } + + /* Find end of this line */ + + SubBuffer = AsSkipPastChar (SubBuffer, '\n'); + if (!SubBuffer) + { + return; + } + + /* If next line is blank, remove it too */ + + if (*SubBuffer == '\n') + { + SubBuffer++; + } + + StrLength = strlen (SubBuffer); + + memmove (SubString, SubBuffer, StrLength+1); + SubBuffer = SubString; + } + } +} + + +/****************************************************************************** + * + * FUNCTION: AsRemoveConditionalCompile + * + * DESCRIPTION: Remove a "#ifdef" statement, and all text that it encompasses. + * Limitations: cannot handle nested ifdefs. + * + ******************************************************************************/ + +void +AsRemoveConditionalCompile ( + char *Buffer, + char *Keyword) +{ + char *SubString; + char *SubBuffer; + char *IfPtr; + char *EndifPtr; + char *ElsePtr; + char *Comment; + int StrLength; + + + + SubBuffer = Buffer; + SubString = Buffer; + + + while (SubString) + { + Comment = strstr (SubString, "/*"); + SubBuffer = strstr (SubString, Keyword); + if (!SubBuffer) + { + return; + } + + if ((Comment) && + (Comment < SubBuffer)) + { + SubString = strstr (Comment, "*/"); + if (!SubString) + { + return; + } + + SubString += 2; + continue; + } + + SubString = SubBuffer; + + /* Find start of this line */ + + while (*SubString != '\n' && (SubString > Buffer)) + { + SubString--; + } + SubString++; + + + /* Find the "#ifxxxx" */ + + IfPtr = strstr (SubString, "#if"); + if (!IfPtr) + { + return; + } + + if (IfPtr > SubBuffer) + { + /* Not the right #if */ + + SubString = SubBuffer + strlen (Keyword); + continue; + } + + /* Find closing #endif or #else */ + + EndifPtr = strstr (SubBuffer, "#endif"); + if (!EndifPtr) + { + /* There has to be an #endif */ + + return; + } + + ElsePtr = strstr (SubBuffer, "#else"); + if ((ElsePtr) && + (EndifPtr > ElsePtr)) + { + /* This #ifdef contains an #else clause */ + + /* Find end of this line */ + + SubBuffer = AsSkipPastChar (ElsePtr, '\n'); + if (!SubBuffer) + { + return; + } + + /* Remove the #ifdef .... #else code */ + + StrLength = strlen (SubBuffer); + memmove (SubString, SubBuffer, StrLength+1); + + /* Next, we will remove the #endif statement */ + + EndifPtr = strstr (SubString, "#endif"); + if (!EndifPtr) + { + /* There has to be an #endif */ + + return; + } + + SubString = EndifPtr; + } + + /* Remove the ... #endif part */ + + /* Find end of this line */ + + SubBuffer = AsSkipPastChar (EndifPtr, '\n'); + if (!SubBuffer) + { + return; + } + + StrLength = strlen (SubBuffer); + + memmove (SubString, SubBuffer, StrLength+1); + SubBuffer = SubString; + } +} + + +/****************************************************************************** + * + * FUNCTION: AsRemoveLine + * + * DESCRIPTION: Remove every line that contains the keyword. Does not + * skip comments. + * + ******************************************************************************/ + +void +AsRemoveLine ( + char *Buffer, + char *Keyword) +{ + char *SubString; + char *SubBuffer; + int StrLength; + + + + SubBuffer = Buffer; + SubString = Buffer; + + + while (SubString) + { + SubString = strstr (SubBuffer, Keyword); + + if (SubString) + { + SubBuffer = SubString; + + /* Find start of this line */ + + while (*SubString != '\n') + { + SubString--; + } + SubString++; + + /* Find end of this line */ + + SubBuffer = AsSkipPastChar (SubBuffer, '\n'); + if (!SubBuffer) + { + return; + } + + StrLength = strlen (SubBuffer); + + memmove (SubString, SubBuffer, StrLength+1); + SubBuffer = SubString; + } + } +} + + +/****************************************************************************** + * + * FUNCTION: AsRemoveEmptyBlocks + * + * DESCRIPTION: Remove any C blocks (e.g., if {}) that contain no code. This + * can happen as a result of removing lines such as DEBUG_PRINT. + * + ******************************************************************************/ + +void +AsRemoveEmptyBlocks ( + char *Buffer, + char *Filename) +{ + char *SubBuffer; + char *BlockStart; + BOOLEAN EmptyBlock = TRUE; + BOOLEAN AnotherPassRequired = TRUE; + UINT32 BlockCount = 0; + + + while (AnotherPassRequired) + { + SubBuffer = Buffer; + AnotherPassRequired = FALSE; + + while (*SubBuffer) + { + if (*SubBuffer == '{') + { + BlockStart = SubBuffer; + EmptyBlock = TRUE; + + SubBuffer++; + while (*SubBuffer != '}') + { + if ((*SubBuffer != ' ') && + (*SubBuffer != '\n')) + { + EmptyBlock = FALSE; + break; + } + SubBuffer++; + } + + if (EmptyBlock) + { + /* Find start of the first line of the block */ + + while (*BlockStart != '\n') + { + BlockStart--; + } + + /* Find end of the last line of the block */ + + SubBuffer = AsSkipUntilChar (SubBuffer, '\n'); + if (!SubBuffer) + { + break; + } + + memmove (BlockStart, SubBuffer, strlen (SubBuffer) +1); + + SubBuffer = BlockStart; + BlockCount++; + AnotherPassRequired = TRUE; + continue; + } + + } + + SubBuffer++; + } + } + + + if (BlockCount) + { + AsPrint ("Code blocks deleted", BlockCount, Filename); + } +} + + /****************************************************************************** * * FUNCTION: AsTabify4 * - * DESCRIPTION: Convert the text to tabbed text. Alignment of text is + * DESCRIPTION: Convert the text to tabbed text. Alignment of text is * preserved. * ******************************************************************************/ @@ -747,32 +980,20 @@ AsTabify4 ( UINT32 Column = 0; + + while (*SubBuffer) { if (*SubBuffer == '\n') { Column = 0; } + else { Column++; } - /* Ignore comments */ - - if ((SubBuffer[0] == '/') && - (SubBuffer[1] == '*')) - { - SubBuffer = strstr (SubBuffer, "*/"); - if (!SubBuffer) - { - return; - } - - SubBuffer += 2; - continue; - } - /* Ignore quoted strings */ if (*SubBuffer == '\"') @@ -796,11 +1017,10 @@ AsTabify4 ( NewSubBuffer = (SubBuffer + 1) - 4; *NewSubBuffer = '\t'; - NewSubBuffer++; - /* Remove the spaces */ - - SubBuffer = AsRemoveData (NewSubBuffer, SubBuffer + 1); + SubBuffer++; + memmove ((NewSubBuffer + 1), SubBuffer, strlen (SubBuffer) + 1); + SubBuffer = NewSubBuffer; } if ((Column % 4) == 0) @@ -808,6 +1028,7 @@ AsTabify4 ( SpaceCount = 0; } } + else { SpaceCount = 0; @@ -822,7 +1043,7 @@ AsTabify4 ( * * FUNCTION: AsTabify8 * - * DESCRIPTION: Convert the text to tabbed text. Alignment of text is + * DESCRIPTION: Convert the text to tabbed text. Alignment of text is * preserved. * ******************************************************************************/ @@ -833,141 +1054,30 @@ AsTabify8 ( { char *SubBuffer = Buffer; char *NewSubBuffer; - char *CommentEnd = NULL; UINT32 SpaceCount = 0; UINT32 Column = 0; UINT32 TabCount = 0; UINT32 LastLineTabCount = 0; - UINT32 LastLineColumnStart = 0; - UINT32 ThisColumnStart = 0; - UINT32 ThisTabCount = 0; - char *FirstNonBlank = NULL; + while (*SubBuffer) { if (*SubBuffer == '\n') { - /* This is a standalone blank line */ - - FirstNonBlank = NULL; Column = 0; - SpaceCount = 0; +// LastLineTabCount = 0; TabCount = 0; - SubBuffer++; - continue; } - if (!FirstNonBlank) + else { - /* Find the first non-blank character on this line */ - - FirstNonBlank = SubBuffer; - while (*FirstNonBlank == ' ') - { - FirstNonBlank++; - } - - /* - * This mechanism limits the difference in tab counts from - * line to line. It helps avoid the situation where a second - * continuation line (which was indented correctly for tabs=4) would - * get indented off the screen if we just blindly converted to tabs. - */ - ThisColumnStart = FirstNonBlank - SubBuffer; - - if (LastLineTabCount == 0) - { - ThisTabCount = 0; - } - else if (ThisColumnStart == LastLineColumnStart) - { - ThisTabCount = LastLineTabCount -1; - } - else - { - ThisTabCount = LastLineTabCount + 1; - } + Column++; } - Column++; - - /* Check if we are in a comment */ - - if ((SubBuffer[0] == '*') && - (SubBuffer[1] == '/')) - { - SpaceCount = 0; - SubBuffer += 2; - - if (*SubBuffer == '\n') - { - if (TabCount > 0) - { - LastLineTabCount = TabCount; - TabCount = 0; - } - FirstNonBlank = NULL; - LastLineColumnStart = ThisColumnStart; - SubBuffer++; - } - - continue; - } - - /* Check for comment open */ - - if ((SubBuffer[0] == '/') && - (SubBuffer[1] == '*')) - { - /* Find the end of the comment, it must exist */ - - CommentEnd = strstr (SubBuffer, "*/"); - if (!CommentEnd) - { - return; - } - - /* Toss the rest of this line or single-line comment */ - - while ((SubBuffer < CommentEnd) && - (*SubBuffer != '\n')) - { - SubBuffer++; - } - - if (*SubBuffer == '\n') - { - if (TabCount > 0) - { - LastLineTabCount = TabCount; - TabCount = 0; - } - FirstNonBlank = NULL; - LastLineColumnStart = ThisColumnStart; - } - - SpaceCount = 0; - continue; - } - - /* Ignore quoted strings */ - - if ((!CommentEnd) && (*SubBuffer == '\"')) - { - SubBuffer++; - SubBuffer = AsSkipPastChar (SubBuffer, '\"'); - if (!SubBuffer) - { - return; - } - SpaceCount = 0; - } if (*SubBuffer != ' ') { - /* Not a space, skip to end of line */ - SubBuffer = AsSkipUntilChar (SubBuffer, '\n'); if (!SubBuffer) { @@ -976,48 +1086,70 @@ AsTabify8 ( if (TabCount > 0) { LastLineTabCount = TabCount; - TabCount = 0; } - - FirstNonBlank = NULL; - LastLineColumnStart = ThisColumnStart; + + TabCount = 0; Column = 0; SpaceCount = 0; + SubBuffer++; + continue; } - else + + + SpaceCount++; + + if (SpaceCount >= 4) { - /* Another space */ + SpaceCount = 0; - SpaceCount++; + NewSubBuffer = SubBuffer - 4; - if (SpaceCount >= 4) + if (TabCount <= LastLineTabCount ? (LastLineTabCount + 1) : 0) { - /* Replace this group of spaces with a tab character */ - - SpaceCount = 0; - - NewSubBuffer = SubBuffer - 3; - - if (TabCount <= ThisTabCount ? (ThisTabCount +1) : 0) - { - *NewSubBuffer = '\t'; - NewSubBuffer++; - SubBuffer++; - TabCount++; - } - - /* Remove the spaces */ - - SubBuffer = AsRemoveData (NewSubBuffer, SubBuffer); - continue; + NewSubBuffer++; + *NewSubBuffer = '\t'; + SubBuffer++; + TabCount++; } + + memmove ((NewSubBuffer + 1), SubBuffer, strlen (SubBuffer) + 1); + SubBuffer = NewSubBuffer; } SubBuffer++; + } } +/****************************************************************************** + * + * FUNCTION: AsRemoveDebugMacros + * + * DESCRIPTION: Remove all "Debug" macros -- macros that produce debug output. + * + ******************************************************************************/ + +void +AsRemoveDebugMacros ( + char *Buffer) +{ + + + AsRemoveStatement (Buffer, "DEBUG_PRINT"); + AsRemoveStatement (Buffer, "DEBUG_EXEC"); + AsRemoveStatement (Buffer, "FUNCTION_TRACE"); + AsRemoveStatement (Buffer, "DUMP_"); + + AsReplaceString ("return_VOID", "return", Buffer); + AsReplaceString ("return_PTR", "return", Buffer); + AsReplaceString ("return_ACPI_STATUS", "return", Buffer); + AsReplaceString ("return_VALUE", "return", Buffer); + + AsRemoveConditionalCompile (Buffer, "ACPI_DEBUG"); +} + + /****************************************************************************** * * FUNCTION: AsCountLines @@ -1031,7 +1163,7 @@ UINT32 AsCountLines ( char *Buffer, char *Filename) -{ +{ char *SubBuffer = Buffer; char *EndOfLine; UINT32 LineCount = 0; @@ -1050,13 +1182,13 @@ AsCountLines ( if ((EndOfLine - SubBuffer) > 80) { LongLineCount++; - VERBOSE_PRINT (("long: %.80s\n", SubBuffer)); } LineCount++; SubBuffer = EndOfLine + 1; } + if (LongLineCount) { VERBOSE_PRINT (("%d Lines longer than 80 found in %s\n", LongLineCount, Filename)); @@ -1080,7 +1212,7 @@ void AsCountTabs ( char *Buffer, char *Filename) -{ +{ UINT32 i; UINT32 TabCount = 0; @@ -1116,7 +1248,7 @@ void AsCountNonAnsiComments ( char *Buffer, char *Filename) -{ +{ char *SubBuffer = Buffer; UINT32 CommentCount = 0; @@ -1138,12 +1270,11 @@ AsCountNonAnsiComments ( } } - /****************************************************************************** * * FUNCTION: AsCountSourceLines * - * DESCRIPTION: Count the number of C source lines. Defined by 1) not a + * DESCRIPTION: Count the number of C source lines. Defined by 1) not a * comment, and 2) not a blank line. * ******************************************************************************/ @@ -1152,7 +1283,7 @@ void AsCountSourceLines ( char *Buffer, char *Filename) -{ +{ char *SubBuffer = Buffer; UINT32 LineCount = 0; UINT32 WhiteCount = 0; @@ -1169,8 +1300,7 @@ AsCountSourceLines ( CommentCount++; SubBuffer += 2; - while (SubBuffer[0] && SubBuffer[1] && - !(((SubBuffer[0] == '*') && + while (!(((SubBuffer[0] == '*') && (SubBuffer[1] == '/')))) { if (SubBuffer[0] == '\n') @@ -1179,13 +1309,13 @@ AsCountSourceLines ( } SubBuffer++; - } + } } /* A linefeed followed by a non-linefeed is a valid source line */ else if ((SubBuffer[0] == '\n') && - (SubBuffer[1] != '\n')) + (SubBuffer[1] != '\n')) { LineCount++; } @@ -1193,7 +1323,7 @@ AsCountSourceLines ( /* Two back-to-back linefeeds indicate a whitespace line */ else if ((SubBuffer[0] == '\n') && - (SubBuffer[1] == '\n')) + (SubBuffer[1] == '\n')) { WhiteCount++; } @@ -1205,234 +1335,96 @@ AsCountSourceLines ( CommentCount -= LINES_IN_LEGAL_HEADER; + Gbl_SourceLines += LineCount; Gbl_WhiteLines += WhiteCount; Gbl_CommentLines += CommentCount; - VERBOSE_PRINT (("%d Comment %d White %d Code %d Lines in %s\n", + VERBOSE_PRINT (("%d Comment %d White %d Code %d Lines in %s\n", CommentCount, WhiteCount, LineCount, LineCount+WhiteCount+CommentCount, Filename)); } + /****************************************************************************** * - * FUNCTION: AsInsertPrefix + * FUNCTION: AsUppercaseTokens * - * DESCRIPTION: Insert struct or union prefixes + * DESCRIPTION: Force to uppercase all tokens that begin with the prefix string. + * used to convert mixed-case macros and constants to uppercase. * ******************************************************************************/ void -AsInsertPrefix ( +AsUppercaseTokens ( char *Buffer, - char *Keyword, - UINT8 Type) + char *PrefixString) { - char *SubString; char *SubBuffer; - char *EndKeyword; - int StrLength; - int InsertLength; - char *InsertString; - int TrailingSpaces; - char LowerKeyword[128]; - int KeywordLength; + char *TokenEnd; + char *SubString; + int i; + UINT32 Length; - switch (Type) - { - case SRC_TYPE_STRUCT: - InsertString = "struct "; - break; - - case SRC_TYPE_UNION: - InsertString = "union "; - break; - - default: - return; - } - - strcpy (LowerKeyword, Keyword); - strlwr (LowerKeyword); SubBuffer = Buffer; - SubString = Buffer; - InsertLength = strlen (InsertString); - KeywordLength = strlen (Keyword); - - while (SubString) + while (SubBuffer) { - /* Find an instance of the keyword */ - - SubString = strstr (SubBuffer, LowerKeyword); - - if (!SubString) + SubBuffer = strstr (SubBuffer, PrefixString); + if (SubBuffer) { - return; - } + TokenEnd = SubBuffer; + while ((isalnum (*TokenEnd)) || (*TokenEnd == '_')) + { + TokenEnd++; + } - SubBuffer = SubString; - /* Must be standalone word, not a substring */ - - if (AsMatchExactWord (SubString, KeywordLength)) - { - /* Make sure the keyword isn't already prefixed with the insert */ - - if (!strncmp (SubString - InsertLength, InsertString, InsertLength)) + for (i = 0; i < (TokenEnd - SubBuffer); i++) { - /* Add spaces if not already at the end-of-line */ + if ((islower (SubBuffer[i])) && + (isupper (SubBuffer[i+1]))) - if (*(SubBuffer + KeywordLength) != '\n') { - /* Already present, add spaces after to align structure members */ - AsInsertData (SubBuffer + KeywordLength, " ", 8); + SubString = TokenEnd; + Length = 0; + + while (*SubString != '\n') + { + if ((SubString[0] == ' ') && + (SubString[1] == ' ')) + { + Length = SubString - &SubBuffer[i] - 2; + break; + } + + SubString++; + } + + + if (!Length) + { + Length = strlen (&SubBuffer[i+1]); + } + + memmove (&SubBuffer[i+2], &SubBuffer[i+1], (Length+1)); + SubBuffer[i+1] = '_'; + i +=2; + TokenEnd++; } - goto Next; } - /* Make sure the keyword isn't at the end of a struct/union */ - /* Note: This code depends on a single space after the brace */ - - if (*(SubString - 2) == '}') + for (i = 0; i < (TokenEnd - SubBuffer); i++) { - goto Next; + SubBuffer[i] = (char) toupper (SubBuffer[i]); } - /* Prefix the keyword with the insert string */ - - Gbl_MadeChanges = TRUE; - StrLength = strlen (SubString); - - /* Is there room for insertion */ - - EndKeyword = SubString + strlen (LowerKeyword); - - TrailingSpaces = 0; - while (EndKeyword[TrailingSpaces] == ' ') - { - TrailingSpaces++; - } - - /* - * Use "if (TrailingSpaces > 1)" if we want to ignore casts - */ - SubBuffer = SubString + InsertLength; - - if (TrailingSpaces > InsertLength) - { - /* Insert the keyword */ - - memmove (SubBuffer, SubString, KeywordLength); - - /* Insert the keyword */ - - memmove (SubString, InsertString, InsertLength); - } - else - { - AsInsertData (SubString, InsertString, InsertLength); - } + SubBuffer = TokenEnd; } - -Next: - SubBuffer += KeywordLength; } } -#ifdef ACPI_FUTURE_IMPLEMENTATION -/****************************************************************************** - * - * FUNCTION: AsTrimComments - * - * DESCRIPTION: Finds 3-line comments with only a single line of text - * - ******************************************************************************/ - -void -AsTrimComments ( - char *Buffer, - char *Filename) -{ - char *SubBuffer = Buffer; - char *Ptr1; - char *Ptr2; - UINT32 LineCount; - UINT32 ShortCommentCount = 0; - - - while (1) - { - /* Find comment open, within procedure level */ - - SubBuffer = strstr (SubBuffer, " /*"); - if (!SubBuffer) - { - goto Exit; - } - - /* Find comment terminator */ - - Ptr1 = strstr (SubBuffer, "*/"); - if (!Ptr1) - { - goto Exit; - } - - /* Find next EOL (from original buffer) */ - - Ptr2 = strstr (SubBuffer, "\n"); - if (!Ptr2) - { - goto Exit; - } - - /* Ignore one-line comments */ - - if (Ptr1 < Ptr2) - { - /* Normal comment, ignore and continue; */ - - SubBuffer = Ptr2; - continue; - } - - /* Examine multi-line comment */ - - LineCount = 1; - while (Ptr1 > Ptr2) - { - /* Find next EOL */ - - Ptr2++; - Ptr2 = strstr (Ptr2, "\n"); - if (!Ptr2) - { - goto Exit; - } - - LineCount++; - } - - SubBuffer = Ptr1; - - if (LineCount <= 3) - { - ShortCommentCount++; - } - } - - -Exit: - - if (ShortCommentCount) - { - AsPrint ("Short Comments found", ShortCommentCount, Filename); - } -} -#endif - diff --git a/source/tools/acpisrc/asmain.c b/source/tools/acpisrc/asmain.c index 3301dc0bc..a2a85f74b 100644 --- a/source/tools/acpisrc/asmain.c +++ b/source/tools/acpisrc/asmain.c @@ -1,8 +1,7 @@ /****************************************************************************** - * + * * Module Name: asmain - Main module for the acpi source processor utility - * $Revision: 1.75 $ * *****************************************************************************/ @@ -10,8 +9,8 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp. - * All rights reserved. + * Some or all of this work - Copyright (c) 1999, Intel Corp. All rights + * reserved. * * 2. License * @@ -39,9 +38,9 @@ * The above copyright and patent license is granted only if the following * conditions are met: * - * 3. Conditions + * 3. Conditions * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * 3.1. Redistribution of Source with Rights to Further Distribute Source. * Redistribution of source code of any substantial portion of the Covered * Code or modification with rights to further distribute source must include * the above Copyright Notice, the above License, this list of Conditions, @@ -49,11 +48,11 @@ * Licensee must cause all Covered Code to which Licensee contributes to * contain a file documenting the changes Licensee made to create that Covered * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee + * documentation of any changes made by any predecessor Licensee. Licensee * must include a prominent statement that the modification is derived, * directly or indirectly, from Original Intel Code. * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. * Redistribution of source code of any substantial portion of the Covered * Code or modification without rights to further distribute source must * include the following Disclaimer and Export Compliance provision in the @@ -87,7 +86,7 @@ * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. + * PARTICULAR PURPOSE. * * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR @@ -117,13 +116,11 @@ #include "acpisrc.h" -#include "acapps.h" /* Globals */ UINT32 Gbl_Tabs = 0; -UINT32 Gbl_MissingBraces = 0; UINT32 Gbl_NonAnsiComments = 0; UINT32 Gbl_Files = 0; UINT32 Gbl_WhiteLines = 0; @@ -135,14 +132,9 @@ UINT32 Gbl_TotalLines = 0; struct stat Gbl_StatBuf; char *Gbl_FileBuffer; UINT32 Gbl_FileSize; -UINT32 Gbl_FileType; BOOLEAN Gbl_VerboseMode = FALSE; BOOLEAN Gbl_BatchMode = FALSE; -BOOLEAN Gbl_DebugStatementsMode = FALSE; -BOOLEAN Gbl_MadeChanges = FALSE; -BOOLEAN Gbl_Overwrite = FALSE; -BOOLEAN Gbl_WidenDeclarations = FALSE; -BOOLEAN Gbl_IgnoreLoneLineFeeds = FALSE; + /****************************************************************************** @@ -152,414 +144,142 @@ BOOLEAN Gbl_IgnoreLoneLineFeeds = FALSE; ******************************************************************************/ + ACPI_STRING_TABLE StandardDataTypes[] = { /* Declarations first */ - {"UINT32_BIT ", "unsigned int", REPLACE_SUBSTRINGS}, + "UINT32_BIT ", "unsigned int", - {"UINT32 ", "unsigned int", REPLACE_SUBSTRINGS}, - {"UINT16 ", "unsigned short", REPLACE_SUBSTRINGS}, - {"UINT8 ", "unsigned char", REPLACE_SUBSTRINGS}, - {"BOOLEAN ", "unsigned char", REPLACE_SUBSTRINGS}, + "UINT32 ", "unsigned int", + "UINT16 ", "unsigned short", + "UINT8 ", "unsigned char", + "BOOLEAN ", "unsigned char", /* Now do embedded typecasts */ - {"UINT32", "unsigned int", REPLACE_SUBSTRINGS}, - {"UINT16", "unsigned short", REPLACE_SUBSTRINGS}, - {"UINT8", "unsigned char", REPLACE_SUBSTRINGS}, - {"BOOLEAN", "unsigned char", REPLACE_SUBSTRINGS}, + "UINT32", "unsigned int", + "UINT16", "unsigned short", + "UINT8", "unsigned char", + "BOOLEAN", "unsigned char", - {"INT32 ", "int ", REPLACE_SUBSTRINGS}, - {"INT32", "int", REPLACE_SUBSTRINGS}, - {"INT16", "short", REPLACE_SUBSTRINGS}, - {"INT8", "char", REPLACE_SUBSTRINGS}, + "INT32 ", "int ", + "INT32", "int", + "INT16", "short", + "INT8", "char", /* Put back anything we broke (such as anything with _INT32_ in it) */ - {"_int_", "_INT32_", REPLACE_SUBSTRINGS}, - {"_unsigned int_", "_UINT32_", REPLACE_SUBSTRINGS}, - {NULL, NULL, 0} + "_int_", "_INT32_", + "_unsigned int_", "_UINT32_", + NULL, NULL }; + + + /****************************************************************************** * * Linux-specific translation tables * ******************************************************************************/ -char LinuxHeader[] = +char LinuxHeader[] = "/*\n" -" * Copyright (C) 2000 - 2005, R. Byron Moore\n" -" * All rights reserved.\n" +" * Copyright (C) 2000 R. Byron Moore\n" " *\n" -" * Redistribution and use in source and binary forms, with or without\n" -" * modification, are permitted provided that the following conditions\n" -" * are met:\n" -" * 1. Redistributions of source code must retain the above copyright\n" -" * notice, this list of conditions, and the following disclaimer,\n" -" * without modification.\n" -" * 2. Redistributions in binary form must reproduce at minimum a disclaimer\n" -" * substantially similar to the \"NO WARRANTY\" disclaimer below\n" -" * (\"Disclaimer\") and any redistribution must be conditioned upon\n" -" * including a substantially similar Disclaimer requirement for further\n" -" * binary redistribution.\n" -" * 3. Neither the names of the above-listed copyright holders nor the names\n" -" * of any contributors may be used to endorse or promote products derived\n" -" * from this software without specific prior written permission.\n" +" * This program is free software; you can redistribute it and/or modify\n" +" * it under the terms of the GNU General Public License as published by\n" +" * the Free Software Foundation; either version 2 of the License, or\n" +" * (at your option) any later version.\n" " *\n" -" * Alternatively, this software may be distributed under the terms of the\n" -" * GNU General Public License (\"GPL\") version 2 as published by the Free\n" -" * Software Foundation.\n" +" * This program is distributed in the hope that it will be useful,\n" +" * but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +" * GNU General Public License for more details.\n" " *\n" -" * NO WARRANTY\n" -" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n" -" * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n" -" * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR\n" -" * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n" -" * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n" -" * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n" -" * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n" -" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n" -" * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING\n" -" * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n" -" * POSSIBILITY OF SUCH DAMAGES.\n" +" * You should have received a copy of the GNU General Public License\n" +" * along with this program; if not, write to the Free Software\n" +" * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" " */\n"; + + ACPI_STRING_TABLE LinuxDataTypes[] = { /* Declarations first */ - {"UINT16_BIT ", "u16 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"UINT32_BIT ", "u32 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"INT64 ", "s64 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"UINT64 ", "u64 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"UINT32 ", "u32 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"INT32 ", "s32 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"UINT16 ", "u16 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"INT16 ", "s16 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"UINT8 ", "u8 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"BOOLEAN ", "u8 ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"char ", "char ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"void ", "void ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"char * ", "char * ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"void * ", "void * ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, - {"int ", "int ", REPLACE_WHOLE_WORD | EXTRA_INDENT_C}, + "UINT32_BIT ", "u32 ", + + "UINT32 ", "u32 ", + "UINT16 ", "u16 ", + "UINT8 ", "u8 ", + "BOOLEAN ", "u8 ", /* Now do embedded typecasts */ - {"UINT64", "u64", REPLACE_WHOLE_WORD}, - {"UINT32", "u32", REPLACE_WHOLE_WORD}, - {"UINT16", "u16", REPLACE_WHOLE_WORD}, - {"UINT8", "u8", REPLACE_WHOLE_WORD}, - {"BOOLEAN", "u8", REPLACE_WHOLE_WORD}, + "UINT32", "u32", + "UINT16", "u16", + "UINT8", "u8", + "BOOLEAN", "u8", - {"INT64 ", "s64 ", REPLACE_WHOLE_WORD}, - {"INT64", "s64", REPLACE_WHOLE_WORD}, - {"INT32 ", "s32 ", REPLACE_WHOLE_WORD}, - {"INT32", "s32", REPLACE_WHOLE_WORD}, - {"INT16 ", "s16 ", REPLACE_WHOLE_WORD}, - {"INT8 ", "s8 ", REPLACE_WHOLE_WORD}, - {"INT16", "s16", REPLACE_WHOLE_WORD}, - {"INT8", "s8", REPLACE_WHOLE_WORD}, + "INT32 ", "s32 ", + "INT32", "s32", + "INT16 ", "s16 ", + "INT8 ", "s8 ", + "INT16", "s16", + "INT8", "s8", - {NULL, NULL, 0}, + /* Put back anything we broke (such as anything with _INT32_ in it) */ + + "_s32_", "_INT32_", + "_u32_", "_UINT32_", + NULL, NULL }; -ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { +ACPI_IDENTIFIER_TABLE LinuxLineIdentifiers[] = { - {"ACPI_ADR_SPACE_HANDLER", SRC_TYPE_SIMPLE}, - {"ACPI_ADR_SPACE_SETUP", SRC_TYPE_SIMPLE}, - {"ACPI_ADR_SPACE_TYPE", SRC_TYPE_SIMPLE}, - {"ACPI_AML_OPERANDS", SRC_TYPE_UNION}, - {"ACPI_BIT_REGISTER_INFO", SRC_TYPE_STRUCT}, - {"ACPI_BUFFER", SRC_TYPE_STRUCT}, - {"ACPI_BUS_ATTRIBUTE", SRC_TYPE_STRUCT}, - {"ACPI_COMMON_FACS", SRC_TYPE_STRUCT}, - {"ACPI_COMMON_STATE", SRC_TYPE_STRUCT}, - {"ACPI_COMPATIBLE_ID", SRC_TYPE_STRUCT}, - {"ACPI_COMPATIBLE_ID_LIST", SRC_TYPE_STRUCT}, - {"ACPI_CONTROL_STATE", SRC_TYPE_STRUCT}, - {"ACPI_CONVERSION_TABLE", SRC_TYPE_STRUCT}, - {"ACPI_CREATE_FIELD_INFO", SRC_TYPE_STRUCT}, - {"ACPI_DB_METHOD_INFO", SRC_TYPE_STRUCT}, - {"ACPI_DEBUG_MEM_BLOCK", SRC_TYPE_STRUCT}, - {"ACPI_DEBUG_MEM_HEADER", SRC_TYPE_STRUCT}, - {"ACPI_DEBUG_PRINT_INFO", SRC_TYPE_STRUCT}, - {"ACPI_DESCRIPTOR", SRC_TYPE_UNION}, - {"ACPI_DEVICE_ID", SRC_TYPE_STRUCT}, - {"ACPI_DEVICE_INFO", SRC_TYPE_STRUCT}, - {"ACPI_DEVICE_WALK_INFO", SRC_TYPE_STRUCT}, - {"ACPI_EVENT_HANDLER", SRC_TYPE_SIMPLE}, - {"ACPI_EVENT_STATUS", SRC_TYPE_SIMPLE}, - {"ACPI_EVENT_TYPE", SRC_TYPE_SIMPLE}, - {"ACPI_EXCEPTION_HANDLER", SRC_TYPE_SIMPLE}, - {"ACPI_EXTERNAL_LIST", SRC_TYPE_STRUCT}, - {"ACPI_FIELD_INFO", SRC_TYPE_STRUCT}, - {"ACPI_FIND_CONTEXT", SRC_TYPE_STRUCT}, - {"ACPI_FIXED_EVENT_HANDLER", SRC_TYPE_STRUCT}, - {"ACPI_FIXED_EVENT_INFO", SRC_TYPE_STRUCT}, - {"ACPI_GENERIC_ADDRESS", SRC_TYPE_STRUCT}, - {"ACPI_GENERIC_STATE", SRC_TYPE_UNION}, - {"ACPI_GET_DEVICES_INFO", SRC_TYPE_STRUCT}, - {"ACPI_GPE_BLOCK_INFO", SRC_TYPE_STRUCT}, - {"ACPI_GPE_XRUPT_INFO", SRC_TYPE_STRUCT}, - {"ACPI_GPE_EVENT_INFO", SRC_TYPE_STRUCT}, - {"ACPI_GPE_HANDLER", SRC_TYPE_SIMPLE}, - {"ACPI_GPE_INDEX_INFO", SRC_TYPE_STRUCT}, - {"ACPI_GPE_REGISTER_INFO", SRC_TYPE_STRUCT}, - {"ACPI_GPE_WALK_INFO", SRC_TYPE_STRUCT}, - {"ACPI_HANDLE", SRC_TYPE_SIMPLE}, - {"ACPI_HANDLER_INFO", SRC_TYPE_STRUCT}, - {"ACPI_INIT_HANDLER", SRC_TYPE_SIMPLE}, - {"ACPI_IDENTIFIER_TABLE", SRC_TYPE_STRUCT}, - {"ACPI_INIT_WALK_INFO", SRC_TYPE_STRUCT}, - {"ACPI_INTEGER", SRC_TYPE_SIMPLE}, - {"ACPI_INTEGRITY_INFO", SRC_TYPE_STRUCT}, - {"ACPI_INTERPRETER_MODE", SRC_TYPE_SIMPLE}, - {"ACPI_IO_ADDRESS", SRC_TYPE_SIMPLE}, - {"ACPI_IO_ATTRIBUTE", SRC_TYPE_STRUCT}, - {"ACPI_MEM_SPACE_CONTEXT", SRC_TYPE_STRUCT}, - {"ACPI_MEMORY_ATTRIBUTE", SRC_TYPE_STRUCT}, - {"ACPI_MEMORY_LIST", SRC_TYPE_STRUCT}, - {"ACPI_MUTEX", SRC_TYPE_SIMPLE}, - {"ACPI_MUTEX_HANDLE", SRC_TYPE_SIMPLE}, - {"ACPI_MUTEX_INFO", SRC_TYPE_STRUCT}, - {"ACPI_NAME", SRC_TYPE_SIMPLE}, - {"ACPI_NAME_UNION", SRC_TYPE_UNION}, - {"ACPI_NAMESPACE_NODE", SRC_TYPE_STRUCT}, - {"ACPI_NAMESTRING_INFO", SRC_TYPE_STRUCT}, - {"ACPI_NATIVE_INT", SRC_TYPE_SIMPLE}, - {"ACPI_NATIVE_UINT", SRC_TYPE_SIMPLE}, - {"ACPI_NOTIFY_HANDLER", SRC_TYPE_SIMPLE}, - {"ACPI_NOTIFY_INFO", SRC_TYPE_STRUCT}, - {"ACPI_NS_SEARCH_DATA", SRC_TYPE_STRUCT}, - {"ACPI_OBJ_INFO_HEADER", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT", SRC_TYPE_UNION}, - {"ACPI_OBJECT_ADDR_HANDLER", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_BANK_FIELD", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_BUFFER", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_BUFFER_FIELD", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_CACHE_LIST", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_COMMON", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_DATA", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_DEVICE", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_EVENT", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_EXTRA", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_FIELD_COMMON", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_HANDLER", SRC_TYPE_SIMPLE}, - {"ACPI_OBJECT_INDEX_FIELD", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_INTEGER", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_LIST", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_METHOD", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_MUTEX", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_NOTIFY_COMMON", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_NOTIFY_HANDLER", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_PACKAGE", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_POWER_RESOURCE", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_PROCESSOR", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_REFERENCE", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_REGION", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_REGION_FIELD", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_STRING", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_THERMAL_ZONE", SRC_TYPE_STRUCT}, - {"ACPI_OBJECT_TYPE", SRC_TYPE_SIMPLE}, - {"ACPI_OBJECT_TYPE8", SRC_TYPE_SIMPLE}, - {"ACPI_OP_WALK_INFO", SRC_TYPE_STRUCT}, - {"ACPI_OPCODE_INFO", SRC_TYPE_STRUCT}, - {"ACPI_OPERAND_OBJECT", SRC_TYPE_UNION}, - {"ACPI_OSD_HANDLER", SRC_TYPE_SIMPLE}, - {"ACPI_OSD_EXEC_CALLBACK", SRC_TYPE_SIMPLE}, - {"ACPI_OWNER_ID", SRC_TYPE_SIMPLE}, - {"ACPI_PARAMETER_INFO", SRC_TYPE_STRUCT}, - {"ACPI_PARSE_DOWNWARDS", SRC_TYPE_SIMPLE}, - {"ACPI_PARSE_OBJ_ASL", SRC_TYPE_STRUCT}, - {"ACPI_PARSE_OBJ_COMMON", SRC_TYPE_STRUCT}, - {"ACPI_PARSE_OBJ_NAMED", SRC_TYPE_STRUCT}, - {"ACPI_PARSE_OBJECT", SRC_TYPE_UNION}, - {"ACPI_PARSE_STATE", SRC_TYPE_STRUCT}, - {"ACPI_PARSE_UPWARDS", SRC_TYPE_SIMPLE}, - {"ACPI_PARSE_VALUE", SRC_TYPE_UNION}, - {"ACPI_PCI_ID", SRC_TYPE_STRUCT}, - {"ACPI_PCI_ROUTING_TABLE", SRC_TYPE_STRUCT}, - {"ACPI_PHYSICAL_ADDRESS", SRC_TYPE_SIMPLE}, - {"ACPI_PKG_CALLBACK", SRC_TYPE_SIMPLE}, - {"ACPI_PKG_INFO", SRC_TYPE_STRUCT}, - {"ACPI_PKG_STATE", SRC_TYPE_STRUCT}, - {"ACPI_POINTER", SRC_TYPE_STRUCT}, - {"ACPI_POINTERS", SRC_TYPE_UNION}, - {"ACPI_PREDEFINED_NAMES", SRC_TYPE_STRUCT}, - {"ACPI_PSCOPE_STATE", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_ADDRESS16", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_ADDRESS32", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_ADDRESS64", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_ATTRIBUTE", SRC_TYPE_UNION}, - {"ACPI_RESOURCE_DATA", SRC_TYPE_UNION}, - {"ACPI_RESOURCE_DMA", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_END_TAG", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_EXT_IRQ", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_FIXED_IO", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_FIXED_MEM32", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_IO", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_IRQ", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_MEM24", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_MEM32", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_SOURCE", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_START_DPF", SRC_TYPE_STRUCT}, - {"ACPI_RESOURCE_TYPE", SRC_TYPE_SIMPLE}, - {"ACPI_RESOURCE_VENDOR", SRC_TYPE_STRUCT}, - {"ACPI_RESULT_VALUES", SRC_TYPE_STRUCT}, - {"ACPI_SCOPE_STATE", SRC_TYPE_STRUCT}, - {"ACPI_SIGNAL_FATAL_INFO", SRC_TYPE_STRUCT}, - {"ACPI_SIZE", SRC_TYPE_SIMPLE}, - {"ACPI_STATUS", SRC_TYPE_SIMPLE}, - {"ACPI_STRING", SRC_TYPE_SIMPLE}, - {"ACPI_STRING_TABLE", SRC_TYPE_STRUCT}, - {"ACPI_SYSTEM_INFO", SRC_TYPE_STRUCT}, - {"ACPI_TABLE_DESC", SRC_TYPE_STRUCT}, - {"ACPI_TABLE_HEADER", SRC_TYPE_STRUCT}, - {"ACPI_TABLE_INFO", SRC_TYPE_STRUCT}, - {"ACPI_TABLE_LIST", SRC_TYPE_STRUCT}, - {"ACPI_TABLE_PTR", SRC_TYPE_SIMPLE}, - {"ACPI_TABLE_SUPPORT", SRC_TYPE_STRUCT}, - {"ACPI_TABLE_TYPE", SRC_TYPE_SIMPLE}, - {"ACPI_THREAD_STATE", SRC_TYPE_STRUCT}, - {"ACPI_TYPED_IDENTIFIER_TABLE", SRC_TYPE_STRUCT}, - {"ACPI_UPDATE_STATE", SRC_TYPE_STRUCT}, - {"ACPI_WALK_CALLBACK", SRC_TYPE_SIMPLE}, - {"ACPI_WALK_INFO", SRC_TYPE_STRUCT}, - {"ACPI_WALK_STATE", SRC_TYPE_STRUCT}, - {"APIC_HEADER", SRC_TYPE_STRUCT}, - {"ARGUMENT_INFO", SRC_TYPE_STRUCT}, - {"ASL_ANALYSIS_WALK_INFO", SRC_TYPE_STRUCT}, - {"ASL_DMA_FORMAT_DESC", SRC_TYPE_STRUCT}, - {"ASL_DWORD_ADDRESS_DESC", SRC_TYPE_STRUCT}, - {"ASL_END_DEPENDENT_DESC", SRC_TYPE_STRUCT}, - {"ASL_END_TAG_DESC", SRC_TYPE_STRUCT}, - {"ASL_ERROR_MSG", SRC_TYPE_STRUCT}, - {"ASL_EVENT_INFO", SRC_TYPE_STRUCT}, - {"ASL_EXTENDED_ADDRESS_DESC", SRC_TYPE_STRUCT}, - {"ASL_EXTENDED_XRUPT_DESC", SRC_TYPE_STRUCT}, - {"ASL_FILE_INFO", SRC_TYPE_STRUCT}, - {"ASL_FIXED_IO_PORT_DESC", SRC_TYPE_STRUCT}, - {"ASL_FIXED_MEMORY_32_DESC", SRC_TYPE_STRUCT}, - {"ASL_GENERAL_REGISTER_DESC", SRC_TYPE_STRUCT}, - {"ASL_IO_PORT_DESC", SRC_TYPE_STRUCT}, - {"ASL_IRQ_FORMAT_DESC", SRC_TYPE_STRUCT}, - {"ASL_IRQ_NOFLAGS_DESC", SRC_TYPE_STRUCT}, - {"ASL_LARGE_VENDOR_DESC", SRC_TYPE_STRUCT}, - {"ASL_LISTING_NODE", SRC_TYPE_STRUCT}, - {"ASL_MAPPING_ENTRY", SRC_TYPE_STRUCT}, - {"ASL_MEMORY_24_DESC", SRC_TYPE_STRUCT}, - {"ASL_MEMORY_32_DESC", SRC_TYPE_STRUCT}, - {"ASL_METHOD_INFO", SRC_TYPE_STRUCT}, - {"ASL_QWORD_ADDRESS_DESC", SRC_TYPE_STRUCT}, - {"ASL_RESERVED_INFO", SRC_TYPE_STRUCT}, - {"ASL_RESOURCE_DESC", SRC_TYPE_UNION}, - {"ASL_RESOURCE_NODE", SRC_TYPE_STRUCT}, - {"ASL_SMALL_VENDOR_DESC", SRC_TYPE_STRUCT}, - {"ASL_START_DEPENDENT_DESC", SRC_TYPE_STRUCT}, - {"ASL_START_DEPENDENT_NOPRIO_DESC", SRC_TYPE_STRUCT}, - {"ASL_WALK_CALLBACK", SRC_TYPE_SIMPLE}, - {"ASL_WORD_ADDRESS_DESC", SRC_TYPE_STRUCT}, - {"COMMAND_INFO", SRC_TYPE_STRUCT}, -/* {"FACS_DESCRIPTOR", SRC_TYPE_SIMPLE}, */ - {"FACS_DESCRIPTOR_REV1", SRC_TYPE_STRUCT}, - {"FACS_DESCRIPTOR_REV2", SRC_TYPE_STRUCT}, -/* {"FADT_DESCRIPTOR", SRC_TYPE_SIMPLE}, */ - {"FADT_DESCRIPTOR_REV1", SRC_TYPE_STRUCT}, - {"FADT_DESCRIPTOR_REV2", SRC_TYPE_STRUCT}, - {"FADT_DESCRIPTOR_REV2_MINUS", SRC_TYPE_STRUCT}, - {"RSDP_DESCRIPTOR", SRC_TYPE_STRUCT}, -/* {"RSDT_DESCRIPTOR", SRC_TYPE_SIMPLE}, */ - {"RSDT_DESCRIPTOR_REV1", SRC_TYPE_STRUCT}, - {"RSDT_DESCRIPTOR_REV2", SRC_TYPE_STRUCT}, - {"UINT32_STRUCT", SRC_TYPE_STRUCT}, - {"UINT64_OVERLAY", SRC_TYPE_UNION}, - {"UINT64_STRUCT", SRC_TYPE_STRUCT}, -/* {"XSDT_DESCRIPTOR", SRC_TYPE_SIMPLE}, */ - {"XSDT_DESCRIPTOR_REV2", SRC_TYPE_STRUCT}, - - {NULL} -}; - -ACPI_IDENTIFIER_TABLE LinuxAddStruct[] = { - {"acpi_namespace_node"}, - {"acpi_parse_object"}, - {"acpi_table_desc"}, - {"acpi_walk_state"}, - {NULL} -}; - - -ACPI_IDENTIFIER_TABLE LinuxEliminateMacros[] = { - - {"ACPI_GET_ADDRESS"}, - {"ACPI_VALID_ADDRESS"}, - {NULL} -}; - - -ACPI_IDENTIFIER_TABLE LinuxEliminateLines_C[] = { - - {"#define __"}, - {"$Revision"}, - {NULL} -}; - - -ACPI_IDENTIFIER_TABLE LinuxEliminateLines_H[] = { - - {"$Revision"}, - {NULL} + "#define __", + NULL }; ACPI_IDENTIFIER_TABLE LinuxConditionalIdentifiers[] = { -// {"ACPI_USE_STANDARD_HEADERS"}, - {"WIN32"}, - {"_MSC_VER"}, - {NULL} +// "ACPI_USE_STANDARD_HEADERS", + "WIN32", + "_MSC_VER", + NULL }; ACPI_CONVERSION_TABLE LinuxConversionTable = { LinuxHeader, - FLG_NO_CARRIAGE_RETURNS | FLG_LOWERCASE_DIRNAMES, - - AcpiIdentifiers, + FLG_NO_CARRIAGE_RETURNS, /* C source files */ LinuxDataTypes, - LinuxEliminateLines_C, + LinuxLineIdentifiers, NULL, - LinuxEliminateMacros, - AcpiIdentifiers, - (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | - CVT_CHECK_BRACES | CVT_TRIM_LINES | CVT_BRACES_ON_SAME_LINE | - CVT_MIXED_CASE_TO_UNDERSCORES | CVT_LOWER_CASE_IDENTIFIERS | - CVT_REMOVE_DEBUG_MACROS | CVT_TRIM_WHITESPACE | + (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | CVT_TRIM_LINES | CVT_BRACES_ON_SAME_LINE | + CVT_MIXED_CASE_TO_UNDERSCORES | CVT_LOWER_CASE_IDENTIFIERS | CVT_REMOVE_DEBUG_MACROS | CVT_TRIM_WHITESPACE | CVT_REMOVE_EMPTY_BLOCKS | CVT_SPACES_TO_TABS8), /* C header files */ LinuxDataTypes, - LinuxEliminateLines_H, - LinuxConditionalIdentifiers, NULL, - AcpiIdentifiers, - (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | - CVT_TRIM_LINES | CVT_MIXED_CASE_TO_UNDERSCORES | - CVT_LOWER_CASE_IDENTIFIERS | CVT_TRIM_WHITESPACE | - CVT_REMOVE_EMPTY_BLOCKS| CVT_REDUCE_TYPEDEFS | CVT_SPACES_TO_TABS8), + LinuxConditionalIdentifiers, + (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | CVT_TRIM_LINES | CVT_MIXED_CASE_TO_UNDERSCORES | + CVT_LOWER_CASE_IDENTIFIERS | CVT_TRIM_WHITESPACE | + CVT_REMOVE_EMPTY_BLOCKS| CVT_SPACES_TO_TABS8), }; + /****************************************************************************** * * Code cleanup translation tables @@ -571,26 +291,20 @@ ACPI_CONVERSION_TABLE CleanupConversionTable = { NULL, FLG_DEFAULT_FLAGS, - NULL, + /* C source files */ NULL, NULL, NULL, - NULL, - NULL, - (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | - CVT_CHECK_BRACES | CVT_TRIM_LINES | CVT_TRIM_WHITESPACE), + (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | CVT_TRIM_LINES | CVT_TRIM_WHITESPACE), /* C header files */ NULL, NULL, NULL, - NULL, - NULL, - (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | - CVT_TRIM_LINES | CVT_TRIM_WHITESPACE), + (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | CVT_TRIM_LINES | CVT_TRIM_WHITESPACE), }; @@ -598,30 +312,25 @@ ACPI_CONVERSION_TABLE StatsConversionTable = { NULL, FLG_NO_FILE_OUTPUT, - NULL, /* C source files */ NULL, NULL, NULL, - NULL, - NULL, - (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | - CVT_COUNT_SHORTMULTILINE_COMMENTS), + (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES), /* C header files */ NULL, NULL, NULL, - NULL, - NULL, - (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | - CVT_COUNT_SHORTMULTILINE_COMMENTS), + (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES), }; + + /****************************************************************************** * * Customizable translation tables @@ -630,18 +339,9 @@ ACPI_CONVERSION_TABLE StatsConversionTable = { ACPI_STRING_TABLE CustomReplacements[] = { - {"(c) 1999 - 2005", "(c) 1999 - 2005", REPLACE_WHOLE_WORD}, -#if 0 - "ACPI_NATIVE_UINT", "ACPI_NATIVE_UINT", REPLACE_WHOLE_WORD, - "ACPI_NATIVE_UINT *", "ACPI_NATIVE_UINT *", REPLACE_WHOLE_WORD, - "ACPI_NATIVE_UINT", "ACPI_NATIVE_UINT", REPLACE_WHOLE_WORD, - "ACPI_NATIVE_INT", "ACPI_NATIVE_INT", REPLACE_WHOLE_WORD, - "ACPI_NATIVE_INT *", "ACPI_NATIVE_INT *", REPLACE_WHOLE_WORD, - "ACPI_NATIVE_INT", "ACPI_NATIVE_INT", REPLACE_WHOLE_WORD, -#endif - - {NULL, NULL, 0} + "NameTableEntry", "AcpiNamedObject", + NULL, NULL }; @@ -649,30 +349,24 @@ ACPI_CONVERSION_TABLE CustomConversionTable = { NULL, FLG_DEFAULT_FLAGS, - NULL, /* C source files */ CustomReplacements, NULL, NULL, - NULL, - NULL, - (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | - CVT_TRIM_LINES | CVT_TRIM_WHITESPACE), + (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | CVT_TRIM_LINES | CVT_TRIM_WHITESPACE), /* C header files */ CustomReplacements, NULL, NULL, - NULL, - NULL, - (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | - CVT_TRIM_LINES | CVT_TRIM_WHITESPACE), + (CVT_COUNT_TABS | CVT_COUNT_NON_ANSI_COMMENTS | CVT_COUNT_LINES | CVT_TRIM_LINES | CVT_TRIM_WHITESPACE), }; + /****************************************************************************** * * FUNCTION: AsExaminePaths @@ -689,7 +383,7 @@ AsExaminePaths ( UINT32 *SourceFileType) { int Status; - char Response; + int Response; Status = stat (Source, &Gbl_StatBuf); @@ -702,9 +396,9 @@ AsExaminePaths ( /* Return the filetype -- file or a directory */ *SourceFileType = 0; - if (Gbl_StatBuf.st_mode & S_IFDIR) + if (Gbl_StatBuf.st_mode & _S_IFDIR) { - *SourceFileType = S_IFDIR; + *SourceFileType = _S_IFDIR; } /* @@ -727,9 +421,8 @@ AsExaminePaths ( { return -1; } - - Gbl_Overwrite = TRUE; } + else { Status = stat (Target, &Gbl_StatBuf); @@ -747,6 +440,7 @@ AsExaminePaths ( } } + return 0; } @@ -766,7 +460,6 @@ AsDisplayStats (void) printf ("\nAcpiSrc statistics:\n\n"); printf ("%6d Files processed\n", Gbl_Files); printf ("%6d Tabs found\n", Gbl_Tabs); - printf ("%6d Missing if/else braces\n", Gbl_MissingBraces); printf ("%6d Non-ANSI comments found\n", Gbl_NonAnsiComments); printf ("%6d Total Lines\n", Gbl_TotalLines); printf ("%6d Lines of code\n", Gbl_SourceLines); @@ -775,13 +468,14 @@ AsDisplayStats (void) printf ("%6d Long lines found\n", Gbl_LongLines); printf ("%6.1f Ratio of code to whitespace\n", ((float) Gbl_SourceLines / (float) Gbl_WhiteLines)); printf ("%6.1f Ratio of code to comments\n", ((float) Gbl_SourceLines / (float) Gbl_CommentLines)); + return; } /****************************************************************************** * - * FUNCTION: AsDisplayUsage + * FUNCTION: AsDisplayUsage * * DESCRIPTION: Usage message * @@ -792,13 +486,11 @@ AsDisplayUsage (void) { printf ("\n"); - printf ("Usage: acpisrc [-c|l|u] [-dsvy] \n\n"); + printf ("Usage: acpisrc [-clsvy] \n\n"); printf ("Where: -c Generate cleaned version of the source\n"); printf (" -l Generate Linux version of the source\n"); - printf (" -u Generate Custom source translation\n"); - printf ("\n"); - printf (" -d Leave debug statements in code\n"); printf (" -s Generate source statistics only\n"); + printf (" -u Custom source translation\n"); printf (" -v Verbose mode\n"); printf (" -y Suppress file overwrite prompts\n"); printf ("\n"); @@ -814,9 +506,9 @@ AsDisplayUsage (void) * ******************************************************************************/ -int ACPI_SYSTEM_XFACE +int main ( - int argc, + NATIVE_UINT argc, char *argv[]) { int j; @@ -825,10 +517,9 @@ main ( char *TargetPath; UINT32 FileType; - - printf ("ACPI Source Code Conversion Utility"); - printf (" version %8.8X", ((UINT32) ACPI_CA_VERSION)); - printf (" [%s]\n\n", __DATE__); + + printf ("ACPI Source Code Conversion Utility "); + printf ("version [%s]\n", __DATE__); if (argc < 2) { @@ -838,15 +529,13 @@ main ( /* Command line options */ - while ((j = AcpiGetopt (argc, argv, "lcsuvyd")) != EOF) switch(j) + while ((j = getopt (argc, argv, "lcsuvy")) != EOF) switch(j) { case 'l': /* Linux code generation */ printf ("Creating Linux source code\n"); ConversionTable = &LinuxConversionTable; - Gbl_WidenDeclarations = TRUE; - Gbl_IgnoreLoneLineFeeds = TRUE; break; case 'c': @@ -862,7 +551,7 @@ main ( break; case 'u': - /* custom conversion */ + /* Cleanup code */ printf ("Custom source translation\n"); ConversionTable = &CustomConversionTable; @@ -880,27 +569,14 @@ main ( Gbl_BatchMode = TRUE; break; - case 'd': - /* Leave debug statements in */ - - Gbl_DebugStatementsMode = TRUE; - break; - - default: + default: AsDisplayUsage (); return -1; } - SourcePath = argv[AcpiGbl_Optind]; - if (!SourcePath) - { - printf ("Missing source path\n"); - AsDisplayUsage (); - return -1; - } - - TargetPath = argv[AcpiGbl_Optind+1]; + SourcePath = argv[optind]; + TargetPath = argv[optind+1]; if (!ConversionTable) { @@ -911,15 +587,7 @@ main ( printf ("Source code statistics only\n"); ConversionTable = &StatsConversionTable; } - else if (!TargetPath) - { - TargetPath = SourcePath; - } - if (Gbl_DebugStatementsMode) - { - ConversionTable->SourceFunctions &= ~CVT_REMOVE_DEBUG_MACROS; - } /* Check source and target paths and files */ @@ -930,31 +598,25 @@ main ( /* Source/target can be either directories or a files */ - if (FileType == S_IFDIR) + if (FileType == _S_IFDIR) { /* Process the directory tree */ AsProcessTree (ConversionTable, SourcePath, TargetPath); } + else { /* Process a single file */ - /* Differentiate between source and header files */ - - if (strstr (SourcePath, ".h")) - { - AsProcessOneFile (ConversionTable, NULL, TargetPath, 0, SourcePath, FILE_TYPE_HEADER); - } - else - { - AsProcessOneFile (ConversionTable, NULL, TargetPath, 0, SourcePath, FILE_TYPE_SOURCE); - } + AsProcessOneFile (ConversionTable, NULL, TargetPath, 0, SourcePath, FILE_TYPE_HEADER); } /* Always display final summary and stats */ AsDisplayStats (); - return 0; + return 0; } + +