OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [acpi/] [acdispat.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/******************************************************************************
2
 *
3
 * Name: acdispat.h - dispatcher (parser to interpreter interface)
4
 *
5
 *****************************************************************************/
6
 
7
/*
8
 * Copyright (C) 2000 - 2007, 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 _ACDISPAT_H_
45
#define _ACDISPAT_H_
46
 
47
#define NAMEOF_LOCAL_NTE    "__L0"
48
#define NAMEOF_ARG_NTE      "__A0"
49
 
50
/*
51
 * dsopcode - support for late evaluation
52
 */
53
acpi_status
54
acpi_ds_get_buffer_field_arguments(union acpi_operand_object *obj_desc);
55
 
56
acpi_status acpi_ds_get_region_arguments(union acpi_operand_object *rgn_desc);
57
 
58
acpi_status acpi_ds_get_buffer_arguments(union acpi_operand_object *obj_desc);
59
 
60
acpi_status acpi_ds_get_package_arguments(union acpi_operand_object *obj_desc);
61
 
62
acpi_status
63
acpi_ds_eval_buffer_field_operands(struct acpi_walk_state *walk_state,
64
                                   union acpi_parse_object *op);
65
 
66
acpi_status
67
acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
68
                             union acpi_parse_object *op);
69
 
70
acpi_status
71
acpi_ds_eval_data_object_operands(struct acpi_walk_state *walk_state,
72
                                  union acpi_parse_object *op,
73
                                  union acpi_operand_object *obj_desc);
74
 
75
acpi_status acpi_ds_initialize_region(acpi_handle obj_handle);
76
 
77
/*
78
 * dsctrl - Parser/Interpreter interface, control stack routines
79
 */
80
acpi_status
81
acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,
82
                              union acpi_parse_object *op);
83
 
84
acpi_status
85
acpi_ds_exec_end_control_op(struct acpi_walk_state *walk_state,
86
                            union acpi_parse_object *op);
87
 
88
/*
89
 * dsexec - Parser/Interpreter interface, method execution callbacks
90
 */
91
acpi_status
92
acpi_ds_get_predicate_value(struct acpi_walk_state *walk_state,
93
                            union acpi_operand_object *result_obj);
94
 
95
acpi_status
96
acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state,
97
                      union acpi_parse_object **out_op);
98
 
99
acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *state);
100
 
101
/*
102
 * dsfield - Parser/Interpreter interface for AML fields
103
 */
104
acpi_status
105
acpi_ds_create_field(union acpi_parse_object *op,
106
                     struct acpi_namespace_node *region_node,
107
                     struct acpi_walk_state *walk_state);
108
 
109
acpi_status
110
acpi_ds_create_bank_field(union acpi_parse_object *op,
111
                          struct acpi_namespace_node *region_node,
112
                          struct acpi_walk_state *walk_state);
113
 
114
acpi_status
115
acpi_ds_create_index_field(union acpi_parse_object *op,
116
                           struct acpi_namespace_node *region_node,
117
                           struct acpi_walk_state *walk_state);
118
 
119
acpi_status
120
acpi_ds_create_buffer_field(union acpi_parse_object *op,
121
                            struct acpi_walk_state *walk_state);
122
 
123
acpi_status
124
acpi_ds_init_field_objects(union acpi_parse_object *op,
125
                           struct acpi_walk_state *walk_state);
126
 
127
/*
128
 * dsload - Parser/Interpreter interface, namespace load callbacks
129
 */
130
acpi_status
131
acpi_ds_load1_begin_op(struct acpi_walk_state *walk_state,
132
                       union acpi_parse_object **out_op);
133
 
134
acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state);
135
 
136
acpi_status
137
acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state,
138
                       union acpi_parse_object **out_op);
139
 
140
acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state);
141
 
142
acpi_status
143
acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number);
144
 
145
/*
146
 * dsmthdat - method data (locals/args)
147
 */
