acinterp.h 15.8 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3 4 5 6 7
/******************************************************************************
 *
 * Name: acinterp.h - Interpreter subcomponent prototypes and defines
 *
 *****************************************************************************/

/*
8
 * Copyright (C) 2000 - 2011, Intel Corp.
L
Linus Torvalds 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions, and the following disclaimer,
 *    without modification.
 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
 *    substantially similar to the "NO WARRANTY" disclaimer below
 *    ("Disclaimer") and any redistribution must be conditioned upon
 *    including a substantially similar Disclaimer requirement for further
 *    binary redistribution.
 * 3. Neither the names of the above-listed copyright holders nor the names
 *    of any contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * Alternatively, this software may be distributed under the terms of the
 * GNU General Public License ("GPL") version 2 as published by the Free
 * Software Foundation.
 *
 * NO WARRANTY
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGES.
 */

#ifndef __ACINTERP_H__
#define __ACINTERP_H__

B
Bob Moore 已提交
47 48 49 50 51 52 53 54 55
#define ACPI_WALK_OPERANDS          (&(walk_state->operands [walk_state->num_operands -1]))

/* Macros for tables used for debug output */

#define ACPI_EXD_OFFSET(f)          (u8) ACPI_OFFSET (union acpi_operand_object,f)
#define ACPI_EXD_NSOFFSET(f)        (u8) ACPI_OFFSET (struct acpi_namespace_node,f)
#define ACPI_EXD_TABLE_SIZE(name)   (sizeof(name) / sizeof (struct acpi_exdump_info))

/*
B
Bob Moore 已提交
56 57 58 59 60 61
 * If possible, pack the following structures to byte alignment, since we
 * don't care about performance for debug output. Two cases where we cannot
 * pack the structures:
 *
 * 1) Hardware does not support misaligned memory transfers
 * 2) Compiler does not support pointers within packed structures
B
Bob Moore 已提交
62
 */
B
Bob Moore 已提交
63
#if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED))
B
Bob Moore 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
#pragma pack(1)
#endif

typedef const struct acpi_exdump_info {
	u8 opcode;
	u8 offset;
	char *name;

} acpi_exdump_info;

/* Values for the Opcode field above */

#define ACPI_EXD_INIT                   0
#define ACPI_EXD_TYPE                   1
#define ACPI_EXD_UINT8                  2
#define ACPI_EXD_UINT16                 3
#define ACPI_EXD_UINT32                 4
#define ACPI_EXD_UINT64                 5
#define ACPI_EXD_LITERAL                6
#define ACPI_EXD_POINTER                7
#define ACPI_EXD_ADDRESS                8
#define ACPI_EXD_STRING                 9
#define ACPI_EXD_BUFFER                 10
#define ACPI_EXD_PACKAGE                11
#define ACPI_EXD_FIELD                  12
#define ACPI_EXD_REFERENCE              13

/* restore default alignment */

#pragma pack()
L
Linus Torvalds 已提交
94 95 96 97 98

/*
 * exconvrt - object conversion
 */
acpi_status
L
Len Brown 已提交
99 100
acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,
			   union acpi_operand_object **result_desc, u32 flags);
L
Linus Torvalds 已提交
101 102

acpi_status
L
Len Brown 已提交
103 104
acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,
			  union acpi_operand_object **result_desc);
L
Linus Torvalds 已提交
105 106

acpi_status
L
Len Brown 已提交
107 108
acpi_ex_convert_to_string(union acpi_operand_object *obj_desc,
			  union acpi_operand_object **result_desc, u32 type);
L
Linus Torvalds 已提交
109 110 111 112 113 114 115 116 117

/* Types for ->String conversion */

#define ACPI_EXPLICIT_BYTE_COPY         0x00000000
#define ACPI_EXPLICIT_CONVERT_HEX       0x00000001
#define ACPI_IMPLICIT_CONVERT_HEX       0x00000002
#define ACPI_EXPLICIT_CONVERT_DECIMAL   0x00000003

