The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/dev/acpica/include/acdebug.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /******************************************************************************
    2  *
    3  * Name: acdebug.h - ACPI/AML debugger
    4  *
    5  *****************************************************************************/
    6 
    7 /******************************************************************************
    8  *
    9  * 1. Copyright Notice
   10  *
   11  * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
   12  * All rights reserved.
   13  *
   14  * 2. License
   15  *
   16  * 2.1. This is your license from Intel Corp. under its intellectual property
   17  * rights. You may have additional license terms from the party that provided
   18  * you this software, covering your right to use that party's intellectual
   19  * property rights.
   20  *
   21  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
   22  * copy of the source code appearing in this file ("Covered Code") an
   23  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
   24  * base code distributed originally by Intel ("Original Intel Code") to copy,
   25  * make derivatives, distribute, use and display any portion of the Covered
   26  * Code in any form, with the right to sublicense such rights; and
   27  *
   28  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
   29  * license (with the right to sublicense), under only those claims of Intel
   30  * patents that are infringed by the Original Intel Code, to make, use, sell,
   31  * offer to sell, and import the Covered Code and derivative works thereof
   32  * solely to the minimum extent necessary to exercise the above copyright
   33  * license, and in no event shall the patent license extend to any additions
   34  * to or modifications of the Original Intel Code. No other license or right
   35  * is granted directly or by implication, estoppel or otherwise;
   36  *
   37  * The above copyright and patent license is granted only if the following
   38  * conditions are met:
   39  *
   40  * 3. Conditions
   41  *
   42  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
   43  * Redistribution of source code of any substantial portion of the Covered
   44  * Code or modification with rights to further distribute source must include
   45  * the above Copyright Notice, the above License, this list of Conditions,
   46  * and the following Disclaimer and Export Compliance provision. In addition,
   47  * Licensee must cause all Covered Code to which Licensee contributes to
   48  * contain a file documenting the changes Licensee made to create that Covered
   49  * Code and the date of any change. Licensee must include in that file the
   50  * documentation of any changes made by any predecessor Licensee. Licensee
   51  * must include a prominent statement that the modification is derived,
   52  * directly or indirectly, from Original Intel Code.
   53  *
   54  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
   55  * Redistribution of source code of any substantial portion of the Covered
   56  * Code or modification without rights to further distribute source must
   57  * include the following Disclaimer and Export Compliance provision in the
   58  * documentation and/or other materials provided with distribution. In
   59  * addition, Licensee may not authorize further sublicense of source of any
   60  * portion of the Covered Code, and must include terms to the effect that the
   61  * license from Licensee to its licensee is limited to the intellectual
   62  * property embodied in the software Licensee provides to its licensee, and
   63  * not to intellectual property embodied in modifications its licensee may
   64  * make.
   65  *
   66  * 3.3. Redistribution of Executable. Redistribution in executable form of any
   67  * substantial portion of the Covered Code or modification must reproduce the
   68  * above Copyright Notice, and the following Disclaimer and Export Compliance
   69  * provision in the documentation and/or other materials provided with the
   70  * distribution.
   71  *
   72  * 3.4. Intel retains all right, title, and interest in and to the Original
   73  * Intel Code.
   74  *
   75  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
   76  * Intel shall be used in advertising or otherwise to promote the sale, use or
   77  * other dealings in products derived from or relating to the Covered Code
   78  * without prior written authorization from Intel.
   79  *
   80  * 4. Disclaimer and Export Compliance
   81  *
   82  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
   83  * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
   84  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
   85  * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
   86  * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
   87  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
   88  * PARTICULAR PURPOSE.
   89  *
   90  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
   91  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
   92  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
   93  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
   94  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
   95  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
   96  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
   97  * LIMITED REMEDY.
   98  *
   99  * 4.3. Licensee shall not export, either directly or indirectly, any of this
  100  * software or system incorporating such software without first obtaining any
  101  * required license or other approval from the U. S. Department of Commerce or
  102  * any other agency or department of the United States Government. In the
  103  * event Licensee exports any such software from the United States or
  104  * re-exports any such software from a foreign destination, Licensee shall
  105  * ensure that the distribution and export/re-export of the software is in
  106  * compliance with all laws, regulations, orders, or other restrictions of the
  107  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
  108  * any of its subsidiaries will export/re-export any technical data, process,
  109  * software, or service, directly or indirectly, to any country for which the
  110  * United States government or any agency thereof requires an export license,
  111  * other governmental approval, or letter of assurance, without first obtaining
  112  * such license, approval or letter.
  113  *
  114  *****************************************************************************
  115  *
  116  * Alternatively, you may choose to be licensed under the terms of the
  117  * following license:
  118  *
  119  * Redistribution and use in source and binary forms, with or without
  120  * modification, are permitted provided that the following conditions
  121  * are met:
  122  * 1. Redistributions of source code must retain the above copyright
  123  *    notice, this list of conditions, and the following disclaimer,
  124  *    without modification.
  125  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  126  *    substantially similar to the "NO WARRANTY" disclaimer below
  127  *    ("Disclaimer") and any redistribution must be conditioned upon
  128  *    including a substantially similar Disclaimer requirement for further
  129  *    binary redistribution.
  130  * 3. Neither the names of the above-listed copyright holders nor the names
  131  *    of any contributors may be used to endorse or promote products derived
  132  *    from this software without specific prior written permission.
  133  *
  134  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  135  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  136  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  137  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  138  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  139  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  140  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  141  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  142  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  143  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  144  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  145  *
  146  * Alternatively, you may choose to be licensed under the terms of the
  147  * GNU General Public License ("GPL") version 2 as published by the Free
  148  * Software Foundation.
  149  *
  150  *****************************************************************************/
  151 
  152 #ifndef __ACDEBUG_H__
  153 #define __ACDEBUG_H__
  154 
  155 /* The debugger is used in conjunction with the disassembler most of time */
  156 
  157 #ifdef ACPI_DISASSEMBLER
  158 #include <contrib/dev/acpica/include/acdisasm.h>
  159 #endif
  160 
  161 
  162 #define ACPI_DEBUG_BUFFER_SIZE      0x4000      /* 16K buffer for return objects */
  163 #define ACPI_DEBUG_LENGTH_FORMAT    " (%.4X bits, %.3X bytes)"
  164 
  165 typedef struct acpi_db_command_info
  166 {
  167     const char              *Name;          /* Command Name */
  168     UINT8                   MinArgs;        /* Minimum arguments required */
  169 
  170 } ACPI_DB_COMMAND_INFO;
  171 
  172 typedef struct acpi_db_command_help
  173 {
  174     UINT8                   LineCount;      /* Number of help lines */
  175     char                    *Invocation;    /* Command Invocation */
  176     char                    *Description;   /* Command Description */
  177 
  178 } ACPI_DB_COMMAND_HELP;
  179 
  180 typedef struct acpi_db_argument_info
  181 {
  182     const char              *Name;          /* Argument Name */
  183 
  184 } ACPI_DB_ARGUMENT_INFO;
  185 
  186 typedef struct acpi_db_execute_walk
  187 {
  188     UINT32                  Count;
  189     UINT32                  MaxCount;
  190     char                    NameSeg[ACPI_NAMESEG_SIZE + 1];
  191 
  192 } ACPI_DB_EXECUTE_WALK;
  193 
  194 
  195 #define PARAM_LIST(pl)                  pl
  196 
  197 #define EX_NO_SINGLE_STEP               1
  198 #define EX_SINGLE_STEP                  2
  199 #define EX_ALL                          4
  200 
  201 
  202 /*
  203  * dbxface - external debugger interfaces
  204  */
  205 ACPI_DBR_DEPENDENT_RETURN_OK (
  206 ACPI_STATUS
  207 AcpiDbSingleStep (
  208     ACPI_WALK_STATE         *WalkState,
  209     ACPI_PARSE_OBJECT       *Op,
  210     UINT32                  OpType))
  211 
  212 ACPI_DBR_DEPENDENT_RETURN_VOID (
  213 void
  214 AcpiDbSignalBreakPoint (
  215     ACPI_WALK_STATE         *WalkState))
  216 
  217 
  218 /*
  219  * dbcmds - debug commands and output routines
  220  */
  221 ACPI_NAMESPACE_NODE *
  222 AcpiDbConvertToNode (
  223     char                    *InString);
  224 
  225 void
  226 AcpiDbDisplayTableInfo (
  227     char                    *TableArg);
  228 
  229 void
  230 AcpiDbDisplayTemplate (
  231     char                    *BufferArg);
  232 
  233 void
  234 AcpiDbUnloadAcpiTable (
  235     char                    *Name);
  236 
  237 void
  238 AcpiDbSendNotify (
  239     char                    *Name,
  240     UINT32                  Value);
  241 
  242 void
  243 AcpiDbDisplayInterfaces (
  244     char                    *ActionArg,
  245     char                    *InterfaceNameArg);
  246 
  247 ACPI_STATUS
  248 AcpiDbSleep (
  249     char                    *ObjectArg);
  250 
  251 void
  252 AcpiDbTrace (
  253     char                    *EnableArg,
  254     char                    *MethodArg,
  255     char                    *OnceArg);
  256 
  257 void
  258 AcpiDbDisplayLocks (
  259     void);
  260 
  261 void
  262 AcpiDbDisplayResources (
  263     char                    *ObjectArg);
  264 
  265 ACPI_HW_DEPENDENT_RETURN_VOID (
  266 void
  267 AcpiDbDisplayGpes (
  268     void))
  269 
  270 void
  271 AcpiDbDisplayHandlers (
  272     void);
  273 
  274 ACPI_HW_DEPENDENT_RETURN_VOID (
  275 void
  276 AcpiDbGenerateGpe (
  277     char                    *GpeArg,
  278     char                    *BlockArg))
  279 
  280 ACPI_HW_DEPENDENT_RETURN_VOID (
  281 void
  282 AcpiDbGenerateSci (
  283     void))
  284 
  285 void
  286 AcpiDbExecuteTest (
  287     char                    *TypeArg);
  288 
  289 
  290 /*
  291  * dbconvert - miscellaneous conversion routines
  292  */
  293 ACPI_STATUS
  294 AcpiDbHexCharToValue (
  295     int                     HexChar,
  296     UINT8                   *ReturnValue);
  297 
  298 ACPI_STATUS
  299 AcpiDbConvertToPackage (
  300     char                    *String,
  301     ACPI_OBJECT             *Object);
  302 
  303 ACPI_STATUS
  304 AcpiDbConvertToObject (
  305     ACPI_OBJECT_TYPE        Type,
  306     char                    *String,
  307     ACPI_OBJECT             *Object);
  308 
  309 UINT8 *
  310 AcpiDbEncodePldBuffer (
  311     ACPI_PLD_INFO           *PldInfo);
  312 
  313 void
  314 AcpiDbDumpPldBuffer (
  315     ACPI_OBJECT             *ObjDesc);
  316 
  317 
  318 /*
  319  * dbmethod - control method commands
  320  */
  321 void
  322 AcpiDbSetMethodBreakpoint (
  323     char                    *Location,
  324     ACPI_WALK_STATE         *WalkState,
  325     ACPI_PARSE_OBJECT       *Op);
  326 
  327 void
  328 AcpiDbSetMethodCallBreakpoint (
  329     ACPI_PARSE_OBJECT       *Op);
  330 
  331 void
  332 AcpiDbSetMethodData (
  333     char                    *TypeArg,
  334     char                    *IndexArg,
  335     char                    *ValueArg);
  336 
  337 ACPI_STATUS
  338 AcpiDbDisassembleMethod (
  339     char                    *Name);
  340 
  341 void
  342 AcpiDbDisassembleAml (
  343     char                    *Statements,
  344     ACPI_PARSE_OBJECT       *Op);
  345 
  346 void
  347 AcpiDbEvaluatePredefinedNames (
  348     void);
  349 
  350 void
  351 AcpiDbEvaluateAll (
  352     char                    *NameSeg);
  353 
  354 
  355 /*
  356  * dbnames - namespace commands
  357  */
  358 void
  359 AcpiDbSetScope (
  360     char                    *Name);
  361 
  362 void
  363 AcpiDbDumpNamespace (
  364     char                    *StartArg,
  365     char                    *DepthArg);
  366 
  367 void
  368 AcpiDbDumpNamespacePaths (
  369     void);
  370 
  371 void
  372 AcpiDbDumpNamespaceByOwner (
  373     char                    *OwnerArg,
  374     char                    *DepthArg);
  375 
  376 ACPI_STATUS
  377 AcpiDbFindNameInNamespace (
  378     char                    *NameArg);
  379 
  380 void
  381 AcpiDbCheckPredefinedNames (
  382     void);
  383 
  384 ACPI_STATUS
  385 AcpiDbDisplayObjects (
  386     char                    *ObjTypeArg,
  387     char                    *DisplayCountArg);
  388 
  389 void
  390 AcpiDbCheckIntegrity (
  391     void);
  392 
  393 void
  394 AcpiDbFindReferences (
  395     char                    *ObjectArg);
  396 
  397 void
  398 AcpiDbGetBusInfo (
  399     void);
  400 
  401 ACPI_STATUS
  402 AcpiDbDisplayFields (
  403     UINT32                  AddressSpaceId);
  404 
  405 
  406 /*
  407  * dbdisply - debug display commands
  408  */
  409 void
  410 AcpiDbDisplayMethodInfo (
  411     ACPI_PARSE_OBJECT       *Op);
  412 
  413 void
  414 AcpiDbDecodeAndDisplayObject (
  415     char                    *Target,
  416     char                    *OutputType);
  417 
  418 ACPI_DBR_DEPENDENT_RETURN_VOID (
  419 void
  420 AcpiDbDisplayResultObject (
  421     ACPI_OPERAND_OBJECT     *ObjDesc,
  422     ACPI_WALK_STATE         *WalkState))
  423 
  424 ACPI_STATUS
  425 AcpiDbDisplayAllMethods (
  426     char                    *DisplayCountArg);
  427 
  428 void
  429 AcpiDbDisplayArguments (
  430     void);
  431 
  432 void
  433 AcpiDbDisplayLocals (
  434     void);
  435 
  436 void
  437 AcpiDbDisplayResults (
  438     void);
  439 
  440 void
  441 AcpiDbDisplayCallingTree (
  442     void);
  443 
  444 void
  445 AcpiDbDisplayObjectType (
  446     char                    *ObjectArg);
  447 
  448 ACPI_DBR_DEPENDENT_RETURN_VOID (
  449 void
  450 AcpiDbDisplayArgumentObject (
  451     ACPI_OPERAND_OBJECT     *ObjDesc,
  452     ACPI_WALK_STATE         *WalkState))
  453 
  454 
  455 /*
  456  * dbexec - debugger control method execution
  457  */
  458 void
  459 AcpiDbExecute (
  460     char                    *Name,
  461     char                    **Args,
  462     ACPI_OBJECT_TYPE        *Types,
  463     UINT32                  Flags);
  464 
  465 void
  466 AcpiDbCreateExecutionThread (
  467     char                    *MethodNameArg,
  468     char                    **Arguments,
  469     ACPI_OBJECT_TYPE        *Types);
  470 
  471 void
  472 AcpiDbCreateExecutionThreads (
  473     char                    *NumThreadsArg,
  474     char                    *NumLoopsArg,
  475     char                    *MethodNameArg);
  476 
  477 void
  478 AcpiDbDeleteObjects (
  479     UINT32                  Count,
  480     ACPI_OBJECT             *Objects);
  481 
  482 #ifdef ACPI_DBG_TRACK_ALLOCATIONS
  483 UINT32
  484 AcpiDbGetCacheInfo (
  485     ACPI_MEMORY_LIST        *Cache);
  486 #endif
  487 
  488 
  489 /*
  490  * dbfileio - Debugger file I/O commands
  491  */
  492 ACPI_OBJECT_TYPE
  493 AcpiDbMatchArgument (
  494     char                    *UserArgument,
  495     ACPI_DB_ARGUMENT_INFO   *Arguments);
  496 
  497 void
  498 AcpiDbCloseDebugFile (
  499     void);
  500 
  501 void
  502 AcpiDbOpenDebugFile (
  503     char                    *Name);
  504 
  505 ACPI_STATUS
  506 AcpiDbLoadAcpiTable (
  507     char                    *Filename);
  508 
  509 ACPI_STATUS
  510 AcpiDbLoadTables (
  511     ACPI_NEW_TABLE_DESC     *ListHead);
  512 
  513 
  514 /*
  515  * dbhistry - debugger HISTORY command
  516  */
  517 void
  518 AcpiDbAddToHistory (
  519     char                    *CommandLine);
  520 
  521 void
  522 AcpiDbDisplayHistory (
  523     void);
  524 
  525 char *
  526 AcpiDbGetFromHistory (
  527     char                    *CommandNumArg);
  528 
  529 char *
  530 AcpiDbGetHistoryByIndex (
  531     UINT32                  CommanddNum);
  532 
  533 
  534 /*
  535  * dbinput - user front-end to the AML debugger
  536  */
  537 ACPI_STATUS
  538 AcpiDbCommandDispatch (
  539     char                    *InputBuffer,
  540     ACPI_WALK_STATE         *WalkState,
  541     ACPI_PARSE_OBJECT       *Op);
  542 
  543 void ACPI_SYSTEM_XFACE
  544 AcpiDbExecuteThread (
  545     void                    *Context);
  546 
  547 ACPI_STATUS
  548 AcpiDbUserCommands (
  549     void);
  550 
  551 char *
  552 AcpiDbGetNextToken (
  553     char                    *String,
  554     char                    **Next,
  555     ACPI_OBJECT_TYPE        *ReturnType);
  556 
  557 
  558 /*
  559  * dbobject
  560  */
  561 void
  562 AcpiDbDecodeInternalObject (
  563     ACPI_OPERAND_OBJECT     *ObjDesc);
  564 
  565 void
  566 AcpiDbDisplayInternalObject (
  567     ACPI_OPERAND_OBJECT     *ObjDesc,
  568     ACPI_WALK_STATE         *WalkState);
  569 
  570 void
  571 AcpiDbDecodeArguments (
  572     ACPI_WALK_STATE         *WalkState);
  573 
  574 void
  575 AcpiDbDecodeLocals (
  576     ACPI_WALK_STATE         *WalkState);
  577 
  578 void
  579 AcpiDbDumpMethodInfo (
  580     ACPI_STATUS             Status,
  581     ACPI_WALK_STATE         *WalkState);
  582 
  583 
  584 /*
  585  * dbstats - Generation and display of ACPI table statistics
  586  */
  587 void
  588 AcpiDbGenerateStatistics (
  589     ACPI_PARSE_OBJECT       *Root,
  590     BOOLEAN                 IsMethod);
  591 
  592 ACPI_STATUS
  593 AcpiDbDisplayStatistics (
  594     char                    *TypeArg);
  595 
  596 
  597 /*
  598  * dbutils - AML debugger utilities
  599  */
  600 void
  601 AcpiDbSetOutputDestination (
  602     UINT32                  Where);
  603 
  604 void
  605 AcpiDbDumpExternalObject (
  606     ACPI_OBJECT             *ObjDesc,
  607     UINT32                  Level);
  608 
  609 void
  610 AcpiDbPrepNamestring (
  611     char                    *Name);
  612 
  613 ACPI_NAMESPACE_NODE *
  614 AcpiDbLocalNsLookup (
  615     char                    *Name);
  616 
  617 void
  618 AcpiDbUint32ToHexString (
  619     UINT32                  Value,
  620     char                    *Buffer);
  621 
  622 #endif  /* __ACDEBUG_H__ */

Cache object: d365c34068207c22a5f0b96730180894


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.