148
acpi_status
149
acpi_ds_store_object_to_local(u16 opcode,
150
                              u32 index,
151
                              union acpi_operand_object *src_desc,
152
                              struct acpi_walk_state *walk_state);
153
 
154
acpi_status
155
acpi_ds_method_data_get_entry(u16 opcode,
156
                              u32 index,
157
                              struct acpi_walk_state *walk_state,
158
                              union acpi_operand_object ***node);
159
 
160
void acpi_ds_method_data_delete_all(struct acpi_walk_state *walk_state);
161
 
162
u8 acpi_ds_is_method_value(union acpi_operand_object *obj_desc);
163
 
164
acpi_status
165
acpi_ds_method_data_get_value(u16 opcode,
166
                              u32 index,
167
                              struct acpi_walk_state *walk_state,
168
                              union acpi_operand_object **dest_desc);
169
 
170
acpi_status
171
acpi_ds_method_data_init_args(union acpi_operand_object **params,
172
                              u32 max_param_count,
173
                              struct acpi_walk_state *walk_state);
174
 
175
acpi_status
176
acpi_ds_method_data_get_node(u16 opcode,
177
                             u32 index,
178
                             struct acpi_walk_state *walk_state,
179
                             struct acpi_namespace_node **node);
180
 
181
void acpi_ds_method_data_init(struct acpi_walk_state *walk_state);
182
 
183
/*
184
 * dsmethod - Parser/Interpreter interface - control method parsing
185
 */
186
acpi_status acpi_ds_parse_method(struct acpi_namespace_node *node);
187
 
188
acpi_status
189
acpi_ds_call_control_method(struct acpi_thread_state *thread,
190
                            struct acpi_walk_state *walk_state,
191
                            union acpi_parse_object *op);
192
 
193
acpi_status
194
acpi_ds_restart_control_method(struct acpi_walk_state *walk_state,
195
                               union acpi_operand_object *return_desc);
196
 
197
void
198
acpi_ds_terminate_control_method(union acpi_operand_object *method_desc,
199
                                 struct acpi_walk_state *walk_state);
200
 
201
acpi_status
202
acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
203
                               union acpi_operand_object *obj_desc,
204
                               struct acpi_walk_state *walk_state);
205
 
206
acpi_status
207
acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state);
208
 
209
/*
210
 * dsinit
211
 */
212
acpi_status
213
acpi_ds_initialize_objects(acpi_native_uint table_index,
214
                           struct acpi_namespace_node *start_node);
215
 
216
/*
217
 * dsobject - Parser/Interpreter interface - object initialization and conversion
218
 */
219
acpi_status
220
acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state,
221
                                  union acpi_parse_object *op,
222
                                  u32 buffer_length,
223
                                  union acpi_operand_object **obj_desc_ptr);
224
 
225
acpi_status
226
acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state,
227
                                   union acpi_parse_object *op,
228
                                   u32 package_length,
229
                                   union acpi_operand_object **obj_desc);
230
 
231
acpi_status
232
acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
233
                            union acpi_parse_object *op,
234
                            u16 opcode, union acpi_operand_object **obj_desc);
235
 
236
acpi_status
237
acpi_ds_create_node(struct acpi_walk_state *walk_state,
238
                    struct acpi_namespace_node *node,
239
                    union acpi_parse_object *op);
240
 
241
/*
242
 * dsutils - Parser/Interpreter interface utility routines
243
 */
244
void acpi_ds_clear_implicit_return(struct acpi_walk_state *walk_state);
245
 
246
u8
247
acpi_ds_do_implicit_return(union acpi_operand_object *return_desc,
248
                           struct acpi_walk_state *walk_state,
249
                           u8 add_reference);
250
 
251
u8
252
acpi_ds_is_result_used(union acpi_parse_object *op,
253
                       struct acpi_walk_state *walk_state);
254
 