acpi_status
L
Len Brown 已提交
118 119 120 121
acpi_ex_convert_to_target_type(acpi_object_type destination_type,
			       union acpi_operand_object *source_desc,
			       union acpi_operand_object **result_desc,
			       struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
122

123 124 125 126 127 128 129
/*
 * exdebug - AML debug object
 */
void
acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
			u32 level, u32 index);

L
Linus Torvalds 已提交
130 131 132 133
/*
 * exfield - ACPI AML (p-code) execution - field manipulation
 */
acpi_status
L
Len Brown 已提交
134 135
acpi_ex_common_buffer_setup(union acpi_operand_object *obj_desc,
			    u32 buffer_length, u32 * datum_count);
L
Linus Torvalds 已提交
136 137

acpi_status
L
Len Brown 已提交
138
acpi_ex_write_with_update_rule(union acpi_operand_object *obj_desc,
139 140
			       u64 mask,
			       u64 field_value, u32 field_datum_byte_offset);
L
Linus Torvalds 已提交
141 142

void
143
acpi_ex_get_buffer_datum(u64 *datum,
L
Len Brown 已提交
144 145 146
			 void *buffer,
			 u32 buffer_length,
			 u32 byte_granularity, u32 buffer_offset);
L
Linus Torvalds 已提交
147 148

void
149
acpi_ex_set_buffer_datum(u64 merged_datum,
L
Len Brown 已提交
150 151 152
			 void *buffer,
			 u32 buffer_length,
			 u32 byte_granularity, u32 buffer_offset);
L
Linus Torvalds 已提交
153 154

acpi_status
L
Len Brown 已提交
155 156 157
acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
			     union acpi_operand_object *obj_desc,
			     union acpi_operand_object **ret_buffer_desc);
L
Linus Torvalds 已提交
158 159

acpi_status
L
Len Brown 已提交
160 161 162
acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,
			    union acpi_operand_object *obj_desc,
			    union acpi_operand_object **result_desc);
R
Robert Moore 已提交
163

L
Linus Torvalds 已提交
164
/*
R
Robert Moore 已提交
165
 * exfldio - low level field I/O
L
Linus Torvalds 已提交
166 167
 */
acpi_status
L
Len Brown 已提交
168 169
acpi_ex_extract_from_field(union acpi_operand_object *obj_desc,
			   void *buffer, u32 buffer_length);
L
Linus Torvalds 已提交
170 171

acpi_status
L
Len Brown 已提交
172 173
acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
			  void *buffer, u32 buffer_length);
L
Linus Torvalds 已提交
174 175

acpi_status
L
Len Brown 已提交
176
acpi_ex_access_region(union acpi_operand_object *obj_desc,
177
		      u32 field_datum_byte_offset, u64 *value, u32 read_write);
L
Linus Torvalds 已提交
178

R
Robert Moore 已提交
179 180 181
/*
 * exmisc - misc support routines
 */
