11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************** 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Name: acinterp.h - Interpreter subcomponent prototypes and defines 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *****************************************************************************/ 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 877848130e53b06c22fe37a7b6acbb82bb3e9bfbaBob Moore * Copyright (C) 2000 - 2012, Intel Corp. 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * All rights reserved. 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Redistribution and use in source and binary forms, with or without 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * modification, are permitted provided that the following conditions 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * are met: 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 1. Redistributions of source code must retain the above copyright 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * notice, this list of conditions, and the following disclaimer, 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * without modification. 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2. Redistributions in binary form must reproduce at minimum a disclaimer 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * substantially similar to the "NO WARRANTY" disclaimer below 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * ("Disclaimer") and any redistribution must be conditioned upon 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * including a substantially similar Disclaimer requirement for further 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * binary redistribution. 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3. Neither the names of the above-listed copyright holders nor the names 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * of any contributors may be used to endorse or promote products derived 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * from this software without specific prior written permission. 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Alternatively, this software may be distributed under the terms of the 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * GNU General Public License ("GPL") version 2 as published by the Free 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Software Foundation. 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * NO WARRANTY 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * POSSIBILITY OF SUCH DAMAGES. 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef __ACINTERP_H__ 451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define __ACINTERP_H__ 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4796db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_WALK_OPERANDS (&(walk_state->operands [walk_state->num_operands -1])) 4896db255c8f014ae3497507104e8df809785a619fBob Moore 4996db255c8f014ae3497507104e8df809785a619fBob Moore/* Macros for tables used for debug output */ 5096db255c8f014ae3497507104e8df809785a619fBob Moore 5196db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_OFFSET(f) (u8) ACPI_OFFSET (union acpi_operand_object,f) 5296db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_NSOFFSET(f) (u8) ACPI_OFFSET (struct acpi_namespace_node,f) 5396db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_TABLE_SIZE(name) (sizeof(name) / sizeof (struct acpi_exdump_info)) 5496db255c8f014ae3497507104e8df809785a619fBob Moore 5596db255c8f014ae3497507104e8df809785a619fBob Moore/* 56f6dd9221dddb3550e60d32aee688588ec208312cBob Moore * If possible, pack the following structures to byte alignment, since we 57f6dd9221dddb3550e60d32aee688588ec208312cBob Moore * don't care about performance for debug output. Two cases where we cannot 58f6dd9221dddb3550e60d32aee688588ec208312cBob Moore * pack the structures: 59f6dd9221dddb3550e60d32aee688588ec208312cBob Moore * 60f6dd9221dddb3550e60d32aee688588ec208312cBob Moore * 1) Hardware does not support misaligned memory transfers 61f6dd9221dddb3550e60d32aee688588ec208312cBob Moore * 2) Compiler does not support pointers within packed structures 6296db255c8f014ae3497507104e8df809785a619fBob Moore */ 63f6dd9221dddb3550e60d32aee688588ec208312cBob Moore#if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED)) 6496db255c8f014ae3497507104e8df809785a619fBob Moore#pragma pack(1) 6596db255c8f014ae3497507104e8df809785a619fBob Moore#endif 6696db255c8f014ae3497507104e8df809785a619fBob Moore 6796db255c8f014ae3497507104e8df809785a619fBob Mooretypedef const struct acpi_exdump_info { 6896db255c8f014ae3497507104e8df809785a619fBob Moore u8 opcode; 6996db255c8f014ae3497507104e8df809785a619fBob Moore u8 offset; 7096db255c8f014ae3497507104e8df809785a619fBob Moore char *name; 7196db255c8f014ae3497507104e8df809785a619fBob Moore 7296db255c8f014ae3497507104e8df809785a619fBob Moore} acpi_exdump_info; 7396db255c8f014ae3497507104e8df809785a619fBob Moore 7496db255c8f014ae3497507104e8df809785a619fBob Moore/* Values for the Opcode field above */ 7596db255c8f014ae3497507104e8df809785a619fBob Moore 7696db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_INIT 0 7796db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_TYPE 1 7896db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_UINT8 2 7996db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_UINT16 3 8096db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_UINT32 4 8196db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_UINT64 5 8296db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_LITERAL 6 8396db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_POINTER 7 8496db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_ADDRESS 8 8596db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_STRING 9 8696db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_BUFFER 10 8796db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_PACKAGE 11 8896db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_FIELD 12 8996db255c8f014ae3497507104e8df809785a619fBob Moore#define ACPI_EXD_REFERENCE 13 9096db255c8f014ae3497507104e8df809785a619fBob Moore 9196db255c8f014ae3497507104e8df809785a619fBob Moore/* restore default alignment */ 9296db255c8f014ae3497507104e8df809785a619fBob Moore 9396db255c8f014ae3497507104e8df809785a619fBob Moore#pragma pack() 941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * exconvrt - object conversion 971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 994be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_convert_to_integer(union acpi_operand_object *obj_desc, 1004be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **result_desc, u32 flags); 1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1034be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc, 1044be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **result_desc); 1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1074be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_convert_to_string(union acpi_operand_object *obj_desc, 1084be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **result_desc, u32 type); 1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Types for ->String conversion */ 1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACPI_EXPLICIT_BYTE_COPY 0x00000000 1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACPI_EXPLICIT_CONVERT_HEX 0x00000001 1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACPI_IMPLICIT_CONVERT_HEX 0x00000002 1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACPI_EXPLICIT_CONVERT_DECIMAL 0x00000003 1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1184be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_convert_to_target_type(acpi_object_type destination_type, 1194be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *source_desc, 1204be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **result_desc, 1214be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 1244cdf1a562bfb5852954aadbe8515557b8acc8168Lin Ming * exdebug - AML debug object 1254cdf1a562bfb5852954aadbe8515557b8acc8168Lin Ming */ 1264cdf1a562bfb5852954aadbe8515557b8acc8168Lin Mingvoid 1274cdf1a562bfb5852954aadbe8515557b8acc8168Lin Mingacpi_ex_do_debug_object(union acpi_operand_object *source_desc, 1284cdf1a562bfb5852954aadbe8515557b8acc8168Lin Ming u32 level, u32 index); 1294cdf1a562bfb5852954aadbe8515557b8acc8168Lin Ming 1304cdf1a562bfb5852954aadbe8515557b8acc8168Lin Ming/* 1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * exfield - ACPI AML (p-code) execution - field manipulation 1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1344be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_common_buffer_setup(union acpi_operand_object *obj_desc, 1354be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 buffer_length, u32 * datum_count); 1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1384be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_write_with_update_rule(union acpi_operand_object *obj_desc, 1395df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 mask, 1405df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 field_value, u32 field_datum_byte_offset); 1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 1435df7e6cb42da36c7d878239bebc81907b15f3943Bob Mooreacpi_ex_get_buffer_datum(u64 *datum, 1444be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *buffer, 1454be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 buffer_length, 1464be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 byte_granularity, u32 buffer_offset); 1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 1495df7e6cb42da36c7d878239bebc81907b15f3943Bob Mooreacpi_ex_set_buffer_datum(u64 merged_datum, 1504be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *buffer, 1514be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 buffer_length, 1524be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 byte_granularity, u32 buffer_offset); 1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1554be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, 1564be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *obj_desc, 1574be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **ret_buffer_desc); 1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1604be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_write_data_to_field(union acpi_operand_object *source_desc, 1614be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *obj_desc, 1624be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **result_desc); 16344f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore 1641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 16544f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exfldio - low level field I/O 1661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1684be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_extract_from_field(union acpi_operand_object *obj_desc, 1694be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *buffer, u32 buffer_length); 1701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1724be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_insert_into_field(union acpi_operand_object *obj_desc, 1734be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *buffer, u32 buffer_length); 1741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1764be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_access_region(union acpi_operand_object *obj_desc, 1775df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u32 field_datum_byte_offset, u64 *value, u32 read_write); 1781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17944f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/* 18044f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exmisc - misc support routines 18144f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore */ 1821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1834be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_get_object_reference(union acpi_operand_object *obj_desc, 1844be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **return_desc, 1854be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 1861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1884be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_concat_template(union acpi_operand_object *obj_desc, 1894be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *obj_desc2, 1904be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **actual_return_desc, 1914be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 1921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 1944be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_do_concatenate(union acpi_operand_object *obj_desc, 1954be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *obj_desc2, 1964be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **actual_return_desc, 1974be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 1981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 2004be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_do_logical_numeric_op(u16 opcode, 2015df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 integer0, u64 integer1, u8 *logical_result); 2021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 2044be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_do_logical_op(u16 opcode, 2054be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *operand0, 2065df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore union acpi_operand_object *operand1, u8 *logical_result); 2071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2085df7e6cb42da36c7d878239bebc81907b15f3943Bob Mooreu64 acpi_ex_do_math_op(u16 opcode, u64 operand0, u64 operand1); 2091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2104be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_create_mutex(struct acpi_walk_state *walk_state); 2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2124be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_create_processor(struct acpi_walk_state *walk_state); 2131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2144be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_create_power_resource(struct acpi_walk_state *walk_state); 2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 2174be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_create_region(u8 * aml_start, 2184be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 aml_length, 2194be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u8 region_space, struct acpi_walk_state *walk_state); 2201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2214be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_create_event(struct acpi_walk_state *walk_state); 2221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2234be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state); 2241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 2264be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_create_method(u8 * aml_start, 2274be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 aml_length, struct acpi_walk_state *walk_state); 2281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 2301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * exconfig - dynamic table load/unload 2311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 2321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 2334be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_load_op(union acpi_operand_object *obj_desc, 2344be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *target, 2354be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 2361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 2384be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_load_table_op(struct acpi_walk_state *walk_state, 2394be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **return_desc); 2401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2414be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_unload_table(union acpi_operand_object *ddb_handle); 2421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 2441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * exmutex - mutex support 2451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 2461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 2474be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_acquire_mutex(union acpi_operand_object *time_desc, 2484be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *obj_desc, 2494be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 2501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 252ba886cd4ac957608777fbc8d137f6b9f0450e775Bob Mooreacpi_ex_acquire_mutex_object(u16 timeout, 253ba886cd4ac957608777fbc8d137f6b9f0450e775Bob Moore union acpi_operand_object *obj_desc, 254ba886cd4ac957608777fbc8d137f6b9f0450e775Bob Moore acpi_thread_id thread_id); 255ba886cd4ac957608777fbc8d137f6b9f0450e775Bob Moore 256ba886cd4ac957608777fbc8d137f6b9f0450e775Bob Mooreacpi_status 2574be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_release_mutex(union acpi_operand_object *obj_desc, 2584be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 2591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 260ba886cd4ac957608777fbc8d137f6b9f0450e775Bob Mooreacpi_status acpi_ex_release_mutex_object(union acpi_operand_object *obj_desc); 261ba886cd4ac957608777fbc8d137f6b9f0450e775Bob Moore 2624be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownvoid acpi_ex_release_all_mutexes(struct acpi_thread_state *thread); 2631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 264262a7a28de060f3a63cae20035876d6f22fd7670Len Brownvoid acpi_ex_unlink_mutex(union acpi_operand_object *obj_desc); 2651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 26744f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exprep - ACPI AML execution - prep utilities 2681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 2691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 2704be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_prep_common_field_object(union acpi_operand_object *obj_desc, 2714be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u8 field_flags, 2724be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u8 field_attribute, 2734be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 field_bit_position, u32 field_bit_length); 2741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2754be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_prep_field_value(struct acpi_create_field_info *info); 27644f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore 2771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 2781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * exsystem - Interface to OS services 2791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 2801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 2814be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_system_do_notify_op(union acpi_operand_object *value, 2824be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *obj_desc); 2831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 284ada241dcec7eb21ff1690a1ba6213299b743bb5bBob Mooreacpi_status acpi_ex_system_do_sleep(u64 time); 2851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2864be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_system_do_stall(u32 time); 2871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2884be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_system_signal_event(union acpi_operand_object *obj_desc); 2891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 2914be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_system_wait_event(union acpi_operand_object *time, 2924be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *obj_desc); 2931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2944be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_system_reset_event(union acpi_operand_object *obj_desc); 2951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 296967440e3be1af06ad4dc7bb18d2e3c16130fe067Bob Mooreacpi_status 297967440e3be1af06ad4dc7bb18d2e3c16130fe067Bob Mooreacpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout); 298967440e3be1af06ad4dc7bb18d2e3c16130fe067Bob Moore 299967440e3be1af06ad4dc7bb18d2e3c16130fe067Bob Mooreacpi_status acpi_ex_system_wait_mutex(acpi_mutex mutex, u16 timeout); 3001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 30244f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exoparg1 - ACPI AML execution, 1 operand 3031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 3044be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_0A_0T_1R(struct acpi_walk_state *walk_state); 3051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3064be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_1A_0T_0R(struct acpi_walk_state *walk_state); 3071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3084be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state); 3091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3104be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_1A_1T_1R(struct acpi_walk_state *walk_state); 3111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3124be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_1A_1T_0R(struct acpi_walk_state *walk_state); 3131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 31544f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exoparg2 - ACPI AML execution, 2 operands 3161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 3174be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_2A_0T_0R(struct acpi_walk_state *walk_state); 3181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3194be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_2A_0T_1R(struct acpi_walk_state *walk_state); 3201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3214be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_2A_1T_1R(struct acpi_walk_state *walk_state); 3221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3234be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_2A_2T_1R(struct acpi_walk_state *walk_state); 3241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 32644f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exoparg3 - ACPI AML execution, 3 operands 32744f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore */ 3284be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_3A_0T_0R(struct acpi_walk_state *walk_state); 32944f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore 3304be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_3A_1T_1R(struct acpi_walk_state *walk_state); 33144f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore 33244f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/* 33344f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exoparg6 - ACPI AML execution, 6 operands 3341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 3354be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status acpi_ex_opcode_6A_0T_1R(struct acpi_walk_state *walk_state); 3361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 33744f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/* 33844f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exresolv - Object resolution and get value functions 33944f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore */ 3401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 3414be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_resolve_to_value(union acpi_operand_object **stack_ptr, 3424be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 3431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 3454be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, 3464be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *operand, 3474be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_object_type * return_type, 3484be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **return_desc); 34944f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore 35044f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/* 35144f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exresnte - resolve namespace node 35244f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore */ 35344f6c01242da4e162f28d8e1216a8c7a91174605Robert Mooreacpi_status 3544be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_resolve_node_to_value(struct acpi_namespace_node **stack_ptr, 3554be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 35644f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore 35744f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/* 35844f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exresop - resolve operand to value 35944f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore */ 3601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 3614be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_resolve_operands(u16 opcode, 3624be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **stack_ptr, 3634be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 3641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 3661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * exdump - Interpreter debug output routines 3671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 3684be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownvoid acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth); 3691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 3714be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_dump_operands(union acpi_operand_object **operands, 37271d993e115706a4108bdc7e3cb3cf25309f17aa6Bob Moore const char *opcode_name, u32 num_opcodes); 3731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 37444f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore#ifdef ACPI_FUTURE_USAGE 3751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 3764be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_dump_object_descriptor(union acpi_operand_object *object, u32 flags); 3771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 37896db255c8f014ae3497507104e8df809785a619fBob Moorevoid acpi_ex_dump_namespace_node(struct acpi_namespace_node *node, u32 flags); 3794be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown#endif /* ACPI_FUTURE_USAGE */ 3801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 38244f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exnames - AML namestring support 3831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 3841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 3854be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_get_name_string(acpi_object_type data_type, 3864be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u8 * in_aml_address, 3874be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown char **out_name_string, u32 * out_name_length); 3881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 3901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * exstore - Object store support 3911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 3921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 3934be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_store(union acpi_operand_object *val_desc, 3944be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *dest_desc, 3954be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 3961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 3984be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_store_object_to_node(union acpi_operand_object *source_desc, 3994be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_namespace_node *node, 4004be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state, 4014be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u8 implicit_conversion); 4021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACPI_IMPLICIT_CONVERSION TRUE 4041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACPI_NO_IMPLICIT_CONVERSION FALSE 4051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 40744f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exstoren - resolve/store object 4081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 4091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 4104be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_resolve_object(union acpi_operand_object **source_desc_ptr, 4114be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_object_type target_type, 4124be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 4131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 4154be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_store_object_to_object(union acpi_operand_object *source_desc, 4164be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *dest_desc, 4174be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object **new_desc, 4184be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_walk_state *walk_state); 4191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 42144f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * exstorob - store object - buffer/string 4221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 4231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 4244be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_store_buffer_to_buffer(union acpi_operand_object *source_desc, 4254be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *target_desc); 4261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 4284be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_store_string_to_string(union acpi_operand_object *source_desc, 4294be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *target_desc); 43044f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore 43144f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/* 43244f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * excopy - object copy 43344f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore */ 4341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 4354be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_copy_integer_to_index_field(union acpi_operand_object *source_desc, 4364be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *target_desc); 4371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 4394be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_copy_integer_to_bank_field(union acpi_operand_object *source_desc, 4404be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *target_desc); 4411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 4434be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_copy_data_to_named_field(union acpi_operand_object *source_desc, 4444be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown struct acpi_namespace_node *node); 4451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 4474be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_copy_integer_to_buffer_field(union acpi_operand_object *source_desc, 4484be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown union acpi_operand_object *target_desc); 44944f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore 4501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 4511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * exutils - interpreter/scanner utilities 4521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 4534d2acd9ea539e0f59178b126f6750ccc41eefcddLen Brownvoid acpi_ex_enter_interpreter(void); 4541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4554be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownvoid acpi_ex_exit_interpreter(void); 4561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4574d2acd9ea539e0f59178b126f6750ccc41eefcddLen Brownvoid acpi_ex_reacquire_interpreter(void); 4584d2acd9ea539e0f59178b126f6750ccc41eefcddLen Brown 4594d2acd9ea539e0f59178b126f6750ccc41eefcddLen Brownvoid acpi_ex_relinquish_interpreter(void); 4604d2acd9ea539e0f59178b126f6750ccc41eefcddLen Brown 4614be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownvoid acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc); 4621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 463ba886cd4ac957608777fbc8d137f6b9f0450e775Bob Moorevoid acpi_ex_acquire_global_lock(u32 rule); 4641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 465f02e9fa1ceee045f7d5c53d475032815752a2510Bob Moorevoid acpi_ex_release_global_lock(u32 rule); 4661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4675df7e6cb42da36c7d878239bebc81907b15f3943Bob Moorevoid acpi_ex_eisa_id_to_string(char *dest, u64 compressed_id); 4681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4695df7e6cb42da36c7d878239bebc81907b15f3943Bob Moorevoid acpi_ex_integer_to_string(char *dest, u64 value); 4701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 471ec4636669bf9c6ff157121ab42709650a9e0cc2aBob Mooreu8 acpi_is_valid_space_id(u8 space_id); 472ec4636669bf9c6ff157121ab42709650a9e0cc2aBob Moore 4731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 4741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * exregion - default op_region handlers 4751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 4761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsacpi_status 4774be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_system_memory_space_handler(u32 function, 4784be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_physical_address address, 4794be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 bit_width, 4805df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 *value, 4814be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *handler_context, 4824be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *region_context); 4834be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown 4844be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status 4854be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_system_io_space_handler(u32 function, 4864be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_physical_address address, 4874be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 bit_width, 4885df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 *value, 4894be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *handler_context, void *region_context); 4904be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown 4914be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status 4924be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_pci_config_space_handler(u32 function, 4934be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_physical_address address, 4944be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 bit_width, 4955df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 *value, 4964be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *handler_context, void *region_context); 4974be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown 4984be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status 4994be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_cmos_space_handler(u32 function, 5004be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_physical_address address, 5014be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 bit_width, 5025df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 *value, 5034be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *handler_context, void *region_context); 5044be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown 5054be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status 5064be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_pci_bar_space_handler(u32 function, 5074be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_physical_address address, 5084be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 bit_width, 5095df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 *value, 5104be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *handler_context, void *region_context); 5114be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown 5124be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status 5134be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_embedded_controller_space_handler(u32 function, 5144be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_physical_address address, 5154be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 bit_width, 5165df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 *value, 5174be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *handler_context, 5184be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *region_context); 5194be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown 5204be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status 5214be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_sm_bus_space_handler(u32 function, 5224be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_physical_address address, 5234be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 bit_width, 5245df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 *value, 5254be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *handler_context, void *region_context); 5264be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown 5274be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_status 5284be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ex_data_table_space_handler(u32 function, 5294be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_physical_address address, 5304be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 bit_width, 5315df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore u64 *value, 5324be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown void *handler_context, void *region_context); 5334be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown 5344be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown#endif /* __INTERP_H__ */ 535