255
void
256
acpi_ds_delete_result_if_not_used(union acpi_parse_object *op,
257
                                  union acpi_operand_object *result_obj,
258
                                  struct acpi_walk_state *walk_state);
259
 
260
acpi_status
261
acpi_ds_create_operand(struct acpi_walk_state *walk_state,
262
                       union acpi_parse_object *arg, u32 args_remaining);
263
 
264
acpi_status
265
acpi_ds_create_operands(struct acpi_walk_state *walk_state,
266
                        union acpi_parse_object *first_arg);
267
 
268
acpi_status acpi_ds_resolve_operands(struct acpi_walk_state *walk_state);
269
 
270
void acpi_ds_clear_operands(struct acpi_walk_state *walk_state);
271
 
272
/*
273
 * dswscope - Scope Stack manipulation
274
 */
275
acpi_status
276
acpi_ds_scope_stack_push(struct acpi_namespace_node *node,
277
                         acpi_object_type type,
278
                         struct acpi_walk_state *walk_state);
279
 
280
acpi_status acpi_ds_scope_stack_pop(struct acpi_walk_state *walk_state);
281
 
282
void acpi_ds_scope_stack_clear(struct acpi_walk_state *walk_state);
283
 
284
/*
285
 * dswstate - parser WALK_STATE management routines
286
 */
287
acpi_status
288
acpi_ds_obj_stack_push(void *object, struct acpi_walk_state *walk_state);
289
 
290
acpi_status
291
acpi_ds_obj_stack_pop(u32 pop_count, struct acpi_walk_state *walk_state);
292
 
293
struct acpi_walk_state *acpi_ds_create_walk_state(acpi_owner_id owner_id, union acpi_parse_object
294
                                                  *origin, union acpi_operand_object
295
                                                  *mth_desc, struct acpi_thread_state
296
                                                  *thread);
297
 
298
acpi_status
299
acpi_ds_init_aml_walk(struct acpi_walk_state *walk_state,
300
                      union acpi_parse_object *op,
301
                      struct acpi_namespace_node *method_node,
302
                      u8 * aml_start,
303
                      u32 aml_length,
304
                      struct acpi_evaluate_info *info, u8 pass_number);
305
 
306
acpi_status
307
acpi_ds_obj_stack_pop_and_delete(u32 pop_count,
308
                                 struct acpi_walk_state *walk_state);
309
 
310
void acpi_ds_delete_walk_state(struct acpi_walk_state *walk_state);
311
 
312
struct acpi_walk_state *acpi_ds_pop_walk_state(struct acpi_thread_state
313
                                               *thread);
314
 
315
void
316
acpi_ds_push_walk_state(struct acpi_walk_state *walk_state,
317
                        struct acpi_thread_state *thread);
318
 
319
acpi_status acpi_ds_result_stack_pop(struct acpi_walk_state *walk_state);
320
 
321
acpi_status acpi_ds_result_stack_push(struct acpi_walk_state *walk_state);
322
 
323
acpi_status acpi_ds_result_stack_clear(struct acpi_walk_state *walk_state);
324
 
325
struct acpi_walk_state *acpi_ds_get_current_walk_state(struct acpi_thread_state
326
                                                       *thread);
327
 
328
#ifdef ACPI_FUTURE_USAGE
329
acpi_status
330
acpi_ds_result_remove(union acpi_operand_object **object,
331
                      u32 index, struct acpi_walk_state *walk_state);
332
#endif
333
 
334
acpi_status
335
acpi_ds_result_pop(union acpi_operand_object **object,
336
                   struct acpi_walk_state *walk_state);
337
 
338
acpi_status
339
acpi_ds_result_push(union acpi_operand_object *object,
340
                    struct acpi_walk_state *walk_state);
341
 
342
acpi_status
343
acpi_ds_result_pop_from_bottom(union acpi_operand_object **object,
344
                               struct acpi_walk_state *walk_state);
345
 
346
#endif                          /* _ACDISPAT_H_ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.