L
Linus Torvalds 已提交
182
acpi_status
L
Len Brown 已提交
183 184 185
acpi_ex_get_object_reference(union acpi_operand_object *obj_desc,
			     union acpi_operand_object **return_desc,
			     struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
186 187

acpi_status
L
Len Brown 已提交
188 189 190 191
acpi_ex_concat_template(union acpi_operand_object *obj_desc,
			union acpi_operand_object *obj_desc2,
			union acpi_operand_object **actual_return_desc,
			struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
192 193

acpi_status
L
Len Brown 已提交
194 195 196 197
acpi_ex_do_concatenate(union acpi_operand_object *obj_desc,
		       union acpi_operand_object *obj_desc2,
		       union acpi_operand_object **actual_return_desc,
		       struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
198 199

acpi_status
L
Len Brown 已提交
200
acpi_ex_do_logical_numeric_op(u16 opcode,
201
			      u64 integer0, u64 integer1, u8 *logical_result);
L
Linus Torvalds 已提交
202 203

acpi_status
L
Len Brown 已提交
204 205
acpi_ex_do_logical_op(u16 opcode,
		      union acpi_operand_object *operand0,
206
		      union acpi_operand_object *operand1, u8 *logical_result);
L
Linus Torvalds 已提交
207

208
u64 acpi_ex_do_math_op(u16 opcode, u64 operand0, u64 operand1);
L
Linus Torvalds 已提交
209

L
Len Brown 已提交
210
acpi_status acpi_ex_create_mutex(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
211

L
Len Brown 已提交
212
acpi_status acpi_ex_create_processor(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
213

L
Len Brown 已提交
214
acpi_status acpi_ex_create_power_resource(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
215 216

acpi_status
L
Len Brown 已提交
217 218 219
acpi_ex_create_region(u8 * aml_start,
		      u32 aml_length,
		      u8 region_space, struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
220

L
Len Brown 已提交
221
acpi_status acpi_ex_create_event(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
222

L
Len Brown 已提交
223
acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
224 225

acpi_status
L
Len Brown 已提交
226 227
acpi_ex_create_method(u8 * aml_start,
		      u32 aml_length, struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
228 229 230 231 232

/*
 * exconfig - dynamic table load/unload
 */
acpi_status
L
Len Brown 已提交
233 234 235
acpi_ex_load_op(union acpi_operand_object *obj_desc,
		union acpi_operand_object *target,
		struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
236 237

acpi_status
L
Len Brown 已提交
238 239
acpi_ex_load_table_op(struct acpi_walk_state *walk_state,
		      union acpi_operand_object **return_desc);
L
Linus Torvalds 已提交
240

L
Len Brown 已提交
241
acpi_status acpi_ex_unload_table(union acpi_operand_object *ddb_handle);
L
Linus Torvalds 已提交
242 243 244 245 246

/*
 * exmutex - mutex support
 */
acpi_status
L
Len Brown 已提交
247 248 249
acpi_ex_acquire_mutex(union acpi_operand_object *time_desc,
		      union acpi_operand_object *obj_desc,
		      struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
250

251 252 253 254 255
acpi_status
acpi_ex_acquire_mutex_object(u16 timeout,
			     union acpi_operand_object *obj_desc,
			     acpi_thread_id thread_id);

L
Linus Torvalds 已提交
256
acpi_status
L
Len Brown 已提交
257 258
acpi_ex_release_mutex(union acpi_operand_object *obj_desc,
		      struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
259

260 261
acpi_status acpi_ex_release_mutex_object(union acpi_operand_object *obj_desc);

L
Len Brown 已提交
262
void acpi_ex_release_all_mutexes(struct acpi_thread_state *thread);
L
Linus Torvalds 已提交
263

264
void acpi_ex_unlink_mutex(union acpi_operand_object *obj_desc);
L
Linus Torvalds 已提交
265 266

/*
R
Robert Moore 已提交
267
 * exprep - ACPI AML execution - prep utilities
L
Linus Torvalds 已提交
268 269
 */
acpi_status
L
Len Brown 已提交
270 271 272 273
acpi_ex_prep_common_field_object(union acpi_operand_object *obj_desc,
				 u8 field_flags,
				 u8 field_attribute,
				 u32 field_bit_position, u32 field_bit_length);
L
Linus Torvalds 已提交
274

L
Len Brown 已提交
275
acpi_status acpi_ex_prep_field_value(struct acpi_create_field_info *info);
R
Robert Moore 已提交
276

L
Linus Torvalds 已提交
277 278 279 280
/*
 * exsystem - Interface to OS services
 */
acpi_status
L
Len Brown 已提交
281 282
acpi_ex_system_do_notify_op(union acpi_operand_object *value,
			    union acpi_operand_object *obj_desc);
L
Linus Torvalds 已提交
283

284
acpi_status acpi_ex_system_do_sleep(u64 time);
L
Linus Torvalds 已提交
285

L
Len Brown 已提交
286
acpi_status acpi_ex_system_do_stall(u32 time);
L
Linus Torvalds 已提交
287

L
Len Brown 已提交
288
acpi_status acpi_ex_system_signal_event(union acpi_operand_object *obj_desc);
L
Linus Torvalds 已提交
289 290

acpi_status
L
Len Brown 已提交
291 292
acpi_ex_system_wait_event(union acpi_operand_object *time,
			  union acpi_operand_object *obj_desc);
L
Linus Torvalds 已提交
293

L
Len Brown 已提交
294
acpi_status acpi_ex_system_reset_event(union acpi_operand_object *obj_desc);
L
Linus Torvalds 已提交
295

B
Bob Moore 已提交
296 297 298 299
acpi_status
acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout);

acpi_status acpi_ex_system_wait_mutex(acpi_mutex mutex, u16 timeout);
L
Linus Torvalds 已提交
300 301

/*
R
Robert Moore 已提交
302
 * exoparg1 - ACPI AML execution, 1 operand
L
Linus Torvalds 已提交
303
 */
L
Len Brown 已提交
304
acpi_status acpi_ex_opcode_0A_0T_1R(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
305

L
Len Brown 已提交
306
acpi_status acpi_ex_opcode_1A_0T_0R(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
307

L
Len Brown 已提交
308
acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
309

L
Len Brown 已提交
310
acpi_status acpi_ex_opcode_1A_1T_1R(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
311

L
Len Brown 已提交
312
acpi_status acpi_ex_opcode_1A_1T_0R(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
313 314

/*
R
Robert Moore 已提交
315
 * exoparg2 - ACPI AML execution, 2 operands
L
Linus Torvalds 已提交
316
 */
L
Len Brown 已提交
317
acpi_status acpi_ex_opcode_2A_0T_0R(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
318

L
Len Brown 已提交
319
acpi_status acpi_ex_opcode_2A_0T_1R(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
320

L
Len Brown 已提交
321
acpi_status acpi_ex_opcode_2A_1T_1R(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
322

L
Len Brown 已提交
323
acpi_status acpi_ex_opcode_2A_2T_1R(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
324 325

/*
R
Robert Moore 已提交
326 327
 * exoparg3 - ACPI AML execution, 3 operands
 */
L
Len Brown 已提交
328
acpi_status acpi_ex_opcode_3A_0T_0R(struct acpi_walk_state *walk_state);
R
Robert Moore 已提交
329

L
Len Brown 已提交
330
acpi_status acpi_ex_opcode_3A_1T_1R(struct acpi_walk_state *walk_state);
R
Robert Moore 已提交
331 332 333

/*
 * exoparg6 - ACPI AML execution, 6 operands
L
Linus Torvalds 已提交
334
 */
L
Len Brown 已提交
335
acpi_status acpi_ex_opcode_6A_0T_1R(struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
336

R
Robert Moore 已提交
337 338 339
/*
 * exresolv - Object resolution and get value functions
 */
L
Linus Torvalds 已提交
340
acpi_status
L
Len Brown 已提交
341 342
acpi_ex_resolve_to_value(union acpi_operand_object **stack_ptr,
			 struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
343 344

acpi_status
L
Len Brown 已提交
345 346 347 348
acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state,
			 union acpi_operand_object *operand,
			 acpi_object_type * return_type,
			 union acpi_operand_object **return_desc);
R
Robert Moore 已提交
349 350 351 352 353

/*
 * exresnte - resolve namespace node
 */
acpi_status
L
Len Brown 已提交
354 355
acpi_ex_resolve_node_to_value(struct acpi_namespace_node **stack_ptr,
			      struct acpi_walk_state *walk_state);
R
Robert Moore 已提交
356 357 358 359

/*
 * exresop - resolve operand to value
 */
L
Linus Torvalds 已提交
360
acpi_status
L
Len Brown 已提交
361 362 363
acpi_ex_resolve_operands(u16 opcode,
			 union acpi_operand_object **stack_ptr,
			 struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
364 365 366 367

/*
 * exdump - Interpreter debug output routines
 */
L
Len Brown 已提交
368
void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth);
L
Linus Torvalds 已提交
369 370

void
L
Len Brown 已提交
371
acpi_ex_dump_operands(union acpi_operand_object **operands,
372
		      const char *opcode_name, u32 num_opcodes);
L
Linus Torvalds 已提交
373

R
Robert Moore 已提交
374
#ifdef	ACPI_FUTURE_USAGE
L
Linus Torvalds 已提交
375
void
L
Len Brown 已提交
376
acpi_ex_dump_object_descriptor(union acpi_operand_object *object, u32 flags);
L
Linus Torvalds 已提交
377

B
Bob Moore 已提交
378
void acpi_ex_dump_namespace_node(struct acpi_namespace_node *node, u32 flags);
L
Len Brown 已提交
379
#endif				/* ACPI_FUTURE_USAGE */
L
Linus Torvalds 已提交
380 381

/*
R
Robert Moore 已提交
382
 * exnames - AML namestring support
L
Linus Torvalds 已提交
383 384
 */
acpi_status
L
Len Brown 已提交
385 386 387
acpi_ex_get_name_string(acpi_object_type data_type,
			u8 * in_aml_address,
			char **out_name_string, u32 * out_name_length);
L
Linus Torvalds 已提交
388 389 390 391 392

/*
 * exstore - Object store support
 */
acpi_status
L
Len Brown 已提交
393 394 395
acpi_ex_store(union acpi_operand_object *val_desc,
	      union acpi_operand_object *dest_desc,
	      struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
396 397

acpi_status
L
Len Brown 已提交
398 399 400 401
acpi_ex_store_object_to_node(union acpi_operand_object *source_desc,
			     struct acpi_namespace_node *node,
			     struct acpi_walk_state *walk_state,
			     u8 implicit_conversion);
L
Linus Torvalds 已提交
402 403 404 405 406

#define ACPI_IMPLICIT_CONVERSION        TRUE
#define ACPI_NO_IMPLICIT_CONVERSION     FALSE

/*
R
Robert Moore 已提交
407
 * exstoren - resolve/store object
L
Linus Torvalds 已提交
408 409
 */
acpi_status
L
Len Brown 已提交
410 411 412
acpi_ex_resolve_object(union acpi_operand_object **source_desc_ptr,
		       acpi_object_type target_type,
		       struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
413 414

acpi_status
L
Len Brown 已提交
415 416 417 418
acpi_ex_store_object_to_object(union acpi_operand_object *source_desc,
			       union acpi_operand_object *dest_desc,
			       union acpi_operand_object **new_desc,
			       struct acpi_walk_state *walk_state);
L
Linus Torvalds 已提交
419 420

/*
R
Robert Moore 已提交
421
 * exstorob - store object - buffer/string
L
Linus Torvalds 已提交
422 423
 */
acpi_status
L
Len Brown 已提交
424 425
acpi_ex_store_buffer_to_buffer(union acpi_operand_object *source_desc,
			       union acpi_operand_object *target_desc);
L
Linus Torvalds 已提交
426 427

acpi_status
L
Len Brown 已提交
428 429
acpi_ex_store_string_to_string(union acpi_operand_object *source_desc,
			       union acpi_operand_object *target_desc);
R
Robert Moore 已提交
430 431 432 433

/*
 * excopy - object copy
 */
L
Linus Torvalds 已提交
434
acpi_status
L
Len Brown 已提交
435 436
acpi_ex_copy_integer_to_index_field(union acpi_operand_object *source_desc,
				    union acpi_operand_object *target_desc);
L
Linus Torvalds 已提交
437 438

acpi_status
L
Len Brown 已提交
439 440
acpi_ex_copy_integer_to_bank_field(union acpi_operand_object *source_desc,
				   union acpi_operand_object *target_desc);
L
Linus Torvalds 已提交
441 442

acpi_status
L
Len Brown 已提交
443 444
acpi_ex_copy_data_to_named_field(union acpi_operand_object *source_desc,
				 struct acpi_namespace_node *node);
L
Linus Torvalds 已提交
445 446

acpi_status
L
Len Brown 已提交
447 448
acpi_ex_copy_integer_to_buffer_field(union acpi_operand_object *source_desc,
				     union acpi_operand_object *target_desc);
R
Robert Moore 已提交
449

L
Linus Torvalds 已提交
450 451 452
/*
 * exutils - interpreter/scanner utilities
 */
453
void acpi_ex_enter_interpreter(void);
L
Linus Torvalds 已提交
454

L
Len Brown 已提交
455
void acpi_ex_exit_interpreter(void);
L
Linus Torvalds 已提交
456

457 458 459 460
void acpi_ex_reacquire_interpreter(void);

void acpi_ex_relinquish_interpreter(void);

L
Len Brown 已提交
461
void acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc);
L
Linus Torvalds 已提交
462

463
void acpi_ex_acquire_global_lock(u32 rule);
L
Linus Torvalds 已提交
464

465
void acpi_ex_release_global_lock(u32 rule);
L
Linus Torvalds 已提交
466

467
void acpi_ex_eisa_id_to_string(char *dest, u64 compressed_id);
L
Linus Torvalds 已提交
468

469
void acpi_ex_integer_to_string(char *dest, u64 value);
L
Linus Torvalds 已提交
470 471 472 473 474

/*
 * exregion - default op_region handlers
 */
acpi_status
L
Len Brown 已提交
475 476 477
acpi_ex_system_memory_space_handler(u32 function,
				    acpi_physical_address address,
				    u32 bit_width,
478
				    u64 *value,
L
Len Brown 已提交
479 480 481 482 483 484 485
				    void *handler_context,
				    void *region_context);

acpi_status
acpi_ex_system_io_space_handler(u32 function,
				acpi_physical_address address,
				u32 bit_width,
486
				u64 *value,
L
Len Brown 已提交
487 488 489 490 491 492
				void *handler_context, void *region_context);

acpi_status
acpi_ex_pci_config_space_handler(u32 function,
				 acpi_physical_address address,
				 u32 bit_width,
493
				 u64 *value,
L
Len Brown 已提交
494 495 496 497 498 499
				 void *handler_context, void *region_context);

acpi_status
acpi_ex_cmos_space_handler(u32 function,
			   acpi_physical_address address,
			   u32 bit_width,
500
			   u64 *value,
L
Len Brown 已提交
501 502 503 504 505 506
			   void *handler_context, void *region_context);

acpi_status
acpi_ex_pci_bar_space_handler(u32 function,
			      acpi_physical_address address,
			      u32 bit_width,
507
			      u64 *value,
L
Len Brown 已提交
508 509 510 511 512 513
			      void *handler_context, void *region_context);

acpi_status
acpi_ex_embedded_controller_space_handler(u32 function,
					  acpi_physical_address address,
					  u32 bit_width,
514
					  u64 *value,
L
Len Brown 已提交
515 516 517 518 519 520 521
					  void *handler_context,
					  void *region_context);

acpi_status
acpi_ex_sm_bus_space_handler(u32 function,
			     acpi_physical_address address,
			     u32 bit_width,
522
			     u64 *value,
L
Len Brown 已提交
523 524 525 526 527 528
			     void *handler_context, void *region_context);

acpi_status
acpi_ex_data_table_space_handler(u32 function,
				 acpi_physical_address address,
				 u32 bit_width,
529
				 u64 *value,
L
Len Brown 已提交
530 531 532
				 void *handler_context, void *region_context);

#endif				/* __INTERP_H__ */