Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Added Kitten
[palacios.git] / kitten / include / acpi / acdebug.h
1 /******************************************************************************
2  *
3  * Name: acdebug.h - ACPI/AML debugger
4  *
5  *****************************************************************************/
6
7 /*
8  * Copyright (C) 2000 - 2006, R. Byron Moore
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions, and the following disclaimer,
16  *    without modification.
17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18  *    substantially similar to the "NO WARRANTY" disclaimer below
19  *    ("Disclaimer") and any redistribution must be conditioned upon
20  *    including a substantially similar Disclaimer requirement for further
21  *    binary redistribution.
22  * 3. Neither the names of the above-listed copyright holders nor the names
23  *    of any contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * Alternatively, this software may be distributed under the terms of the
27  * GNU General Public License ("GPL") version 2 as published by the Free
28  * Software Foundation.
29  *
30  * NO WARRANTY
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41  * POSSIBILITY OF SUCH DAMAGES.
42  */
43
44 #ifndef __ACDEBUG_H__
45 #define __ACDEBUG_H__
46
47 #define ACPI_DEBUG_BUFFER_SIZE  4196
48
49 struct command_info {
50         char *name;             /* Command Name */
51         u8 min_args;            /* Minimum arguments required */
52 };
53
54 struct argument_info {
55         char *name;             /* Argument Name */
56 };
57
58 #define PARAM_LIST(pl)                  pl
59 #define DBTEST_OUTPUT_LEVEL(lvl)        if (acpi_gbl_db_opt_verbose)
60 #define VERBOSE_PRINT(fp)               DBTEST_OUTPUT_LEVEL(lvl) {\
61                           acpi_os_printf PARAM_LIST(fp);}
62
63 #define EX_NO_SINGLE_STEP               1
64 #define EX_SINGLE_STEP                  2
65
66 /*
67  * dbxface - external debugger interfaces
68  */
69 acpi_status acpi_db_initialize(void);
70
71 void acpi_db_terminate(void);
72
73 acpi_status
74 acpi_db_single_step(struct acpi_walk_state *walk_state,
75                     union acpi_parse_object *op, u32 op_type);
76
77 /*
78  * dbcmds - debug commands and output routines
79  */
80 acpi_status acpi_db_disassemble_method(char *name);
81
82 void acpi_db_display_table_info(char *table_arg);
83
84 void acpi_db_unload_acpi_table(char *table_arg, char *instance_arg);
85
86 void
87 acpi_db_set_method_breakpoint(char *location,
88                               struct acpi_walk_state *walk_state,
89                               union acpi_parse_object *op);
90
91 void acpi_db_set_method_call_breakpoint(union acpi_parse_object *op);
92
93 void acpi_db_get_bus_info(void);
94
95 void acpi_db_disassemble_aml(char *statements, union acpi_parse_object *op);
96
97 void acpi_db_dump_namespace(char *start_arg, char *depth_arg);
98
99 void acpi_db_dump_namespace_by_owner(char *owner_arg, char *depth_arg);
100
101 void acpi_db_send_notify(char *name, u32 value);
102
103 void acpi_db_set_method_data(char *type_arg, char *index_arg, char *value_arg);
104
105 acpi_status
106 acpi_db_display_objects(char *obj_type_arg, char *display_count_arg);
107
108 acpi_status acpi_db_find_name_in_namespace(char *name_arg);
109
110 void acpi_db_set_scope(char *name);
111
112 acpi_status acpi_db_sleep(char *object_arg);
113
114 void acpi_db_find_references(char *object_arg);
115
116 void acpi_db_display_locks(void);
117
118 void acpi_db_display_resources(char *object_arg);
119
120 void acpi_db_display_gpes(void);
121
122 void acpi_db_check_integrity(void);
123
124 void acpi_db_generate_gpe(char *gpe_arg, char *block_arg);
125
126 /*
127  * dbdisply - debug display commands
128  */
129 void acpi_db_display_method_info(union acpi_parse_object *op);
130
131 void acpi_db_decode_and_display_object(char *target, char *output_type);
132
133 void
134 acpi_db_display_result_object(union acpi_operand_object *obj_desc,
135                               struct acpi_walk_state *walk_state);
136
137 acpi_status acpi_db_display_all_methods(char *display_count_arg);
138
139 void acpi_db_display_arguments(void);
140
141 void acpi_db_display_locals(void);
142
143 void acpi_db_display_results(void);
144
145 void acpi_db_display_calling_tree(void);
146
147 void acpi_db_display_object_type(char *object_arg);
148
149 void
150 acpi_db_display_argument_object(union acpi_operand_object *obj_desc,
151                                 struct acpi_walk_state *walk_state);
152
153 /*
154  * dbexec - debugger control method execution
155  */
156 void acpi_db_execute(char *name, char **args, u32 flags);
157
158 void
159 acpi_db_create_execution_threads(char *num_threads_arg,
160                                  char *num_loops_arg, char *method_name_arg);
161
162 /*
163  * dbfileio - Debugger file I/O commands
164  */
165 acpi_object_type
166 acpi_db_match_argument(char *user_argument, struct argument_info *arguments);
167
168 void acpi_db_close_debug_file(void);
169
170 void acpi_db_open_debug_file(char *name);
171
172 acpi_status acpi_db_load_acpi_table(char *filename);
173
174 acpi_status
175 acpi_db_get_table_from_file(char *filename, struct acpi_table_header **table);
176
177 acpi_status
178 acpi_db_read_table_from_file(char *filename, struct acpi_table_header **table);
179
180 /*
181  * dbhistry - debugger HISTORY command
182  */
183 void acpi_db_add_to_history(char *command_line);
184
185 void acpi_db_display_history(void);
186
187 char *acpi_db_get_from_history(char *command_num_arg);
188
189 /*
190  * dbinput - user front-end to the AML debugger
191  */
192 acpi_status
193 acpi_db_command_dispatch(char *input_buffer,
194                          struct acpi_walk_state *walk_state,
195                          union acpi_parse_object *op);
196
197 void ACPI_SYSTEM_XFACE acpi_db_execute_thread(void *context);
198
199 /*
200  * dbstats - Generation and display of ACPI table statistics
201  */
202 void acpi_db_generate_statistics(union acpi_parse_object *root, u8 is_method);
203
204 acpi_status acpi_db_display_statistics(char *type_arg);
205
206 /*
207  * dbutils - AML debugger utilities
208  */
209 void acpi_db_set_output_destination(u32 where);
210
211 void acpi_db_dump_external_object(union acpi_object *obj_desc, u32 level);
212
213 void acpi_db_prep_namestring(char *name);
214
215 struct acpi_namespace_node *acpi_db_local_ns_lookup(char *name);
216
217 #endif                          /* __ACDEBUG_H__ */