⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aslerror.c

📁 acpi tools for linux include acpiexec and acpixtract
💻 C
📖 第 1 页 / 共 2 页
字号:
            if (Enode->LineNumber)            {                fprintf (OutputFile, "(%u) : ", Enode->LineNumber);            }        }    }    /* NULL message ID, just print the raw message */    if (Enode->MessageId == 0)    {        fprintf (OutputFile, "%s\n", Enode->Message);    }    else    {        /* Decode the message ID */        fprintf (OutputFile, "%s %4.4d -",                    AslErrorLevel[Enode->Level],                    Enode->MessageId + ((Enode->Level+1) * 1000));        MainMessage = AslMessages[Enode->MessageId];        ExtraMessage = Enode->Message;        if (Enode->LineNumber)        {            MsgLength = strlen (MainMessage);            if (MsgLength == 0)            {                MainMessage = Enode->Message;                MsgLength = strlen (MainMessage);                ExtraMessage = NULL;            }            if (Gbl_VerboseErrors)            {                SourceColumn = Enode->Column + Enode->FilenameLength + 6 + 2;                ErrorColumn = ASL_ERROR_LEVEL_LENGTH + 5 + 2 + 1;                if ((MsgLength + ErrorColumn) < (SourceColumn - 1))                {                    fprintf (OutputFile, "%*s%s",                        (int) ((SourceColumn - 1) - ErrorColumn),                        MainMessage, " ^ ");                }                else                {                    fprintf (OutputFile, "%*s %s",                        (int) ((SourceColumn - ErrorColumn) + 1), "^",                        MainMessage);                }            }            else            {                fprintf (OutputFile, " %s", MainMessage);            }            /* Print the extra info message if present */            if (ExtraMessage)            {                fprintf (OutputFile, " (%s)", ExtraMessage);            }            fprintf (OutputFile, "\n");            if (Gbl_VerboseErrors)            {                fprintf (OutputFile, "\n");            }        }        else        {            fprintf (OutputFile, " %s %s\n\n", MainMessage, ExtraMessage);        }    }}/******************************************************************************* * * FUNCTION:    AePrintErrorLog * * PARAMETERS:  FileId           - Where to output the error log * * RETURN:      None * * DESCRIPTION: Print the entire contents of the error log * ******************************************************************************/voidAePrintErrorLog (    UINT32                  FileId){    ASL_ERROR_MSG           *Enode = Gbl_ErrorLog;    /* Walk the error node list */    while (Enode)    {        AePrintException (FileId, Enode, NULL);        Enode = Enode->Next;    }}/******************************************************************************* * * FUNCTION:    AslCommonError * * PARAMETERS:  Level               - Seriousness (Warning/error, etc.) *              MessageId           - Index into global message buffer *              CurrentLineNumber   - Actual file line number *              LogicalLineNumber   - Cumulative line number *              LogicalByteOffset   - Byte offset in source file *              Column              - Column in current line *              Filename            - source filename *              ExtraMessage        - additional error message * * RETURN:      None * * DESCRIPTION: Create a new error node and add it to the error log * ******************************************************************************/voidAslCommonError (    UINT8                   Level,    UINT8                   MessageId,    UINT32                  CurrentLineNumber,    UINT32                  LogicalLineNumber,    UINT32                  LogicalByteOffset,    UINT32                  Column,    char                    *Filename,    char                    *ExtraMessage){    UINT32                  MessageSize;    char                    *MessageBuffer = NULL;    ASL_ERROR_MSG           *Enode;    Enode = UtLocalCalloc (sizeof (ASL_ERROR_MSG));    if (ExtraMessage)    {        /* Allocate a buffer for the message and a new error node */        MessageSize   = strlen (ExtraMessage) + 1;        MessageBuffer = UtLocalCalloc (MessageSize);        /* Keep a copy of the extra message */        ACPI_STRCPY (MessageBuffer, ExtraMessage);    }    /* Initialize the error node */    if (Filename)    {        Enode->Filename       = Filename;        Enode->FilenameLength = strlen (Filename);        if (Enode->FilenameLength < 6)        {            Enode->FilenameLength = 6;        }    }    Enode->MessageId            = MessageId;    Enode->Level                = Level;    Enode->LineNumber           = CurrentLineNumber;    Enode->LogicalLineNumber    = LogicalLineNumber;    Enode->LogicalByteOffset    = LogicalByteOffset;    Enode->Column               = Column;    Enode->Message              = MessageBuffer;    /* Add the new node to the error node list */    AeAddToErrorLog (Enode);    if (Gbl_DebugFlag)    {        /* stderr is a file, send error to it immediately */        AePrintException (ASL_FILE_STDERR, Enode, NULL);    }    Gbl_ExceptionCount[Level]++;    if (Gbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)    {        printf ("\nMaximum error count (%d) exceeded\n", ASL_MAX_ERROR_COUNT);        Gbl_SourceLine = 0;        Gbl_NextError = Gbl_ErrorLog;        CmDoOutputFiles ();        CmCleanupAndExit ();    }    return;}/******************************************************************************* * * FUNCTION:    AslError * * PARAMETERS:  Level               - Seriousness (Warning/error, etc.) *              MessageId           - Index into global message buffer *              Op                  - Parse node where error happened *              ExtraMessage        - additional error message * * RETURN:      None * * DESCRIPTION: Main error reporting routine for the ASL compiler (all code *              except the parser.) * ******************************************************************************/voidAslError (    UINT8                   Level,    UINT8                   MessageId,    ACPI_PARSE_OBJECT       *Op,    char                    *ExtraMessage){    switch (Level)    {    case ASL_WARNING2:    case ASL_WARNING3:        if (Gbl_WarningLevel < Level)        {            return;        }        break;    default:        break;    }    if (Op)    {        AslCommonError (Level, MessageId, Op->Asl.LineNumber,                        Op->Asl.LogicalLineNumber,                        Op->Asl.LogicalByteOffset,                        Op->Asl.Column,                        Op->Asl.Filename, ExtraMessage);    }    else    {        AslCommonError (Level, MessageId, 0,                        0, 0, 0, NULL, ExtraMessage);    }}/******************************************************************************* * * FUNCTION:    AslCoreSubsystemError * * PARAMETERS:  Op                  - Parse node where error happened *              Status              - The ACPI CA Exception *              ExtraMessage        - additional error message *              Abort               - TRUE -> Abort compilation * * RETURN:      None * * DESCRIPTION: Error reporting routine for exceptions returned by the ACPI *              CA core subsystem. * ******************************************************************************/voidAslCoreSubsystemError (    ACPI_PARSE_OBJECT       *Op,    ACPI_STATUS             Status,    char                    *ExtraMessage,    BOOLEAN                 Abort){    sprintf (MsgBuffer, "%s %s", AcpiFormatException (Status), ExtraMessage);    if (Op)    {        AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, Op->Asl.LineNumber,                        Op->Asl.LogicalLineNumber,                        Op->Asl.LogicalByteOffset,                        Op->Asl.Column,                        Op->Asl.Filename, MsgBuffer);    }    else    {        AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, 0,                        0, 0, 0, NULL, MsgBuffer);    }    if (Abort)    {        AslAbort ();    }}/******************************************************************************* * * FUNCTION:    AslCompilererror * * PARAMETERS:  CompilerMessage         - Error message from the parser * * RETURN:      Status (0 for now) * * DESCRIPTION: Report an error situation discovered in a production *              NOTE: don't change the name of this function, it is called *              from the auto-generated parser. * ******************************************************************************/intAslCompilererror (    char                    *CompilerMessage){    AslCommonError (ASL_ERROR, ASL_MSG_SYNTAX, Gbl_CurrentLineNumber,                    Gbl_LogicalLineNumber, Gbl_CurrentLineOffset,                    Gbl_CurrentColumn, Gbl_Files[ASL_FILE_INPUT].Filename,                    CompilerMessage);    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -