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