1 /* SPDX-License-Identifier: BSD-3-Clause OR GP !! 1 2 /********************************************* 2 /****************************************************************************** 3 * 3 * 4 * Name: acpixf.h - External interfaces to the 4 * Name: acpixf.h - External interfaces to the ACPI subsystem 5 * 5 * 6 * Copyright (C) 2000 - 2023, Intel Corp. << 7 * << 8 ********************************************* 6 *****************************************************************************/ 9 7 10 #ifndef __ACXFACE_H__ << 11 #define __ACXFACE_H__ << 12 << 13 /* Current ACPICA subsystem version in YYYYMMD << 14 << 15 #define ACPI_CA_VERSION 0x2024 << 16 << 17 #include <acpi/acconfig.h> << 18 #include <acpi/actypes.h> << 19 #include <acpi/actbl.h> << 20 #include <acpi/acbuffer.h> << 21 << 22 /********************************************* << 23 * << 24 * Macros used for ACPICA globals and configur << 25 * << 26 ********************************************* << 27 << 28 /* << 29 * Ensure that global variables are defined an << 30 * << 31 * The use of these macros allows for a single << 32 * in order to simplify maintenance of the cod << 33 */ << 34 #ifdef DEFINE_ACPI_GLOBALS << 35 #define ACPI_GLOBAL(type,name) \ << 36 extern type name; \ << 37 type name << 38 << 39 #define ACPI_INIT_GLOBAL(type,name,value) \ << 40 type name=value << 41 << 42 #else << 43 #ifndef ACPI_GLOBAL << 44 #define ACPI_GLOBAL(type,name) \ << 45 extern type name << 46 #endif << 47 << 48 #ifndef ACPI_INIT_GLOBAL << 49 #define ACPI_INIT_GLOBAL(type,name,value) \ << 50 extern type name << 51 #endif << 52 #endif << 53 << 54 /* << 55 * These macros configure the various ACPICA i << 56 * useful for generating stub inline functions << 57 * configured out of the current kernel or ACP << 58 */ << 59 #ifndef ACPI_EXTERNAL_RETURN_STATUS << 60 #define ACPI_EXTERNAL_RETURN_STATUS(prototype) << 61 prototype; << 62 #endif << 63 << 64 #ifndef ACPI_EXTERNAL_RETURN_OK << 65 #define ACPI_EXTERNAL_RETURN_OK(prototype) \ << 66 prototype; << 67 #endif << 68 << 69 #ifndef ACPI_EXTERNAL_RETURN_VOID << 70 #define ACPI_EXTERNAL_RETURN_VOID(prototype) \ << 71 prototype; << 72 #endif << 73 << 74 #ifndef ACPI_EXTERNAL_RETURN_UINT32 << 75 #define ACPI_EXTERNAL_RETURN_UINT32(prototype) << 76 prototype; << 77 #endif << 78 << 79 #ifndef ACPI_EXTERNAL_RETURN_PTR << 80 #define ACPI_EXTERNAL_RETURN_PTR(prototype) \ << 81 prototype; << 82 #endif << 83 << 84 /********************************************* << 85 * << 86 * Public globals and runtime configuration op << 87 * << 88 ********************************************* << 89 << 90 /* << 91 * Enable "slack mode" of the AML interpreter? << 92 * interpreter strictly follows the ACPI speci << 93 * allows the interpreter to ignore certain er << 94 * << 95 * Currently, these features are enabled by th << 96 * << 97 * 1) Allow "implicit return" of last value in << 98 * 2) Allow access beyond the end of an operat << 99 * 3) Allow access to uninitialized locals/arg << 100 * 4) Allow ANY object type to be a source ope << 101 * 5) Allow unresolved references (invalid tar << 102 * 6) Enable warning messages for behavior tha << 103 */ << 104 ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_interpret << 105 << 106 /* << 107 * Automatically serialize all methods that cr << 108 * is TRUE, meaning that all non_serialized me << 109 * table load time to determine those that cre << 110 * that create named objects are marked Serial << 111 * possible run-time problems if they are ente << 112 */ << 113 ACPI_INIT_GLOBAL(u8, acpi_gbl_auto_serialize_m << 114 << 115 /* << 116 * Create the predefined _OSI method in the na << 117 * because ACPICA is fully compatible with oth << 118 * Changing this will revert ACPICA (and machi << 119 */ << 120 ACPI_INIT_GLOBAL(u8, acpi_gbl_create_osi_metho << 121 << 122 /* << 123 * Optionally use default values for the ACPI << 124 * TRUE to use the defaults, if an FADT contai << 125 */ << 126 ACPI_INIT_GLOBAL(u8, acpi_gbl_use_default_regi << 127 << 128 /* << 129 * Whether or not to validate (map) an entire << 130 * checksum/duplication in early stage before << 131 * allow early table validation before install << 132 * Note that enabling this option causes error << 133 * during early initialization stages. Default << 134 * validation. << 135 */ << 136 ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_table_val << 137 << 138 /* << 139 * Optionally enable output from the AML Debug << 140 */ << 141 ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_aml_debug << 142 << 143 /* << 144 * Optionally copy the entire DSDT to local me << 145 * mapping it.) There are some BIOSs that corr << 146 * DSDT, creating the need for this option. De << 147 * the DSDT. << 148 */ << 149 ACPI_INIT_GLOBAL(u8, acpi_gbl_copy_dsdt_locall << 150 << 151 /* << 152 * Optionally ignore an XSDT if present and us << 153 * Although the ACPI specification requires th << 154 * of the RSDT, the XSDT has been found to be << 155 * some machines. Default behavior is to use t << 156 */ << 157 ACPI_INIT_GLOBAL(u8, acpi_gbl_do_not_use_xsdt, << 158 << 159 /* << 160 * Optionally use 32-bit FADT addresses if and << 161 * (address mismatch) between the 32-bit and 6 << 162 * address. Although ACPICA adheres to the ACP << 163 * requires the use of the corresponding 64-bi << 164 * some machines have been found to have a cor << 165 * address. Default is FALSE, do not favor the << 166 */ << 167 ACPI_INIT_GLOBAL(u8, acpi_gbl_use32_bit_fadt_a << 168 << 169 /* << 170 * Optionally use 32-bit FACS table addresses. << 171 * It is reported that some platforms fail to << 172 * if 64-bit FACS table address is selected: << 173 * https://bugzilla.kernel.org/show_bug.cgi?id << 174 * Default is TRUE, favor the 32-bit addresses << 175 */ << 176 ACPI_INIT_GLOBAL(u8, acpi_gbl_use32_bit_facs_a << 177 << 178 /* << 179 * Optionally truncate I/O addresses to 16 bit << 180 * with other ACPI implementations. NOTE: Duri << 181 * this value is set to TRUE if any Windows OS << 182 * requested by the BIOS. << 183 */ << 184 ACPI_INIT_GLOBAL(u8, acpi_gbl_truncate_io_addr << 185 << 186 /* << 187 * Disable runtime checking and repair of valu << 188 * Use only if the repair is causing a problem << 189 */ << 190 ACPI_INIT_GLOBAL(u8, acpi_gbl_disable_auto_rep << 191 << 192 /* << 193 * Optionally do not install any SSDTs from th << 194 * This can be useful for debugging ACPI probl << 195 */ << 196 ACPI_INIT_GLOBAL(u8, acpi_gbl_disable_ssdt_tab << 197 << 198 /* << 199 * Optionally enable runtime namespace overrid << 200 */ << 201 ACPI_INIT_GLOBAL(u8, acpi_gbl_runtime_namespac << 202 << 203 /* << 204 * We keep track of the latest version of Wind << 205 * the BIOS. ACPI 5.0. << 206 */ << 207 ACPI_INIT_GLOBAL(u8, acpi_gbl_osi_data, 0); << 208 << 209 /* << 210 * ACPI 5.0 introduces the concept of a "reduc << 211 * that the ACPI hardware is no longer require << 212 * a reduced HW machine, and that flag is dupl << 213 */ << 214 ACPI_INIT_GLOBAL(u8, acpi_gbl_reduced_hardware << 215 << 216 /* << 217 * Maximum timeout for While() loop iterations << 218 * This mechanism is intended to prevent infin << 219 * execution within a host kernel. << 220 */ << 221 ACPI_INIT_GLOBAL(u32, acpi_gbl_max_loop_iterat << 222 << 223 /* << 224 * Optionally ignore AE_NOT_FOUND errors from << 225 * during DSDT/SSDT table loading. This reduce << 226 * whose firmware is carrying around a bunch o << 227 * refer to non-existent named objects. Howeve << 228 * use such a package, the unresolved element( << 229 * elements. << 230 */ << 231 ACPI_INIT_GLOBAL(u8, acpi_gbl_ignore_package_r << 232 << 233 /* << 234 * This mechanism is used to trace a specified << 235 * traced each time it is executed. << 236 */ << 237 ACPI_INIT_GLOBAL(u32, acpi_gbl_trace_flags, 0) << 238 ACPI_INIT_GLOBAL(const char *, acpi_gbl_trace_ << 239 ACPI_INIT_GLOBAL(u32, acpi_gbl_trace_dbg_level << 240 ACPI_INIT_GLOBAL(u32, acpi_gbl_trace_dbg_layer << 241 << 242 /* << 243 * Runtime configuration of debug output contr << 244 * switches statically initialized so they are << 245 * is entered. << 246 */ << 247 ACPI_INIT_GLOBAL(u32, acpi_dbg_level, ACPI_DEB << 248 ACPI_INIT_GLOBAL(u32, acpi_dbg_layer, 0); << 249 << 250 /* Optionally enable timer output with Debug O << 251 << 252 ACPI_INIT_GLOBAL(u8, acpi_gbl_display_debug_ti << 253 << 254 /* << 255 * Debugger command handshake globals. Host OS << 256 * variables to implement their own command ha << 257 */ << 258 #ifdef ACPI_DEBUGGER << 259 ACPI_INIT_GLOBAL(u8, acpi_gbl_method_executing << 260 ACPI_GLOBAL(char, acpi_gbl_db_line_buf[ACPI_DB << 261 #endif << 262 << 263 /* 8 /* 264 * Other miscellaneous globals !! 9 * Copyright (C) 2000 - 2003, R. Byron Moore 265 */ !! 10 * All rights reserved. 266 ACPI_GLOBAL(struct acpi_table_fadt, acpi_gbl_F << 267 ACPI_GLOBAL(u32, acpi_current_gpe_count); << 268 ACPI_GLOBAL(u8, acpi_gbl_system_awake_and_runn << 269 << 270 /********************************************* << 271 * << 272 * ACPICA public interface configuration. << 273 * << 274 * Interfaces that are configured out of the A << 275 * by inlined stubs by default. << 276 * << 277 ********************************************* << 278 << 279 /* << 280 * Hardware-reduced prototypes (default: Not h << 281 * << 282 * All ACPICA hardware-related interfaces that << 283 * configured out of the ACPICA build if the A << 284 * is set to TRUE. << 285 * 11 * 286 * Note: This static build option for reduced !! 12 * Redistribution and use in source and binary forms, with or without 287 * reduce ACPICA code size if desired or neces !! 13 * modification, are permitted provided that the following conditions 288 * option is not specified, the runtime behavi !! 14 * are met: 289 * on the actual FADT reduced hardware flag (H !! 15 * 1. Redistributions of source code must retain the above copyright 290 * the flag will enable similar behavior -- AC !! 16 * notice, this list of conditions, and the following disclaimer, 291 * to access any ACPI-relate hardware (SCI, GP !! 17 * without modification. >> 18 * 2. Redistributions in binary form must reproduce at minimum a disclaimer >> 19 * substantially similar to the "NO WARRANTY" disclaimer below >> 20 * ("Disclaimer") and any redistribution must be conditioned upon >> 21 * including a substantially similar Disclaimer requirement for further >> 22 * binary redistribution. >> 23 * 3. Neither the names of the above-listed copyright holders nor the names >> 24 * of any contributors may be used to endorse or promote products derived >> 25 * from this software without specific prior written permission. >> 26 * >> 27 * Alternatively, this software may be distributed under the terms of the >> 28 * GNU General Public License ("GPL") version 2 as published by the Free >> 29 * Software Foundation. >> 30 * >> 31 * NO WARRANTY >> 32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS >> 33 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT >> 34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR >> 35 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT >> 36 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL >> 37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS >> 38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) >> 39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, >> 40 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING >> 41 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE >> 42 * POSSIBILITY OF SUCH DAMAGES. 292 */ 43 */ 293 #if (!ACPI_REDUCED_HARDWARE) << 294 #define ACPI_HW_DEPENDENT_RETURN_STATUS(protot << 295 ACPI_EXTERNAL_RETURN_STATUS(prototype) << 296 << 297 #define ACPI_HW_DEPENDENT_RETURN_OK(prototype) << 298 ACPI_EXTERNAL_RETURN_OK(prototype) << 299 << 300 #define ACPI_HW_DEPENDENT_RETURN_UINT32(protot << 301 ACPI_EXTERNAL_RETURN_UINT32(prototype) << 302 44 303 #define ACPI_HW_DEPENDENT_RETURN_VOID(prototyp << 304 ACPI_EXTERNAL_RETURN_VOID(prototype) << 305 45 306 #else !! 46 #ifndef __ACXFACE_H__ 307 #define ACPI_HW_DEPENDENT_RETURN_STATUS(protot !! 47 #define __ACXFACE_H__ 308 static ACPI_INLINE prototype {return(A << 309 << 310 #define ACPI_HW_DEPENDENT_RETURN_OK(prototype) << 311 static ACPI_INLINE prototype {return(A << 312 << 313 #define ACPI_HW_DEPENDENT_RETURN_UINT32(protot << 314 static ACPI_INLINE prototype {return(0 << 315 48 316 #define ACPI_HW_DEPENDENT_RETURN_VOID(prototyp !! 49 #include "actypes.h" 317 static ACPI_INLINE prototype {return;} !! 50 #include "actbl.h" 318 51 319 #endif /* !ACPI_REDUC << 320 52 321 /* !! 53 /* 322 * Error message prototypes (default: error me !! 54 * Global interfaces 323 * << 324 * All interfaces related to error and warning << 325 * will be configured out of the ACPICA build << 326 * ACPI_NO_ERROR_MESSAGE flag is defined. << 327 */ 55 */ 328 #ifndef ACPI_NO_ERROR_MESSAGES << 329 #define ACPI_MSG_DEPENDENT_RETURN_VOID(prototy << 330 prototype; << 331 << 332 #else << 333 #define ACPI_MSG_DEPENDENT_RETURN_VOID(prototy << 334 static ACPI_INLINE prototype {return;} << 335 56 336 #endif /* ACPI_NO_ERR !! 57 acpi_status >> 58 acpi_initialize_subsystem ( >> 59 void); 337 60 338 /* !! 61 acpi_status 339 * Debugging output prototypes (default: no de !! 62 acpi_enable_subsystem ( 340 * !! 63 u32 flags); 341 * All interfaces related to debug output mess << 342 * will be configured out of the ACPICA build << 343 * ACPI_DEBUG_OUTPUT flag is defined. << 344 */ << 345 #ifdef ACPI_DEBUG_OUTPUT << 346 #define ACPI_DBG_DEPENDENT_RETURN_VOID(prototy << 347 prototype; << 348 << 349 #else << 350 #define ACPI_DBG_DEPENDENT_RETURN_VOID(prototy << 351 static ACPI_INLINE prototype {return;} << 352 64 353 #endif /* ACPI_DEBUG_ !! 65 acpi_status >> 66 acpi_initialize_objects ( >> 67 u32 flags); 354 68 355 /* !! 69 acpi_status 356 * Application prototypes !! 70 acpi_terminate ( 357 * !! 71 void); 358 * All interfaces used by application will be << 359 * out of the ACPICA build unless the ACPI_APP << 360 * flag is defined. << 361 */ << 362 #ifdef ACPI_APPLICATION << 363 #define ACPI_APP_DEPENDENT_RETURN_VOID(prototy << 364 prototype; << 365 << 366 #else << 367 #define ACPI_APP_DEPENDENT_RETURN_VOID(prototy << 368 static ACPI_INLINE prototype {return;} << 369 72 370 #endif /* ACPI_APPLIC !! 73 acpi_status >> 74 acpi_subsystem_status ( >> 75 void); 371 76 372 /* !! 77 acpi_status 373 * Debugger prototypes !! 78 acpi_enable ( 374 * !! 79 void); 375 * All interfaces used by debugger will be con << 376 * out of the ACPICA build unless the ACPI_DEB << 377 * flag is defined. << 378 */ << 379 #ifdef ACPI_DEBUGGER << 380 #define ACPI_DBR_DEPENDENT_RETURN_OK(prototype << 381 ACPI_EXTERNAL_RETURN_OK(prototype) << 382 80 383 #define ACPI_DBR_DEPENDENT_RETURN_VOID(prototy !! 81 acpi_status 384 ACPI_EXTERNAL_RETURN_VOID(prototype) !! 82 acpi_disable ( >> 83 void); 385 84 386 #else !! 85 acpi_status 387 #define ACPI_DBR_DEPENDENT_RETURN_OK(prototype !! 86 acpi_get_system_info ( 388 static ACPI_INLINE prototype {return(A !! 87 struct acpi_buffer *ret_buffer); 389 88 390 #define ACPI_DBR_DEPENDENT_RETURN_VOID(prototy !! 89 const char * 391 static ACPI_INLINE prototype {return;} !! 90 acpi_format_exception ( 392 !! 91 acpi_status exception); 393 #endif /* ACPI_DEBUGG << 394 << 395 /********************************************* << 396 * << 397 * ACPICA public interface prototypes << 398 * << 399 ********************************************* << 400 92 401 /* !! 93 acpi_status 402 * Initialization !! 94 acpi_purge_cached_objects ( 403 */ !! 95 void); 404 ACPI_EXTERNAL_RETURN_STATUS(acpi_status ACPI_I << 405 acpi_initialize_ta << 406 << 407 << 408 << 409 ACPI_EXTERNAL_RETURN_STATUS(acpi_status ACPI_I << 410 acpi_initialize_s << 411 ACPI_EXTERNAL_RETURN_STATUS(acpi_status ACPI_I << 412 acpi_enable_subsy << 413 ACPI_EXTERNAL_RETURN_STATUS(acpi_status ACPI_I << 414 acpi_initialize_o << 415 ACPI_EXTERNAL_RETURN_STATUS(acpi_status ACPI_I << 416 acpi_terminate(vo << 417 96 418 /* !! 97 acpi_status 419 * Miscellaneous global interfaces !! 98 acpi_install_initialization_handler ( 420 */ !! 99 acpi_init_handler handler, 421 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status ac !! 100 u32 function); 422 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status ac << 423 ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_s << 424 << 425 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 426 acpi_get_system_in << 427 << 428 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 429 acpi_get_statisti << 430 ACPI_EXTERNAL_RETURN_PTR(const char << 431 *acpi_format_excepti << 432 ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_p << 433 << 434 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 435 acpi_install_inter << 436 << 437 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 438 acpi_remove_interf << 439 ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_u << 440 << 441 ACPI_EXTERNAL_RETURN_UINT32(u32 << 442 acpi_check_address << 443 << 444 << 445 << 446 << 447 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 448 acpi_decode_pld_b << 449 << 450 << 451 << 452 101 453 /* 102 /* 454 * ACPI table load/unload interfaces !! 103 * ACPI Memory manager 455 */ 104 */ 456 ACPI_EXTERNAL_RETURN_STATUS(acpi_status ACPI_I << 457 acpi_install_table << 458 105 459 ACPI_EXTERNAL_RETURN_STATUS(acpi_status ACPI_I !! 106 void * 460 acpi_install_physi !! 107 acpi_allocate ( 461 !! 108 u32 size); 462 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 463 acpi_load_table(st << 464 u3 << 465 109 466 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 110 void * 467 acpi_unload_table( !! 111 acpi_callocate ( >> 112 u32 size); 468 113 469 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 114 void 470 acpi_unload_parent !! 115 acpi_free ( >> 116 void *address); 471 117 472 ACPI_EXTERNAL_RETURN_STATUS(acpi_status ACPI_I << 473 acpi_load_tables(v << 474 118 475 /* 119 /* 476 * ACPI table manipulation interfaces 120 * ACPI table manipulation interfaces 477 */ 121 */ 478 ACPI_EXTERNAL_RETURN_STATUS(acpi_status ACPI_I << 479 acpi_reallocate_ro << 480 << 481 ACPI_EXTERNAL_RETURN_STATUS(acpi_status ACPI_I << 482 acpi_find_root_poi << 483 << 484 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 485 acpi_get_table_he << 486 << 487 << 488 << 489 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 490 acpi_get_table(ac << 491 st << 492 ** << 493 ACPI_EXTERNAL_RETURN_VOID(void acpi_put_table( << 494 << 495 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 496 acpi_get_table_by_ << 497 << 498 << 499 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 500 acpi_install_tabl << 501 << 502 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 503 acpi_remove_table << 504 << 505 122 506 /* !! 123 acpi_status 507 * Namespace and name interfaces !! 124 acpi_find_root_pointer ( 508 */ !! 125 u32 flags, 509 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 126 struct acpi_pointer *rsdp_address); 510 acpi_walk_namespac !! 127 511 !! 128 acpi_status 512 !! 129 acpi_load_tables ( 513 !! 130 void); 514 !! 131 515 !! 132 acpi_status 516 !! 133 acpi_load_table ( 517 !! 134 struct acpi_table_header *table_ptr); 518 !! 135 519 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 136 acpi_status 520 acpi_get_devices( !! 137 acpi_unload_table ( 521 !! 138 acpi_table_type table_type); 522 !! 139 523 !! 140 acpi_status 524 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 141 acpi_get_table_header ( 525 acpi_get_name(acp !! 142 acpi_table_type table_type, 526 str !! 143 u32 instance, 527 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 144 struct acpi_table_header *out_table_header); 528 acpi_get_handle(a !! 145 529 c !! 146 acpi_status 530 a !! 147 acpi_get_table ( 531 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 148 acpi_table_type table_type, 532 acpi_attach_data( !! 149 u32 instance, 533 !! 150 struct acpi_buffer *ret_buffer); 534 !! 151 535 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 152 acpi_status 536 acpi_detach_data( !! 153 acpi_get_firmware_table ( 537 !! 154 acpi_string signature, 538 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 155 u32 instance, 539 acpi_get_data(acp !! 156 u32 flags, 540 acp !! 157 struct acpi_table_header **table_pointer); 541 voi << 542 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 543 acpi_debug_trace( << 544 << 545 158 546 /* << 547 * Object manipulation and enumeration << 548 */ << 549 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 550 acpi_evaluate_obje << 551 << 552 << 553 << 554 << 555 << 556 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 557 acpi_evaluate_obj << 558 << 559 << 560 << 561 << 562 << 563 << 564 << 565 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 566 acpi_get_object_i << 567 << 568 << 569 ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_i << 570 << 571 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 572 acpi_get_next_obje << 573 << 574 << 575 << 576 << 577 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 578 acpi_get_type(acpi << 579 acpi << 580 << 581 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 582 acpi_get_parent(ac << 583 ac << 584 159 585 /* 160 /* 586 * Handler interfaces !! 161 * Namespace and name interfaces 587 */ 162 */ 588 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 589 acpi_install_initi << 590 (acpi_init_handler << 591 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 592 acpi_install_s << 593 << 594 << 595 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 596 acpi_remove_sc << 597 << 598 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 599 acpi_install_g << 600 (acpi_gbl_even << 601 void *context << 602 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 603 acpi_install_f << 604 << 605 << 606 << 607 << 608 << 609 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 610 acpi_remove_fi << 611 << 612 << 613 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 614 acpi_install_g << 615 << 616 << 617 << 618 << 619 << 620 << 621 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 622 acpi_install_g << 623 << 624 << 625 << 626 << 627 << 628 << 629 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 630 acpi_remove_gp << 631 << 632 << 633 << 634 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 635 acpi_install_notif << 636 << 637 << 638 << 639 << 640 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 641 acpi_remove_notify << 642 << 643 << 644 << 645 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 646 acpi_install_addre << 647 << 648 << 649 << 650 << 651 << 652 << 653 << 654 << 655 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 656 acpi_install_addre << 657 (acpi_handle devic << 658 acpi_adr_space_ha << 659 acpi_adr_space_se << 660 void *context)) << 661 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 662 acpi_execute_reg_m << 663 << 664 << 665 << 666 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 667 acpi_remove_addres << 668 << 669 << 670 << 671 << 672 << 673 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 674 acpi_install_excep << 675 (acpi_exception_ha << 676 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 677 acpi_install_inter << 678 (acpi_interface_ha << 679 163 680 /* !! 164 acpi_status 681 * Global Lock interfaces !! 165 acpi_walk_namespace ( 682 */ !! 166 acpi_object_type type, 683 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status !! 167 acpi_handle start_object, 684 acpi_acquire_g !! 168 u32 max_depth, 685 !! 169 acpi_walk_callback user_function, >> 170 void *context, >> 171 void **return_value); >> 172 >> 173 acpi_status >> 174 acpi_get_devices ( >> 175 char *HID, >> 176 acpi_walk_callback user_function, >> 177 void *context, >> 178 void **return_value); >> 179 >> 180 acpi_status >> 181 acpi_get_name ( >> 182 acpi_handle handle, >> 183 u32 name_type, >> 184 struct acpi_buffer *ret_path_ptr); >> 185 >> 186 acpi_status >> 187 acpi_get_handle ( >> 188 acpi_handle parent, >> 189 acpi_string pathname, >> 190 acpi_handle *ret_handle); >> 191 >> 192 acpi_status >> 193 acpi_attach_data ( >> 194 acpi_handle obj_handle, >> 195 acpi_object_handler handler, >> 196 void *data); >> 197 >> 198 acpi_status >> 199 acpi_detach_data ( >> 200 acpi_handle obj_handle, >> 201 acpi_object_handler handler); >> 202 >> 203 acpi_status >> 204 acpi_get_data ( >> 205 acpi_handle obj_handle, >> 206 acpi_object_handler handler, >> 207 void **data); 686 208 687 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 688 acpi_release_g << 689 209 690 /* 210 /* 691 * Interfaces to AML mutex objects !! 211 * Object manipulation and enumeration 692 */ 212 */ 693 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 694 acpi_acquire_mutex << 695 << 696 << 697 << 698 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 699 acpi_release_mutex << 700 << 701 213 702 /* !! 214 acpi_status 703 * Fixed Event interfaces !! 215 acpi_evaluate_object ( 704 */ !! 216 acpi_handle object, 705 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status !! 217 acpi_string pathname, 706 acpi_enable_ev !! 218 struct acpi_object_list *parameter_objects, >> 219 struct acpi_buffer *return_object_buffer); >> 220 >> 221 acpi_status >> 222 acpi_evaluate_object_typed ( >> 223 acpi_handle object, >> 224 acpi_string pathname, >> 225 struct acpi_object_list *external_params, >> 226 struct acpi_buffer *return_buffer, >> 227 acpi_object_type return_type); >> 228 >> 229 acpi_status >> 230 acpi_get_object_info ( >> 231 acpi_handle handle, >> 232 struct acpi_buffer *return_buffer); >> 233 >> 234 acpi_status >> 235 acpi_get_next_object ( >> 236 acpi_object_type type, >> 237 acpi_handle parent, >> 238 acpi_handle child, >> 239 acpi_handle *out_handle); >> 240 >> 241 acpi_status >> 242 acpi_get_type ( >> 243 acpi_handle object, >> 244 acpi_object_type *out_type); >> 245 >> 246 acpi_status >> 247 acpi_get_parent ( >> 248 acpi_handle object, >> 249 acpi_handle *out_handle); >> 250 >> 251 >> 252 /* >> 253 * Event handler interfaces >> 254 */ >> 255 >> 256 acpi_status >> 257 acpi_install_fixed_event_handler ( >> 258 u32 acpi_event, >> 259 acpi_event_handler handler, >> 260 void *context); >> 261 >> 262 acpi_status >> 263 acpi_remove_fixed_event_handler ( >> 264 u32 acpi_event, >> 265 acpi_event_handler handler); >> 266 >> 267 acpi_status >> 268 acpi_install_notify_handler ( >> 269 acpi_handle device, >> 270 u32 handler_type, >> 271 acpi_notify_handler handler, >> 272 void *context); >> 273 >> 274 acpi_status >> 275 acpi_remove_notify_handler ( >> 276 acpi_handle device, >> 277 u32 handler_type, >> 278 acpi_notify_handler handler); >> 279 >> 280 acpi_status >> 281 acpi_install_address_space_handler ( >> 282 acpi_handle device, >> 283 acpi_adr_space_type space_id, >> 284 acpi_adr_space_handler handler, >> 285 acpi_adr_space_setup setup, >> 286 void *context); >> 287 >> 288 acpi_status >> 289 acpi_remove_address_space_handler ( >> 290 acpi_handle device, >> 291 acpi_adr_space_type space_id, >> 292 acpi_adr_space_handler handler); >> 293 >> 294 acpi_status >> 295 acpi_install_gpe_handler ( >> 296 acpi_handle gpe_device, >> 297 u32 gpe_number, >> 298 u32 type, >> 299 acpi_gpe_handler handler, >> 300 void *context); >> 301 >> 302 acpi_status >> 303 acpi_acquire_global_lock ( >> 304 u16 timeout, >> 305 u32 *handle); >> 306 >> 307 acpi_status >> 308 acpi_release_global_lock ( >> 309 u32 handle); >> 310 >> 311 acpi_status >> 312 acpi_remove_gpe_handler ( >> 313 acpi_handle gpe_device, >> 314 u32 gpe_number, >> 315 acpi_gpe_handler handler); >> 316 >> 317 acpi_status >> 318 acpi_enable_event ( >> 319 u32 event, >> 320 u32 flags); >> 321 >> 322 acpi_status >> 323 acpi_disable_event ( >> 324 u32 event, >> 325 u32 flags); >> 326 >> 327 acpi_status >> 328 acpi_clear_event ( >> 329 u32 event); >> 330 >> 331 acpi_status >> 332 acpi_get_event_status ( >> 333 u32 event, >> 334 acpi_event_status *event_status); >> 335 >> 336 acpi_status >> 337 acpi_enable_gpe ( >> 338 acpi_handle gpe_device, >> 339 u32 gpe_number, >> 340 u32 flags); >> 341 >> 342 acpi_status >> 343 acpi_disable_gpe ( >> 344 acpi_handle gpe_device, >> 345 u32 gpe_number, >> 346 u32 flags); >> 347 >> 348 acpi_status >> 349 acpi_clear_gpe ( >> 350 acpi_handle gpe_device, >> 351 u32 gpe_number, >> 352 u32 flags); >> 353 >> 354 acpi_status >> 355 acpi_get_gpe_status ( >> 356 acpi_handle gpe_device, >> 357 u32 gpe_number, >> 358 u32 flags, >> 359 acpi_event_status *event_status); >> 360 >> 361 acpi_status >> 362 acpi_install_gpe_block ( >> 363 acpi_handle gpe_device, >> 364 struct acpi_generic_address *gpe_block_address, >> 365 u32 register_count, >> 366 u32 interrupt_level); >> 367 >> 368 acpi_status >> 369 acpi_remove_gpe_block ( >> 370 acpi_handle gpe_device); 707 371 708 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 709 acpi_disable_e << 710 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status ac << 711 << 712 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 713 acpi_get_event << 714 << 715 << 716 << 717 /* << 718 * General Purpose Event (GPE) Interfaces << 719 */ << 720 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status ac << 721 << 722 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 723 acpi_enable_gp << 724 << 725 << 726 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 727 acpi_disable_g << 728 << 729 << 730 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 731 acpi_clear_gpe << 732 << 733 << 734 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 735 acpi_set_gpe(a << 736 u << 737 << 738 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 739 acpi_finish_gp << 740 << 741 << 742 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 743 acpi_mask_gpe( << 744 << 745 << 746 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 747 acpi_mark_gpe_ << 748 << 749 << 750 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 751 acpi_setup_gpe << 752 << 753 << 754 << 755 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 756 acpi_set_gpe_ << 757 << 758 << 759 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 760 acpi_get_gpe_ << 761 << 762 << 763 << 764 ACPI_HW_DEPENDENT_RETURN_UINT32(u32 acpi_dispa << 765 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status ac << 766 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status ac << 767 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status ac << 768 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status ac << 769 ACPI_HW_DEPENDENT_RETURN_UINT32(u32 acpi_any_g << 770 ACPI_HW_DEPENDENT_RETURN_UINT32(u32 acpi_any_f << 771 << 772 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 773 acpi_get_gpe_d << 774 << 775 << 776 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 777 acpi_install_g << 778 << 779 << 780 << 781 << 782 << 783 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 784 acpi_remove_g << 785 372 786 /* 373 /* 787 * Resource interfaces 374 * Resource interfaces 788 */ 375 */ 789 typedef << 790 acpi_status (*acpi_walk_resource_callback) (st << 791 vo << 792 376 793 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 377 typedef 794 acpi_get_vendor_re !! 378 acpi_status (*ACPI_WALK_RESOURCE_CALLBACK) ( 795 !! 379 struct acpi_resource *resource, 796 !! 380 void *context); 797 !! 381 798 !! 382 799 !! 383 acpi_status 800 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 384 acpi_get_current_resources( 801 acpi_get_current_ !! 385 acpi_handle device_handle, 802 !! 386 struct acpi_buffer *ret_buffer); 803 !! 387 804 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 388 acpi_status 805 acpi_get_possible !! 389 acpi_get_possible_resources( 806 !! 390 acpi_handle device_handle, 807 !! 391 struct acpi_buffer *ret_buffer); 808 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 392 809 acpi_get_event_re !! 393 acpi_status 810 !! 394 acpi_walk_resources ( 811 !! 395 acpi_handle device_handle, 812 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 396 char *path, 813 acpi_walk_resourc !! 397 ACPI_WALK_RESOURCE_CALLBACK user_function, 814 !! 398 void *context); 815 !! 399 816 !! 400 acpi_status 817 !! 401 acpi_set_current_resources ( 818 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 402 acpi_handle device_handle, 819 acpi_walk_resourc !! 403 struct acpi_buffer *in_buffer); 820 !! 404 821 !! 405 acpi_status 822 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 406 acpi_get_irq_routing_table ( 823 acpi_set_current_ !! 407 acpi_handle bus_device_handle, 824 !! 408 struct acpi_buffer *ret_buffer); 825 !! 409 826 ACPI_EXTERNAL_RETURN_STATUS(acpi_status !! 410 acpi_status 827 acpi_get_irq_rout !! 411 acpi_resource_to_address64 ( 828 !! 412 struct acpi_resource *resource, 829 !! 413 struct acpi_resource_address64 *out); 830 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 831 acpi_resource_to_ << 832 << 833 << 834 << 835 << 836 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 837 acpi_buffer_to_re << 838 << 839 << 840 << 841 414 842 /* 415 /* 843 * Hardware (ACPI device) interfaces 416 * Hardware (ACPI device) interfaces 844 */ 417 */ 845 ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_r << 846 << 847 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 848 acpi_read(u64 *val << 849 struct a << 850 << 851 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 852 acpi_write(u64 val << 853 struct << 854 << 855 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 856 acpi_read_bit_ << 857 << 858 << 859 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 860 acpi_write_bit << 861 << 862 << 863 /* << 864 * Sleep/Wake interfaces << 865 */ << 866 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 867 acpi_get_sleep_typ << 868 << 869 << 870 << 871 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 872 acpi_enter_sleep_s << 873 ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_e << 874 << 875 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status ac << 876 << 877 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 878 acpi_leave_sleep_s << 879 ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_l << 880 << 881 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 882 acpi_set_firmware_ << 883 (acpi_physical_add << 884 acpi_physical_add << 885 /* << 886 * ACPI Timer interfaces << 887 */ << 888 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 889 acpi_get_timer << 890 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status ac << 891 << 892 ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status << 893 acpi_get_timer << 894 << 895 << 896 418 897 /* !! 419 acpi_status 898 * Error/Warning output !! 420 acpi_get_register ( 899 */ !! 421 u32 register_id, 900 ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIK !! 422 u32 *return_value, 901 void ACPI_INTER !! 423 u32 flags); 902 acpi_error(cons !! 424 903 u32 !! 425 acpi_status 904 cons !! 426 acpi_set_register ( 905 ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIK !! 427 u32 register_id, 906 void ACPI_INTE !! 428 u32 value, 907 acpi_exception !! 429 u32 flags); 908 !! 430 909 !! 431 acpi_status 910 !! 432 acpi_set_firmware_waking_vector ( 911 ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIK !! 433 acpi_physical_address physical_address); 912 void ACPI_INTE !! 434 913 acpi_warning(c !! 435 acpi_status 914 u !! 436 acpi_get_firmware_waking_vector ( 915 c !! 437 acpi_physical_address *physical_address); 916 ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIK !! 438 917 void ACPI_INTE !! 439 acpi_status 918 acpi_info(cons !! 440 acpi_get_sleep_type_data ( 919 ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIK !! 441 u8 sleep_state, 920 void ACPI_INTE !! 442 u8 *slp_typ_a, 921 acpi_bios_erro !! 443 u8 *slp_typ_b); 922 !! 444 923 !! 445 acpi_status 924 ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIK !! 446 acpi_enter_sleep_state_prep ( 925 void ACPI_INTE !! 447 u8 sleep_state); 926 acpi_bios_exce !! 448 927 !! 449 acpi_status 928 !! 450 acpi_enter_sleep_state ( 929 !! 451 u8 sleep_state); 930 ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIK !! 452 931 void ACPI_INTE !! 453 acpi_status 932 acpi_bios_warn !! 454 acpi_enter_sleep_state_s4bios ( 933 !! 455 void); 934 !! 456 935 !! 457 acpi_status 936 /* !! 458 acpi_leave_sleep_state ( 937 * Debug output !! 459 u8 sleep_state); 938 */ << 939 ACPI_DBG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIK << 940 void ACPI_INTER << 941 acpi_debug_prin << 942 << 943 << 944 << 945 << 946 << 947 ACPI_DBG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIK << 948 void ACPI_INTE << 949 acpi_debug_pri << 950 << 951 << 952 << 953 << 954 << 955 << 956 ACPI_DBG_DEPENDENT_RETURN_VOID(void << 957 acpi_trace_poin << 958 << 959 << 960 << 961 acpi_status acpi_initialize_debugger(void); << 962 << 963 void acpi_terminate_debugger(void); << 964 << 965 /* << 966 * Divergences << 967 */ << 968 ACPI_EXTERNAL_RETURN_STATUS(acpi_status << 969 acpi_get_data_full << 970 << 971 << 972 << 973 460 974 void acpi_set_debugger_thread_id(acpi_thread_i << 975 461 976 #endif /* __ACXFACE_H !! 462 #endif /* __ACXFACE_H__ */ 977 463
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.