1a9f12690SJung-uk Kim /****************************************************************************** 2a9f12690SJung-uk Kim * 3a9f12690SJung-uk Kim * Name: acdebug.h - ACPI/AML debugger 4a9f12690SJung-uk Kim * 5a9f12690SJung-uk Kim *****************************************************************************/ 6a9f12690SJung-uk Kim 7d244b227SJung-uk Kim /* 8ec3fc72fSJung-uk Kim * Copyright (C) 2000 - 2012, Intel Corp. 9a9f12690SJung-uk Kim * All rights reserved. 10a9f12690SJung-uk Kim * 11d244b227SJung-uk Kim * Redistribution and use in source and binary forms, with or without 12d244b227SJung-uk Kim * modification, are permitted provided that the following conditions 13d244b227SJung-uk Kim * are met: 14d244b227SJung-uk Kim * 1. Redistributions of source code must retain the above copyright 15d244b227SJung-uk Kim * notice, this list of conditions, and the following disclaimer, 16d244b227SJung-uk Kim * without modification. 17d244b227SJung-uk Kim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18d244b227SJung-uk Kim * substantially similar to the "NO WARRANTY" disclaimer below 19d244b227SJung-uk Kim * ("Disclaimer") and any redistribution must be conditioned upon 20d244b227SJung-uk Kim * including a substantially similar Disclaimer requirement for further 21d244b227SJung-uk Kim * binary redistribution. 22d244b227SJung-uk Kim * 3. Neither the names of the above-listed copyright holders nor the names 23d244b227SJung-uk Kim * of any contributors may be used to endorse or promote products derived 24d244b227SJung-uk Kim * from this software without specific prior written permission. 25a9f12690SJung-uk Kim * 26d244b227SJung-uk Kim * Alternatively, this software may be distributed under the terms of the 27d244b227SJung-uk Kim * GNU General Public License ("GPL") version 2 as published by the Free 28d244b227SJung-uk Kim * Software Foundation. 29a9f12690SJung-uk Kim * 30d244b227SJung-uk Kim * NO WARRANTY 31d244b227SJung-uk Kim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32d244b227SJung-uk Kim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33d244b227SJung-uk Kim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34d244b227SJung-uk Kim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35d244b227SJung-uk Kim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36d244b227SJung-uk Kim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37d244b227SJung-uk Kim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38d244b227SJung-uk Kim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39d244b227SJung-uk Kim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40d244b227SJung-uk Kim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41d244b227SJung-uk Kim * POSSIBILITY OF SUCH DAMAGES. 42d244b227SJung-uk Kim */ 43a9f12690SJung-uk Kim 44a9f12690SJung-uk Kim #ifndef __ACDEBUG_H__ 45a9f12690SJung-uk Kim #define __ACDEBUG_H__ 46a9f12690SJung-uk Kim 47a9f12690SJung-uk Kim 485a77b11bSJung-uk Kim #define ACPI_DEBUG_BUFFER_SIZE 0x4000 /* 16K buffer for return objects */ 49a9f12690SJung-uk Kim 50a9f12690SJung-uk Kim typedef struct CommandInfo 51a9f12690SJung-uk Kim { 52a9f12690SJung-uk Kim char *Name; /* Command Name */ 53a9f12690SJung-uk Kim UINT8 MinArgs; /* Minimum arguments required */ 54a9f12690SJung-uk Kim 55a9f12690SJung-uk Kim } COMMAND_INFO; 56a9f12690SJung-uk Kim 57a9f12690SJung-uk Kim typedef struct ArgumentInfo 58a9f12690SJung-uk Kim { 59a9f12690SJung-uk Kim char *Name; /* Argument Name */ 60a9f12690SJung-uk Kim 61a9f12690SJung-uk Kim } ARGUMENT_INFO; 62a9f12690SJung-uk Kim 63f556842eSJung-uk Kim typedef struct acpi_execute_walk 64f556842eSJung-uk Kim { 65f556842eSJung-uk Kim UINT32 Count; 66f556842eSJung-uk Kim UINT32 MaxCount; 67f556842eSJung-uk Kim 68f556842eSJung-uk Kim } ACPI_EXECUTE_WALK; 69f556842eSJung-uk Kim 70a9f12690SJung-uk Kim 71a9f12690SJung-uk Kim #define PARAM_LIST(pl) pl 72a9f12690SJung-uk Kim #define DBTEST_OUTPUT_LEVEL(lvl) if (AcpiGbl_DbOpt_verbose) 73a9f12690SJung-uk Kim #define VERBOSE_PRINT(fp) DBTEST_OUTPUT_LEVEL(lvl) {\ 74a9f12690SJung-uk Kim AcpiOsPrintf PARAM_LIST(fp);} 75a9f12690SJung-uk Kim 76a9f12690SJung-uk Kim #define EX_NO_SINGLE_STEP 1 77a9f12690SJung-uk Kim #define EX_SINGLE_STEP 2 78a9f12690SJung-uk Kim 79a9f12690SJung-uk Kim 80a9f12690SJung-uk Kim /* 81a9f12690SJung-uk Kim * dbxface - external debugger interfaces 82a9f12690SJung-uk Kim */ 83a9f12690SJung-uk Kim ACPI_STATUS 84a9f12690SJung-uk Kim AcpiDbInitialize ( 85a9f12690SJung-uk Kim void); 86a9f12690SJung-uk Kim 87a9f12690SJung-uk Kim void 88a9f12690SJung-uk Kim AcpiDbTerminate ( 89a9f12690SJung-uk Kim void); 90a9f12690SJung-uk Kim 91a9f12690SJung-uk Kim ACPI_STATUS 92a9f12690SJung-uk Kim AcpiDbSingleStep ( 93a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState, 94a9f12690SJung-uk Kim ACPI_PARSE_OBJECT *Op, 95a9f12690SJung-uk Kim UINT32 OpType); 96a9f12690SJung-uk Kim 97a9f12690SJung-uk Kim 98a9f12690SJung-uk Kim /* 99a9f12690SJung-uk Kim * dbcmds - debug commands and output routines 100a9f12690SJung-uk Kim */ 1010b94ba42SJung-uk Kim ACPI_NAMESPACE_NODE * 1020b94ba42SJung-uk Kim AcpiDbConvertToNode ( 1030b94ba42SJung-uk Kim char *InString); 104a9f12690SJung-uk Kim 105a9f12690SJung-uk Kim void 106a9f12690SJung-uk Kim AcpiDbDisplayTableInfo ( 107a9f12690SJung-uk Kim char *TableArg); 108a9f12690SJung-uk Kim 109a9f12690SJung-uk Kim void 1103f0275a0SJung-uk Kim AcpiDbDisplayTemplate ( 1113f0275a0SJung-uk Kim char *BufferArg); 1123f0275a0SJung-uk Kim 1133f0275a0SJung-uk Kim void 114a9f12690SJung-uk Kim AcpiDbUnloadAcpiTable ( 115*e8241eabSJung-uk Kim char *Name); 116a9f12690SJung-uk Kim 117a9f12690SJung-uk Kim void 118a9f12690SJung-uk Kim AcpiDbSendNotify ( 119a9f12690SJung-uk Kim char *Name, 120a9f12690SJung-uk Kim UINT32 Value); 121a9f12690SJung-uk Kim 122a9f12690SJung-uk Kim void 123709fac06SJung-uk Kim AcpiDbDisplayInterfaces ( 124709fac06SJung-uk Kim char *ActionArg, 125709fac06SJung-uk Kim char *InterfaceNameArg); 126709fac06SJung-uk Kim 127a9f12690SJung-uk Kim ACPI_STATUS 128a9f12690SJung-uk Kim AcpiDbSleep ( 129a9f12690SJung-uk Kim char *ObjectArg); 130a9f12690SJung-uk Kim 131a9f12690SJung-uk Kim void 132a9f12690SJung-uk Kim AcpiDbDisplayLocks ( 133a9f12690SJung-uk Kim void); 134a9f12690SJung-uk Kim 135a9f12690SJung-uk Kim void 136a9f12690SJung-uk Kim AcpiDbDisplayResources ( 137a9f12690SJung-uk Kim char *ObjectArg); 138a9f12690SJung-uk Kim 139a159c266SJung-uk Kim ACPI_HW_DEPENDENT_RETURN_VOID ( 140a9f12690SJung-uk Kim void 141a9f12690SJung-uk Kim AcpiDbDisplayGpes ( 142a159c266SJung-uk Kim void)) 143a9f12690SJung-uk Kim 144a9f12690SJung-uk Kim void 1450b94ba42SJung-uk Kim AcpiDbDisplayHandlers ( 146a9f12690SJung-uk Kim void); 147a9f12690SJung-uk Kim 148a159c266SJung-uk Kim ACPI_HW_DEPENDENT_RETURN_VOID ( 149a9f12690SJung-uk Kim void 150a9f12690SJung-uk Kim AcpiDbGenerateGpe ( 151a9f12690SJung-uk Kim char *GpeArg, 152a159c266SJung-uk Kim char *BlockArg)) 153a9f12690SJung-uk Kim 1540b94ba42SJung-uk Kim 1550b94ba42SJung-uk Kim /* 1560b94ba42SJung-uk Kim * dbmethod - control method commands 1570b94ba42SJung-uk Kim */ 158a9f12690SJung-uk Kim void 1590b94ba42SJung-uk Kim AcpiDbSetMethodBreakpoint ( 1600b94ba42SJung-uk Kim char *Location, 1610b94ba42SJung-uk Kim ACPI_WALK_STATE *WalkState, 1620b94ba42SJung-uk Kim ACPI_PARSE_OBJECT *Op); 1630b94ba42SJung-uk Kim 1640b94ba42SJung-uk Kim void 1650b94ba42SJung-uk Kim AcpiDbSetMethodCallBreakpoint ( 1660b94ba42SJung-uk Kim ACPI_PARSE_OBJECT *Op); 1670b94ba42SJung-uk Kim 1680b94ba42SJung-uk Kim void 1690b94ba42SJung-uk Kim AcpiDbSetMethodData ( 1700b94ba42SJung-uk Kim char *TypeArg, 1710b94ba42SJung-uk Kim char *IndexArg, 1720b94ba42SJung-uk Kim char *ValueArg); 1730b94ba42SJung-uk Kim 1740b94ba42SJung-uk Kim ACPI_STATUS 1750b94ba42SJung-uk Kim AcpiDbDisassembleMethod ( 1760b94ba42SJung-uk Kim char *Name); 1770b94ba42SJung-uk Kim 1780b94ba42SJung-uk Kim void 1790b94ba42SJung-uk Kim AcpiDbDisassembleAml ( 1800b94ba42SJung-uk Kim char *Statements, 1810b94ba42SJung-uk Kim ACPI_PARSE_OBJECT *Op); 182a9f12690SJung-uk Kim 183a9f12690SJung-uk Kim void 184a9f12690SJung-uk Kim AcpiDbBatchExecute ( 185f556842eSJung-uk Kim char *CountArg); 186a9f12690SJung-uk Kim 1870b94ba42SJung-uk Kim 1880b94ba42SJung-uk Kim /* 1890b94ba42SJung-uk Kim * dbnames - namespace commands 1900b94ba42SJung-uk Kim */ 1910b94ba42SJung-uk Kim void 1920b94ba42SJung-uk Kim AcpiDbSetScope ( 1930b94ba42SJung-uk Kim char *Name); 1940b94ba42SJung-uk Kim 1950b94ba42SJung-uk Kim void 1960b94ba42SJung-uk Kim AcpiDbDumpNamespace ( 1970b94ba42SJung-uk Kim char *StartArg, 1980b94ba42SJung-uk Kim char *DepthArg); 1990b94ba42SJung-uk Kim 2000b94ba42SJung-uk Kim void 2010b94ba42SJung-uk Kim AcpiDbDumpNamespaceByOwner ( 2020b94ba42SJung-uk Kim char *OwnerArg, 2030b94ba42SJung-uk Kim char *DepthArg); 2040b94ba42SJung-uk Kim 2050b94ba42SJung-uk Kim ACPI_STATUS 2060b94ba42SJung-uk Kim AcpiDbFindNameInNamespace ( 2070b94ba42SJung-uk Kim char *NameArg); 2080b94ba42SJung-uk Kim 2090b94ba42SJung-uk Kim void 2100b94ba42SJung-uk Kim AcpiDbCheckPredefinedNames ( 2110b94ba42SJung-uk Kim void); 2120b94ba42SJung-uk Kim 2130b94ba42SJung-uk Kim ACPI_STATUS 2140b94ba42SJung-uk Kim AcpiDbDisplayObjects ( 2150b94ba42SJung-uk Kim char *ObjTypeArg, 2160b94ba42SJung-uk Kim char *DisplayCountArg); 2170b94ba42SJung-uk Kim 2180b94ba42SJung-uk Kim void 2190b94ba42SJung-uk Kim AcpiDbCheckIntegrity ( 2200b94ba42SJung-uk Kim void); 2210b94ba42SJung-uk Kim 2220b94ba42SJung-uk Kim void 2230b94ba42SJung-uk Kim AcpiDbFindReferences ( 2240b94ba42SJung-uk Kim char *ObjectArg); 2250b94ba42SJung-uk Kim 2260b94ba42SJung-uk Kim void 2270b94ba42SJung-uk Kim AcpiDbGetBusInfo ( 2280b94ba42SJung-uk Kim void); 2290b94ba42SJung-uk Kim 2300b94ba42SJung-uk Kim 231a9f12690SJung-uk Kim /* 232a9f12690SJung-uk Kim * dbdisply - debug display commands 233a9f12690SJung-uk Kim */ 234a9f12690SJung-uk Kim void 235a9f12690SJung-uk Kim AcpiDbDisplayMethodInfo ( 236a9f12690SJung-uk Kim ACPI_PARSE_OBJECT *Op); 237a9f12690SJung-uk Kim 238a9f12690SJung-uk Kim void 239a9f12690SJung-uk Kim AcpiDbDecodeAndDisplayObject ( 240a9f12690SJung-uk Kim char *Target, 241a9f12690SJung-uk Kim char *OutputType); 242a9f12690SJung-uk Kim 243a9f12690SJung-uk Kim void 244a9f12690SJung-uk Kim AcpiDbDisplayResultObject ( 245a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 246a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 247a9f12690SJung-uk Kim 248a9f12690SJung-uk Kim ACPI_STATUS 249a9f12690SJung-uk Kim AcpiDbDisplayAllMethods ( 250a9f12690SJung-uk Kim char *DisplayCountArg); 251a9f12690SJung-uk Kim 252a9f12690SJung-uk Kim void 253a9f12690SJung-uk Kim AcpiDbDisplayArguments ( 254a9f12690SJung-uk Kim void); 255a9f12690SJung-uk Kim 256a9f12690SJung-uk Kim void 257a9f12690SJung-uk Kim AcpiDbDisplayLocals ( 258a9f12690SJung-uk Kim void); 259a9f12690SJung-uk Kim 260a9f12690SJung-uk Kim void 261a9f12690SJung-uk Kim AcpiDbDisplayResults ( 262a9f12690SJung-uk Kim void); 263a9f12690SJung-uk Kim 264a9f12690SJung-uk Kim void 265a9f12690SJung-uk Kim AcpiDbDisplayCallingTree ( 266a9f12690SJung-uk Kim void); 267a9f12690SJung-uk Kim 268a9f12690SJung-uk Kim void 269a9f12690SJung-uk Kim AcpiDbDisplayObjectType ( 270a9f12690SJung-uk Kim char *ObjectArg); 271a9f12690SJung-uk Kim 272a9f12690SJung-uk Kim void 273a9f12690SJung-uk Kim AcpiDbDisplayArgumentObject ( 274a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *ObjDesc, 275a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState); 276a9f12690SJung-uk Kim 277d6dd1baeSJung-uk Kim 278a9f12690SJung-uk Kim /* 279a9f12690SJung-uk Kim * dbexec - debugger control method execution 280a9f12690SJung-uk Kim */ 281a9f12690SJung-uk Kim void 282a9f12690SJung-uk Kim AcpiDbExecute ( 283a9f12690SJung-uk Kim char *Name, 284a9f12690SJung-uk Kim char **Args, 28542e58c03SJung-uk Kim ACPI_OBJECT_TYPE *Types, 286a9f12690SJung-uk Kim UINT32 Flags); 287a9f12690SJung-uk Kim 288a9f12690SJung-uk Kim void 289a9f12690SJung-uk Kim AcpiDbCreateExecutionThreads ( 290a9f12690SJung-uk Kim char *NumThreadsArg, 291a9f12690SJung-uk Kim char *NumLoopsArg, 292a9f12690SJung-uk Kim char *MethodNameArg); 293a9f12690SJung-uk Kim 294a9f12690SJung-uk Kim #ifdef ACPI_DBG_TRACK_ALLOCATIONS 295a9f12690SJung-uk Kim UINT32 296a9f12690SJung-uk Kim AcpiDbGetCacheInfo ( 297a9f12690SJung-uk Kim ACPI_MEMORY_LIST *Cache); 298a9f12690SJung-uk Kim #endif 299a9f12690SJung-uk Kim 300a9f12690SJung-uk Kim 301a9f12690SJung-uk Kim /* 302a9f12690SJung-uk Kim * dbfileio - Debugger file I/O commands 303a9f12690SJung-uk Kim */ 304a9f12690SJung-uk Kim ACPI_OBJECT_TYPE 305a9f12690SJung-uk Kim AcpiDbMatchArgument ( 306a9f12690SJung-uk Kim char *UserArgument, 307a9f12690SJung-uk Kim ARGUMENT_INFO *Arguments); 308a9f12690SJung-uk Kim 309a9f12690SJung-uk Kim void 310a9f12690SJung-uk Kim AcpiDbCloseDebugFile ( 311a9f12690SJung-uk Kim void); 312a9f12690SJung-uk Kim 313a9f12690SJung-uk Kim void 314a9f12690SJung-uk Kim AcpiDbOpenDebugFile ( 315a9f12690SJung-uk Kim char *Name); 316a9f12690SJung-uk Kim 317a9f12690SJung-uk Kim ACPI_STATUS 318a9f12690SJung-uk Kim AcpiDbLoadAcpiTable ( 319a9f12690SJung-uk Kim char *Filename); 320a9f12690SJung-uk Kim 321a9f12690SJung-uk Kim ACPI_STATUS 322a9f12690SJung-uk Kim AcpiDbGetTableFromFile ( 323a9f12690SJung-uk Kim char *Filename, 324a9f12690SJung-uk Kim ACPI_TABLE_HEADER **Table); 325a9f12690SJung-uk Kim 326a9f12690SJung-uk Kim ACPI_STATUS 327a9f12690SJung-uk Kim AcpiDbReadTableFromFile ( 328a9f12690SJung-uk Kim char *Filename, 329a9f12690SJung-uk Kim ACPI_TABLE_HEADER **Table); 330a9f12690SJung-uk Kim 331a9f12690SJung-uk Kim 332a9f12690SJung-uk Kim /* 333a9f12690SJung-uk Kim * dbhistry - debugger HISTORY command 334a9f12690SJung-uk Kim */ 335a9f12690SJung-uk Kim void 336a9f12690SJung-uk Kim AcpiDbAddToHistory ( 337a9f12690SJung-uk Kim char *CommandLine); 338a9f12690SJung-uk Kim 339a9f12690SJung-uk Kim void 340a9f12690SJung-uk Kim AcpiDbDisplayHistory ( 341a9f12690SJung-uk Kim void); 342a9f12690SJung-uk Kim 343a9f12690SJung-uk Kim char * 344a9f12690SJung-uk Kim AcpiDbGetFromHistory ( 345a9f12690SJung-uk Kim char *CommandNumArg); 346a9f12690SJung-uk Kim 347a9f12690SJung-uk Kim 348a9f12690SJung-uk Kim /* 349a9f12690SJung-uk Kim * dbinput - user front-end to the AML debugger 350a9f12690SJung-uk Kim */ 351a9f12690SJung-uk Kim ACPI_STATUS 352a9f12690SJung-uk Kim AcpiDbCommandDispatch ( 353a9f12690SJung-uk Kim char *InputBuffer, 354a9f12690SJung-uk Kim ACPI_WALK_STATE *WalkState, 355a9f12690SJung-uk Kim ACPI_PARSE_OBJECT *Op); 356a9f12690SJung-uk Kim 357a9f12690SJung-uk Kim void ACPI_SYSTEM_XFACE 358a9f12690SJung-uk Kim AcpiDbExecuteThread ( 359a9f12690SJung-uk Kim void *Context); 360a9f12690SJung-uk Kim 361a9f12690SJung-uk Kim ACPI_STATUS 362a9f12690SJung-uk Kim AcpiDbUserCommands ( 363a9f12690SJung-uk Kim char Prompt, 364a9f12690SJung-uk Kim ACPI_PARSE_OBJECT *Op); 365a9f12690SJung-uk Kim 36642e58c03SJung-uk Kim char * 36742e58c03SJung-uk Kim AcpiDbGetNextToken ( 36842e58c03SJung-uk Kim char *String, 36942e58c03SJung-uk Kim char **Next, 37042e58c03SJung-uk Kim ACPI_OBJECT_TYPE *ReturnType); 37142e58c03SJung-uk Kim 372a9f12690SJung-uk Kim 373a9f12690SJung-uk Kim /* 374a9f12690SJung-uk Kim * dbstats - Generation and display of ACPI table statistics 375a9f12690SJung-uk Kim */ 376a9f12690SJung-uk Kim void 377a9f12690SJung-uk Kim AcpiDbGenerateStatistics ( 378a9f12690SJung-uk Kim ACPI_PARSE_OBJECT *Root, 379a9f12690SJung-uk Kim BOOLEAN IsMethod); 380a9f12690SJung-uk Kim 381a9f12690SJung-uk Kim ACPI_STATUS 382a9f12690SJung-uk Kim AcpiDbDisplayStatistics ( 383a9f12690SJung-uk Kim char *TypeArg); 384a9f12690SJung-uk Kim 385a9f12690SJung-uk Kim 386a9f12690SJung-uk Kim /* 387a9f12690SJung-uk Kim * dbutils - AML debugger utilities 388a9f12690SJung-uk Kim */ 389a9f12690SJung-uk Kim void 390a9f12690SJung-uk Kim AcpiDbSetOutputDestination ( 391a9f12690SJung-uk Kim UINT32 Where); 392a9f12690SJung-uk Kim 393a9f12690SJung-uk Kim void 394a9f12690SJung-uk Kim AcpiDbDumpExternalObject ( 395a9f12690SJung-uk Kim ACPI_OBJECT *ObjDesc, 396a9f12690SJung-uk Kim UINT32 Level); 397a9f12690SJung-uk Kim 398a9f12690SJung-uk Kim void 399a9f12690SJung-uk Kim AcpiDbPrepNamestring ( 400a9f12690SJung-uk Kim char *Name); 401a9f12690SJung-uk Kim 402a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE * 403a9f12690SJung-uk Kim AcpiDbLocalNsLookup ( 404a9f12690SJung-uk Kim char *Name); 405a9f12690SJung-uk Kim 406a9f12690SJung-uk Kim void 407f38b0f21SJung-uk Kim AcpiDbUint32ToHexString ( 408a9f12690SJung-uk Kim UINT32 Value, 409a9f12690SJung-uk Kim char *Buffer); 410a9f12690SJung-uk Kim 411a9f12690SJung-uk Kim #endif /* __ACDEBUG_H__ */ 412