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

📄 dbinput.c

📁 acpi tools for linux include acpiexec and acpixtract
💻 C
📖 第 1 页 / 共 3 页
字号:
        }        Status = AcpiDbCommandDispatch (CommandLine, WalkState, Op);        return (Status);    case CMD_HISTORY_LAST:        CommandLine = AcpiDbGetFromHistory (NULL);        if (!CommandLine)        {            return (AE_CTRL_TRUE);        }        Status = AcpiDbCommandDispatch (CommandLine, WalkState, Op);        return (Status);    case CMD_INFORMATION:        AcpiDbDisplayMethodInfo (Op);        break;    case CMD_INTEGRITY:        AcpiDbCheckIntegrity ();        break;    case CMD_INTO:        if (Op)        {            AcpiGbl_CmSingleStep = TRUE;            return (AE_OK);        }        break;    case CMD_LEVEL:        if (ParamCount == 0)        {            AcpiOsPrintf ("Current debug level for file output is:    %8.8lX\n",                AcpiGbl_DbDebugLevel);            AcpiOsPrintf ("Current debug level for console output is: %8.8lX\n",                AcpiGbl_DbConsoleDebugLevel);        }        else if (ParamCount == 2)        {            Temp = AcpiGbl_DbConsoleDebugLevel;            AcpiGbl_DbConsoleDebugLevel = ACPI_STRTOUL (AcpiGbl_DbArgs[1],                                            NULL, 16);            AcpiOsPrintf (                "Debug Level for console output was %8.8lX, now %8.8lX\n",                Temp, AcpiGbl_DbConsoleDebugLevel);        }        else        {            Temp = AcpiGbl_DbDebugLevel;            AcpiGbl_DbDebugLevel = ACPI_STRTOUL (AcpiGbl_DbArgs[1], NULL, 16);            AcpiOsPrintf (                "Debug Level for file output was %8.8lX, now %8.8lX\n",                Temp, AcpiGbl_DbDebugLevel);        }        break;    case CMD_LIST:        AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op);        break;    case CMD_LOAD:        Status = AcpiDbGetTableFromFile (AcpiGbl_DbArgs[1], NULL);        break;    case CMD_LOCKS:        AcpiDbDisplayLocks ();        break;    case CMD_LOCALS:        AcpiDbDisplayLocals ();        break;    case CMD_METHODS:        Status = AcpiDbDisplayObjects ("METHOD", AcpiGbl_DbArgs[1]);        break;    case CMD_NAMESPACE:        AcpiDbDumpNamespace (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);        break;    case CMD_NOTIFY:        Temp = ACPI_STRTOUL (AcpiGbl_DbArgs[2], NULL, 0);        AcpiDbSendNotify (AcpiGbl_DbArgs[1], Temp);        break;    case CMD_OBJECT:        AcpiUtStrupr (AcpiGbl_DbArgs[1]);        Status = AcpiDbDisplayObjects (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);        break;    case CMD_OPEN:        AcpiDbOpenDebugFile (AcpiGbl_DbArgs[1]);        break;    case CMD_OWNER:        AcpiDbDumpNamespaceByOwner (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);        break;    case CMD_PREFIX:        AcpiDbSetScope (AcpiGbl_DbArgs[1]);        break;    case CMD_REFERENCES:        AcpiDbFindReferences (AcpiGbl_DbArgs[1]);        break;    case CMD_RESOURCES:        AcpiDbDisplayResources (AcpiGbl_DbArgs[1]);        break;    case CMD_RESULTS:        AcpiDbDisplayResults ();        break;    case CMD_SET:        AcpiDbSetMethodData (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2],            AcpiGbl_DbArgs[3]);        break;    case CMD_SLEEP:        Status = AcpiDbSleep (AcpiGbl_DbArgs[1]);        break;    case CMD_STATS:        Status = AcpiDbDisplayStatistics (AcpiGbl_DbArgs[1]);        break;    case CMD_STOP:        return (AE_NOT_IMPLEMENTED);    case CMD_TABLES:        AcpiDbDisplayTableInfo (AcpiGbl_DbArgs[1]);        break;    case CMD_TERMINATE:        AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);        AcpiUtSubsystemShutdown ();        /*         * TBD: [Restructure] Need some way to re-initialize without         * re-creating the semaphores!         */        /*  AcpiInitialize (NULL);  */        break;    case CMD_THREADS:        AcpiDbCreateExecutionThreads (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2],            AcpiGbl_DbArgs[3]);        break;    case CMD_TRACE:        (void) AcpiDebugTrace (AcpiGbl_DbArgs[1],0,0,1);        break;    case CMD_TREE:        AcpiDbDisplayCallingTree ();        break;    case CMD_TYPE:        AcpiDbDisplayObjectType (AcpiGbl_DbArgs[1]);        break;    case CMD_UNLOAD:        AcpiDbUnloadAcpiTable (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);        break;    case CMD_EXIT:    case CMD_QUIT:        if (Op)        {            AcpiOsPrintf ("Method execution terminated\n");            return (AE_CTRL_TERMINATE);        }        if (!AcpiGbl_DbOutputToFile)        {            AcpiDbgLevel = ACPI_DEBUG_DEFAULT;        }        AcpiDbCloseDebugFile ();        AcpiGbl_DbTerminateThreads = TRUE;        return (AE_CTRL_TERMINATE);    case CMD_NOT_FOUND:    default:        AcpiOsPrintf ("Unknown Command\n");        return (AE_CTRL_TRUE);    }    if (ACPI_SUCCESS (Status))    {        Status = AE_CTRL_TRUE;    }    /* Add all commands that come here to the history buffer */    AcpiDbAddToHistory (InputBuffer);    return (Status);}/******************************************************************************* * * FUNCTION:    AcpiDbExecuteThread * * PARAMETERS:  Context         - Not used * * RETURN:      None * * DESCRIPTION: Debugger execute thread.  Waits for a command line, then *              simply dispatches it. * ******************************************************************************/void ACPI_SYSTEM_XFACEAcpiDbExecuteThread (    void                    *Context){    ACPI_STATUS             Status = AE_OK;    ACPI_STATUS             MStatus;    while (Status != AE_CTRL_TERMINATE)    {        AcpiGbl_MethodExecuting = FALSE;        AcpiGbl_StepToNextCall = FALSE;        MStatus = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_READY);        if (ACPI_FAILURE (MStatus))        {            return;        }        Status = AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, NULL, NULL);        MStatus = AcpiUtReleaseMutex (ACPI_MTX_DEBUG_CMD_COMPLETE);        if (ACPI_FAILURE (MStatus))        {            return;        }    }}/******************************************************************************* * * FUNCTION:    AcpiDbSingleThread * * PARAMETERS:  None * * RETURN:      None * * DESCRIPTION: Debugger execute thread.  Waits for a command line, then *              simply dispatches it. * ******************************************************************************/static voidAcpiDbSingleThread (    void){    AcpiGbl_MethodExecuting = FALSE;    AcpiGbl_StepToNextCall = FALSE;    (void) AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, NULL, NULL);}/******************************************************************************* * * FUNCTION:    AcpiDbUserCommands * * PARAMETERS:  Prompt              - User prompt (depends on mode) *              Op                  - Current executing parse op * * RETURN:      None * * DESCRIPTION: Command line execution for the AML debugger.  Commands are *              matched and dispatched here. * ******************************************************************************/ACPI_STATUSAcpiDbUserCommands (    char                    Prompt,    ACPI_PARSE_OBJECT       *Op){    ACPI_STATUS             Status = AE_OK;    /* TBD: [Restructure] Need a separate command line buffer for step mode */    while (!AcpiGbl_DbTerminateThreads)    {        /* Force output to console until a command is entered */        AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);        /* Different prompt if method is executing */        if (!AcpiGbl_MethodExecuting)        {            AcpiOsPrintf ("%1c ", ACPI_DEBUGGER_COMMAND_PROMPT);        }        else        {            AcpiOsPrintf ("%1c ", ACPI_DEBUGGER_EXECUTE_PROMPT);        }        /* Get the user input line */        (void) AcpiOsGetLine (AcpiGbl_DbLineBuf);        /* Check for single or multithreaded debug */        if (AcpiGbl_DebuggerConfiguration & DEBUGGER_MULTI_THREADED)        {            /*             * Signal the debug thread that we have a command to execute,             * and wait for the command to complete.             */            Status = AcpiUtReleaseMutex (ACPI_MTX_DEBUG_CMD_READY);            if (ACPI_FAILURE (Status))            {                return (Status);            }            Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_COMPLETE);            if (ACPI_FAILURE (Status))            {                return (Status);            }        }        else        {            /* Just call to the command line interpreter */            AcpiDbSingleThread ();        }    }    /*     * Only this thread (the original thread) should actually terminate the     * subsystem, because all the semaphores are deleted during termination     */    Status = AcpiTerminate ();    return (Status);}#endif  /* ACPI_DEBUGGER */

⌨️ 快捷键说明

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