[ACPI] merge 3549 4320 4485 4588 4980 5483 5651 acpica asus fops pnpacpi branches into release
Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:

@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -61,9 +61,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/* Version string */
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20050902
|
||||
#define ACPI_CA_VERSION 0x20060113
|
||||
|
||||
/*
|
||||
* OS name, used for the _OS object. The _OS object is essentially obsolete,
|
||||
@@ -98,11 +98,6 @@
|
||||
|
||||
#define ACPI_CA_SUPPORT_LEVEL 3
|
||||
|
||||
/* String size constants */
|
||||
|
||||
#define ACPI_MAX_STRING_LENGTH 512
|
||||
#define ACPI_PATHNAME_MAX 256 /* A full namespace pathname */
|
||||
|
||||
/* Maximum count for a semaphore object */
|
||||
|
||||
#define ACPI_MAX_SEMAPHORE_COUNT 256
|
||||
@@ -115,6 +110,10 @@
|
||||
|
||||
#define ACPI_SYSMEM_REGION_WINDOW_SIZE 4096
|
||||
|
||||
/* owner_id tracking. 8 entries allows for 255 owner_ids */
|
||||
|
||||
#define ACPI_NUM_OWNERID_MASKS 8
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* ACPI Specification constants (Do not change unless the specification changes)
|
||||
@@ -134,14 +133,11 @@
|
||||
#define ACPI_METHOD_NUM_ARGS 7
|
||||
#define ACPI_METHOD_MAX_ARG 6
|
||||
|
||||
/* Maximum length of resulting string when converting from a buffer */
|
||||
|
||||
#define ACPI_MAX_STRING_CONVERSION 200
|
||||
|
||||
/* Length of _HID, _UID, and _CID values */
|
||||
/* Length of _HID, _UID, _CID, and UUID values */
|
||||
|
||||
#define ACPI_DEVICE_ID_LENGTH 0x09
|
||||
#define ACPI_MAX_CID_LENGTH 48
|
||||
#define ACPI_UUID_LENGTH 16
|
||||
|
||||
/*
|
||||
* Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -57,26 +57,11 @@ struct acpi_external_list {
|
||||
};
|
||||
|
||||
extern struct acpi_external_list *acpi_gbl_external_list;
|
||||
extern const char *acpi_gbl_io_decode[2];
|
||||
extern const char *acpi_gbl_word_decode[4];
|
||||
extern const char *acpi_gbl_consume_decode[2];
|
||||
extern const char *acpi_gbl_min_decode[2];
|
||||
extern const char *acpi_gbl_max_decode[2];
|
||||
extern const char *acpi_gbl_DECdecode[2];
|
||||
extern const char *acpi_gbl_RNGdecode[4];
|
||||
extern const char *acpi_gbl_MEMdecode[4];
|
||||
extern const char *acpi_gbl_RWdecode[2];
|
||||
extern const char *acpi_gbl_irq_decode[2];
|
||||
extern const char *acpi_gbl_HEdecode[2];
|
||||
extern const char *acpi_gbl_LLdecode[2];
|
||||
extern const char *acpi_gbl_SHRdecode[2];
|
||||
extern const char *acpi_gbl_TYPdecode[4];
|
||||
extern const char *acpi_gbl_BMdecode[2];
|
||||
extern const char *acpi_gbl_SIZdecode[4];
|
||||
extern const char *acpi_gbl_TTPdecode[2];
|
||||
extern const char *acpi_gbl_MTPdecode[4];
|
||||
extern const char *acpi_gbl_TRSdecode[2];
|
||||
|
||||
/* Strings used for decoding flags to ASL keywords */
|
||||
|
||||
extern const char *acpi_gbl_word_decode[4];
|
||||
extern const char *acpi_gbl_irq_decode[2];
|
||||
extern const char *acpi_gbl_lock_rule[ACPI_NUM_LOCK_RULES];
|
||||
extern const char *acpi_gbl_access_types[ACPI_NUM_ACCESS_TYPES];
|
||||
extern const char *acpi_gbl_update_rules[ACPI_NUM_UPDATE_RULES];
|
||||
@@ -171,11 +156,19 @@ u8 acpi_dm_is_string_buffer(union acpi_parse_object *op);
|
||||
/*
|
||||
* dmresrc
|
||||
*/
|
||||
void
|
||||
acpi_dm_resource_descriptor(struct acpi_op_walk_info *info,
|
||||
u8 * byte_data, u32 byte_count);
|
||||
void acpi_dm_dump_integer8(u8 value, char *name);
|
||||
|
||||
u8 acpi_dm_is_resource_descriptor(union acpi_parse_object *op);
|
||||
void acpi_dm_dump_integer16(u16 value, char *name);
|
||||
|
||||
void acpi_dm_dump_integer32(u32 value, char *name);
|
||||
|
||||
void acpi_dm_dump_integer64(u64 value, char *name);
|
||||
|
||||
void
|
||||
acpi_dm_resource_template(struct acpi_op_walk_info *info,
|
||||
u8 * byte_data, u32 byte_count);
|
||||
|
||||
u8 acpi_dm_is_resource_template(union acpi_parse_object *op);
|
||||
|
||||
void acpi_dm_indent(u32 level);
|
||||
|
||||
@@ -187,73 +180,69 @@ void acpi_dm_decode_attribute(u8 attribute);
|
||||
* dmresrcl
|
||||
*/
|
||||
void
|
||||
acpi_dm_word_descriptor(struct asl_word_address_desc *resource,
|
||||
u32 length, u32 level);
|
||||
acpi_dm_word_descriptor(union aml_resource *resource, u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_dword_descriptor(struct asl_dword_address_desc *resource,
|
||||
u32 length, u32 level);
|
||||
acpi_dm_dword_descriptor(union aml_resource *resource, u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_extended_descriptor(struct asl_extended_address_desc *resource,
|
||||
acpi_dm_extended_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_qword_descriptor(struct asl_qword_address_desc *resource,
|
||||
u32 length, u32 level);
|
||||
acpi_dm_qword_descriptor(union aml_resource *resource, u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_memory24_descriptor(struct asl_memory_24_desc *resource,
|
||||
acpi_dm_memory24_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_memory32_descriptor(struct asl_memory_32_desc *resource,
|
||||
acpi_dm_memory32_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_fixed_mem32_descriptor(struct asl_fixed_memory_32_desc *resource,
|
||||
u32 length, u32 level);
|
||||
acpi_dm_fixed_memory32_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_generic_register_descriptor(struct asl_general_register_desc *resource,
|
||||
acpi_dm_generic_register_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_interrupt_descriptor(struct asl_extended_xrupt_desc *resource,
|
||||
acpi_dm_interrupt_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_vendor_large_descriptor(struct asl_large_vendor_desc *resource,
|
||||
acpi_dm_vendor_large_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
void acpi_dm_vendor_common(char *name, u8 * byte_data, u32 length, u32 level);
|
||||
|
||||
/*
|
||||
* dmresrcs
|
||||
*/
|
||||
void
|
||||
acpi_dm_irq_descriptor(struct asl_irq_format_desc *resource,
|
||||
u32 length, u32 level);
|
||||
acpi_dm_irq_descriptor(union aml_resource *resource, u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_dma_descriptor(struct asl_dma_format_desc *resource,
|
||||
u32 length, u32 level);
|
||||
acpi_dm_dma_descriptor(union aml_resource *resource, u32 length, u32 level);
|
||||
|
||||
void acpi_dm_io_descriptor(union aml_resource *resource, u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_io_descriptor(struct asl_io_port_desc *resource, u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_fixed_io_descriptor(struct asl_fixed_io_port_desc *resource,
|
||||
acpi_dm_fixed_io_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_start_dependent_descriptor(struct asl_start_dependent_desc *resource,
|
||||
acpi_dm_start_dependent_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_end_dependent_descriptor(struct asl_start_dependent_desc *resource,
|
||||
acpi_dm_end_dependent_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
void
|
||||
acpi_dm_vendor_small_descriptor(struct asl_small_vendor_desc *resource,
|
||||
acpi_dm_vendor_small_descriptor(union aml_resource *resource,
|
||||
u32 length, u32 level);
|
||||
|
||||
/*
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -201,6 +201,9 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
|
||||
union acpi_operand_object *obj_desc,
|
||||
struct acpi_namespace_node *calling_method_node);
|
||||
|
||||
acpi_status
|
||||
acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state);
|
||||
|
||||
/*
|
||||
* dsinit
|
||||
*/
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -51,6 +51,8 @@ acpi_status acpi_ev_initialize_events(void);
|
||||
|
||||
acpi_status acpi_ev_install_xrupt_handlers(void);
|
||||
|
||||
acpi_status acpi_ev_install_fadt_gpes(void);
|
||||
|
||||
u32 acpi_ev_fixed_event_detect(void);
|
||||
|
||||
/*
|
||||
@@ -105,6 +107,10 @@ acpi_ev_create_gpe_block(struct acpi_namespace_node *gpe_device,
|
||||
u32 interrupt_number,
|
||||
struct acpi_gpe_block_info **return_gpe_block);
|
||||
|
||||
acpi_status
|
||||
acpi_ev_initialize_gpe_block(struct acpi_namespace_node *gpe_device,
|
||||
struct acpi_gpe_block_info *gpe_block);
|
||||
|
||||
acpi_status acpi_ev_delete_gpe_block(struct acpi_gpe_block_info *gpe_block);
|
||||
|
||||
u32
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -80,6 +80,15 @@ extern u32 acpi_dbg_layer;
|
||||
|
||||
extern u32 acpi_gbl_nesting_level;
|
||||
|
||||
/* Support for dynamic control method tracing mechanism */
|
||||
|
||||
ACPI_EXTERN u32 acpi_gbl_original_dbg_level;
|
||||
ACPI_EXTERN u32 acpi_gbl_original_dbg_layer;
|
||||
ACPI_EXTERN acpi_name acpi_gbl_trace_method_name;
|
||||
ACPI_EXTERN u32 acpi_gbl_trace_dbg_level;
|
||||
ACPI_EXTERN u32 acpi_gbl_trace_dbg_layer;
|
||||
ACPI_EXTERN u32 acpi_gbl_trace_flags;
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Runtime configuration (static defaults that can be overriden at runtime)
|
||||
@@ -89,11 +98,15 @@ extern u32 acpi_gbl_nesting_level;
|
||||
/*
|
||||
* Enable "slack" in the AML interpreter? Default is FALSE, and the
|
||||
* interpreter strictly follows the ACPI specification. Setting to TRUE
|
||||
* allows the interpreter to forgive certain bad AML constructs. Currently:
|
||||
* allows the interpreter to ignore certain errors and/or bad AML constructs.
|
||||
*
|
||||
* Currently, these features are enabled by this flag:
|
||||
*
|
||||
* 1) Allow "implicit return" of last value in a control method
|
||||
* 2) Allow access beyond end of operation region
|
||||
* 2) Allow access beyond the end of an operation region
|
||||
* 3) Allow access to uninitialized locals/args (auto-init to integer 0)
|
||||
* 4) Allow ANY object type to be a source operand for the Store() operator
|
||||
* 5) Allow unresolved references (invalid target name) in package objects
|
||||
*/
|
||||
ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_enable_interpreter_slack, FALSE);
|
||||
|
||||
@@ -211,9 +224,11 @@ ACPI_EXTERN u32 acpi_gbl_original_mode;
|
||||
ACPI_EXTERN u32 acpi_gbl_rsdp_original_location;
|
||||
ACPI_EXTERN u32 acpi_gbl_ns_lookup_count;
|
||||
ACPI_EXTERN u32 acpi_gbl_ps_find_count;
|
||||
ACPI_EXTERN u64 acpi_gbl_owner_id_mask;
|
||||
ACPI_EXTERN u32 acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS];
|
||||
ACPI_EXTERN u16 acpi_gbl_pm1_enable_register_save;
|
||||
ACPI_EXTERN u16 acpi_gbl_global_lock_handle;
|
||||
ACPI_EXTERN u8 acpi_gbl_last_owner_id_index;
|
||||
ACPI_EXTERN u8 acpi_gbl_next_owner_id_offset;
|
||||
ACPI_EXTERN u8 acpi_gbl_debugger_configuration;
|
||||
ACPI_EXTERN u8 acpi_gbl_global_lock_acquired;
|
||||
ACPI_EXTERN u8 acpi_gbl_step_to_next_call;
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -44,7 +44,49 @@
|
||||
#ifndef __ACINTERP_H__
|
||||
#define __ACINTERP_H__
|
||||
|
||||
#define ACPI_WALK_OPERANDS (&(walk_state->operands [walk_state->num_operands -1]))
|
||||
#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))
|
||||
|
||||
/*
|
||||
* If possible, pack the following structure to byte alignment, since we
|
||||
* don't care about performance for debug output
|
||||
*/
|
||||
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
|
||||
#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()
|
||||
|
||||
/*
|
||||
* exconvrt - object conversion
|
||||
@@ -327,7 +369,7 @@ acpi_ex_dump_operands(union acpi_operand_object **operands,
|
||||
void
|
||||
acpi_ex_dump_object_descriptor(union acpi_operand_object *object, u32 flags);
|
||||
|
||||
void acpi_ex_dump_node(struct acpi_namespace_node *node, u32 flags);
|
||||
void acpi_ex_dump_namespace_node(struct acpi_namespace_node *node, u32 flags);
|
||||
#endif /* ACPI_FUTURE_USAGE */
|
||||
|
||||
/*
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -276,6 +276,37 @@ struct acpi_create_field_info {
|
||||
u8 field_type;
|
||||
};
|
||||
|
||||
/*
|
||||
* Bitmapped ACPI types. Used internally only
|
||||
*/
|
||||
#define ACPI_BTYPE_ANY 0x00000000
|
||||
#define ACPI_BTYPE_INTEGER 0x00000001
|
||||
#define ACPI_BTYPE_STRING 0x00000002
|
||||
#define ACPI_BTYPE_BUFFER 0x00000004
|
||||
#define ACPI_BTYPE_PACKAGE 0x00000008
|
||||
#define ACPI_BTYPE_FIELD_UNIT 0x00000010
|
||||
#define ACPI_BTYPE_DEVICE 0x00000020
|
||||
#define ACPI_BTYPE_EVENT 0x00000040
|
||||
#define ACPI_BTYPE_METHOD 0x00000080
|
||||
#define ACPI_BTYPE_MUTEX 0x00000100
|
||||
#define ACPI_BTYPE_REGION 0x00000200
|
||||
#define ACPI_BTYPE_POWER 0x00000400
|
||||
#define ACPI_BTYPE_PROCESSOR 0x00000800
|
||||
#define ACPI_BTYPE_THERMAL 0x00001000
|
||||
#define ACPI_BTYPE_BUFFER_FIELD 0x00002000
|
||||
#define ACPI_BTYPE_DDB_HANDLE 0x00004000
|
||||
#define ACPI_BTYPE_DEBUG_OBJECT 0x00008000
|
||||
#define ACPI_BTYPE_REFERENCE 0x00010000
|
||||
#define ACPI_BTYPE_RESOURCE 0x00020000
|
||||
|
||||
#define ACPI_BTYPE_COMPUTE_DATA (ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER)
|
||||
|
||||
#define ACPI_BTYPE_DATA (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_PACKAGE)
|
||||
#define ACPI_BTYPE_DATA_REFERENCE (ACPI_BTYPE_DATA | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE)
|
||||
#define ACPI_BTYPE_DEVICE_OBJECTS (ACPI_BTYPE_DEVICE | ACPI_BTYPE_THERMAL | ACPI_BTYPE_PROCESSOR)
|
||||
#define ACPI_BTYPE_OBJECTS_AND_REFS 0x0001FFFF /* ARG or LOCAL */
|
||||
#define ACPI_BTYPE_ALL_OBJECTS 0x0000FFFF
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Event typedefs and structs
|
||||
@@ -573,6 +604,8 @@ struct acpi_parse_obj_named {
|
||||
|
||||
/* The parse node is the fundamental element of the parse tree */
|
||||
|
||||
#define ACPI_MAX_PARSEOP_NAME 20
|
||||
|
||||
struct acpi_parse_obj_asl {
|
||||
ACPI_PARSE_COMMON union acpi_parse_object *child;
|
||||
union acpi_parse_object *parent_method;
|
||||
@@ -597,7 +630,7 @@ struct acpi_parse_obj_asl {
|
||||
u8 aml_opcode_length;
|
||||
u8 aml_pkg_len_bytes;
|
||||
u8 extra;
|
||||
char parse_op_name[12];
|
||||
char parse_op_name[ACPI_MAX_PARSEOP_NAME];
|
||||
};
|
||||
|
||||
union acpi_parse_object {
|
||||
@@ -735,44 +768,52 @@ struct acpi_bit_register_info {
|
||||
|
||||
/* resource_type values */
|
||||
|
||||
#define ACPI_RESOURCE_TYPE_MEMORY_RANGE 0
|
||||
#define ACPI_RESOURCE_TYPE_IO_RANGE 1
|
||||
#define ACPI_RESOURCE_TYPE_BUS_NUMBER_RANGE 2
|
||||
#define ACPI_ADDRESS_TYPE_MEMORY_RANGE 0
|
||||
#define ACPI_ADDRESS_TYPE_IO_RANGE 1
|
||||
#define ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE 2
|
||||
|
||||
/* Resource descriptor types and masks */
|
||||
|
||||
#define ACPI_RDESC_TYPE_LARGE 0x80
|
||||
#define ACPI_RDESC_TYPE_SMALL 0x00
|
||||
#define ACPI_RESOURCE_NAME_LARGE 0x80
|
||||
#define ACPI_RESOURCE_NAME_SMALL 0x00
|
||||
|
||||
#define ACPI_RDESC_TYPE_MASK 0x80
|
||||
#define ACPI_RDESC_SMALL_MASK 0x78 /* Only bits 6:3 contain the type */
|
||||
#define ACPI_RESOURCE_NAME_SMALL_MASK 0x78 /* Bits 6:3 contain the type */
|
||||
#define ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK 0x07 /* Bits 2:0 contain the length */
|
||||
#define ACPI_RESOURCE_NAME_LARGE_MASK 0x7F /* Bits 6:0 contain the type */
|
||||
|
||||
/*
|
||||
* Small resource descriptor types
|
||||
* Note: The 3 length bits (2:0) must be zero
|
||||
* Small resource descriptor "names" as defined by the ACPI specification.
|
||||
* Note: Bits 2:0 are used for the descriptor length
|
||||
*/
|
||||
#define ACPI_RDESC_TYPE_IRQ_FORMAT 0x20
|
||||
#define ACPI_RDESC_TYPE_DMA_FORMAT 0x28
|
||||
#define ACPI_RDESC_TYPE_START_DEPENDENT 0x30
|
||||
#define ACPI_RDESC_TYPE_END_DEPENDENT 0x38
|
||||
#define ACPI_RDESC_TYPE_IO_PORT 0x40
|
||||
#define ACPI_RDESC_TYPE_FIXED_IO_PORT 0x48
|
||||
#define ACPI_RDESC_TYPE_SMALL_VENDOR 0x70
|
||||
#define ACPI_RDESC_TYPE_END_TAG 0x78
|
||||
#define ACPI_RESOURCE_NAME_IRQ 0x20
|
||||
#define ACPI_RESOURCE_NAME_DMA 0x28
|
||||
#define ACPI_RESOURCE_NAME_START_DEPENDENT 0x30
|
||||
#define ACPI_RESOURCE_NAME_END_DEPENDENT 0x38
|
||||
#define ACPI_RESOURCE_NAME_IO 0x40
|
||||
#define ACPI_RESOURCE_NAME_FIXED_IO 0x48
|
||||
#define ACPI_RESOURCE_NAME_RESERVED_S1 0x50
|
||||
#define ACPI_RESOURCE_NAME_RESERVED_S2 0x58
|
||||
#define ACPI_RESOURCE_NAME_RESERVED_S3 0x60
|
||||
#define ACPI_RESOURCE_NAME_RESERVED_S4 0x68
|
||||
#define ACPI_RESOURCE_NAME_VENDOR_SMALL 0x70
|
||||
#define ACPI_RESOURCE_NAME_END_TAG 0x78
|
||||
|
||||
/*
|
||||
* Large resource descriptor types
|
||||
* Large resource descriptor "names" as defined by the ACPI specification.
|
||||
* Note: includes the Large Descriptor bit in bit[7]
|
||||
*/
|
||||
#define ACPI_RDESC_TYPE_MEMORY_24 0x81
|
||||
#define ACPI_RDESC_TYPE_GENERAL_REGISTER 0x82
|
||||
#define ACPI_RDESC_TYPE_LARGE_VENDOR 0x84
|
||||
#define ACPI_RDESC_TYPE_MEMORY_32 0x85
|
||||
#define ACPI_RDESC_TYPE_FIXED_MEMORY_32 0x86
|
||||
#define ACPI_RDESC_TYPE_DWORD_ADDRESS_SPACE 0x87
|
||||
#define ACPI_RDESC_TYPE_WORD_ADDRESS_SPACE 0x88
|
||||
#define ACPI_RDESC_TYPE_EXTENDED_XRUPT 0x89
|
||||
#define ACPI_RDESC_TYPE_QWORD_ADDRESS_SPACE 0x8A
|
||||
#define ACPI_RDESC_TYPE_EXTENDED_ADDRESS_SPACE 0x8B
|
||||
#define ACPI_RESOURCE_NAME_MEMORY24 0x81
|
||||
#define ACPI_RESOURCE_NAME_GENERIC_REGISTER 0x82
|
||||
#define ACPI_RESOURCE_NAME_RESERVED_L1 0x83
|
||||
#define ACPI_RESOURCE_NAME_VENDOR_LARGE 0x84
|
||||
#define ACPI_RESOURCE_NAME_MEMORY32 0x85
|
||||
#define ACPI_RESOURCE_NAME_FIXED_MEMORY32 0x86
|
||||
#define ACPI_RESOURCE_NAME_ADDRESS32 0x87
|
||||
#define ACPI_RESOURCE_NAME_ADDRESS16 0x88
|
||||
#define ACPI_RESOURCE_NAME_EXTENDED_IRQ 0x89
|
||||
#define ACPI_RESOURCE_NAME_ADDRESS64 0x8A
|
||||
#define ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 0x8B
|
||||
#define ACPI_RESOURCE_NAME_LARGE_MAX 0x8B
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
@@ -780,7 +821,7 @@ struct acpi_bit_register_info {
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define ACPI_ASCII_ZERO 0x30
|
||||
#define ACPI_ASCII_ZERO 0x30
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
/*
|
||||
* For 16-bit addresses, we have to assume that the upper 32 bits
|
||||
* are zero.
|
||||
* (out of 64) are zero.
|
||||
*/
|
||||
#define ACPI_LODWORD(l) ((u32)(l))
|
||||
#define ACPI_HIDWORD(l) ((u32)(0))
|
||||
@@ -104,30 +104,38 @@
|
||||
#define ACPI_FORMAT_UINT64(i) ACPI_HIDWORD(i),ACPI_LODWORD(i)
|
||||
|
||||
/*
|
||||
* Extract a byte of data using a pointer. Any more than a byte and we
|
||||
* get into potential aligment issues -- see the STORE macros below
|
||||
* Extract data using a pointer. Any more than a byte and we
|
||||
* get into potential aligment issues -- see the STORE macros below.
|
||||
* Use with care.
|
||||
*/
|
||||
#define ACPI_GET8(addr) (*(u8*)(addr))
|
||||
#define ACPI_GET8(ptr) *ACPI_CAST_PTR (u8, ptr)
|
||||
#define ACPI_GET16(ptr) *ACPI_CAST_PTR (u16, ptr)
|
||||
#define ACPI_GET32(ptr) *ACPI_CAST_PTR (u32, ptr)
|
||||
#define ACPI_GET64(ptr) *ACPI_CAST_PTR (u64, ptr)
|
||||
#define ACPI_SET8(ptr) *ACPI_CAST_PTR (u8, ptr)
|
||||
#define ACPI_SET16(ptr) *ACPI_CAST_PTR (u16, ptr)
|
||||
#define ACPI_SET32(ptr) *ACPI_CAST_PTR (u32, ptr)
|
||||
#define ACPI_SET64(ptr) *ACPI_CAST_PTR (u64, ptr)
|
||||
|
||||
/* Pointer arithmetic */
|
||||
|
||||
#define ACPI_PTR_ADD(t,a,b) (t *) (void *)((char *)(a) + (acpi_native_uint)(b))
|
||||
#define ACPI_PTR_DIFF(a,b) (acpi_native_uint) ((char *)(a) - (char *)(b))
|
||||
/*
|
||||
* Pointer manipulation
|
||||
*/
|
||||
#define ACPI_CAST_PTR(t, p) ((t *) (acpi_uintptr_t) (p))
|
||||
#define ACPI_CAST_INDIRECT_PTR(t, p) ((t **) (acpi_uintptr_t) (p))
|
||||
#define ACPI_ADD_PTR(t,a,b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (u8,(a)) + (acpi_native_uint)(b)))
|
||||
#define ACPI_PTR_DIFF(a,b) (acpi_native_uint) (ACPI_CAST_PTR (u8,(a)) - ACPI_CAST_PTR (u8,(b)))
|
||||
|
||||
/* Pointer/Integer type conversions */
|
||||
|
||||
#define ACPI_TO_POINTER(i) ACPI_PTR_ADD (void, (void *) NULL,(acpi_native_uint)i)
|
||||
#define ACPI_TO_POINTER(i) ACPI_ADD_PTR (void,(void *) NULL,(acpi_native_uint) i)
|
||||
#define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p,(void *) NULL)
|
||||
#define ACPI_OFFSET(d,f) (acpi_size) ACPI_PTR_DIFF (&(((d *)0)->f),(void *) NULL)
|
||||
#define ACPI_FADT_OFFSET(f) ACPI_OFFSET (FADT_DESCRIPTOR, f)
|
||||
|
||||
#define ACPI_CAST_PTR(t, p) ((t *)(void *)(p))
|
||||
#define ACPI_CAST_INDIRECT_PTR(t, p) ((t **)(void *)(p))
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 16
|
||||
#define ACPI_STORE_POINTER(d,s) ACPI_MOVE_32_TO_32(d,s)
|
||||
#define ACPI_PHYSADDR_TO_PTR(i) (void *)(i)
|
||||
#define ACPI_PTR_TO_PHYSADDR(i) (u32) (char *)(i)
|
||||
#define ACPI_PTR_TO_PHYSADDR(i) (u32) ACPI_CAST_PTR (u8,(i))
|
||||
#else
|
||||
#define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i)
|
||||
#define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i)
|
||||
@@ -202,7 +210,7 @@
|
||||
|
||||
#define ACPI_BUFFER_INDEX(buf_len,buf_offset,byte_gran) (buf_offset)
|
||||
|
||||
#ifdef ACPI_MISALIGNED_TRANSFERS
|
||||
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
|
||||
|
||||
/* The hardware supports unaligned transfers, just do the little-endian move */
|
||||
|
||||
@@ -326,6 +334,10 @@
|
||||
#define ACPI_MUL_16(a) _ACPI_MUL(a,4)
|
||||
#define ACPI_MOD_16(a) _ACPI_MOD(a,16)
|
||||
|
||||
#define ACPI_DIV_32(a) _ACPI_DIV(a,5)
|
||||
#define ACPI_MUL_32(a) _ACPI_MUL(a,5)
|
||||
#define ACPI_MOD_32(a) _ACPI_MOD(a,32)
|
||||
|
||||
/*
|
||||
* Rounding macros (Power of two boundaries only)
|
||||
*/
|
||||
@@ -365,6 +377,13 @@
|
||||
#define ACPI_REGISTER_PREPARE_BITS(val, pos, mask) ((val << pos) & mask)
|
||||
#define ACPI_REGISTER_INSERT_VALUE(reg, pos, mask, val) reg = (reg & (~(mask))) | ACPI_REGISTER_PREPARE_BITS(val, pos, mask)
|
||||
|
||||
/* Generate a UUID */
|
||||
|
||||
#define ACPI_INIT_UUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) (a) & 0xFF, ((a) >> 8) & 0xFF, ((a) >> 16) & 0xFF, ((a) >> 24) & 0xFF, \
|
||||
(b) & 0xFF, ((b) >> 8) & 0xFF, \
|
||||
(c) & 0xFF, ((c) >> 8) & 0xFF, \
|
||||
(d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7)
|
||||
|
||||
/*
|
||||
* An struct acpi_namespace_node * can appear in some contexts,
|
||||
* where a pointer to an union acpi_operand_object can also
|
||||
@@ -424,56 +443,66 @@
|
||||
#define INCREMENT_ARG_LIST(list) (list >>= ((u32) ARG_TYPE_WIDTH))
|
||||
|
||||
/*
|
||||
* Reporting macros that are never compiled out
|
||||
* Module name is include in both debug and non-debug versions primarily for
|
||||
* error messages. The __FILE__ macro is not very useful for this, because it
|
||||
* often includes the entire pathname to the module
|
||||
*/
|
||||
#define ACPI_PARAM_LIST(pl) pl
|
||||
|
||||
/*
|
||||
* Error reporting. These versions add callers module and line#.
|
||||
*
|
||||
* Since _acpi_module_name gets compiled out when ACPI_DEBUG_OUTPUT
|
||||
* isn't defined, only use it in debug mode.
|
||||
*/
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
|
||||
#define ACPI_REPORT_INFO(fp) {acpi_ut_report_info(_acpi_module_name,__LINE__,_COMPONENT); \
|
||||
acpi_os_printf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_ERROR(fp) {acpi_ut_report_error(_acpi_module_name,__LINE__,_COMPONENT); \
|
||||
acpi_os_printf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_WARNING(fp) {acpi_ut_report_warning(_acpi_module_name,__LINE__,_COMPONENT); \
|
||||
acpi_os_printf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_NSERROR(s,e) acpi_ns_report_error(_acpi_module_name,__LINE__,_COMPONENT, s, e);
|
||||
|
||||
#define ACPI_REPORT_METHOD_ERROR(s,n,p,e) acpi_ns_report_method_error(_acpi_module_name,__LINE__,_COMPONENT, s, n, p, e);
|
||||
#if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES)
|
||||
|
||||
#define ACPI_MODULE_NAME(name) static char ACPI_UNUSED_VAR *_acpi_module_name = name;
|
||||
#else
|
||||
|
||||
#define ACPI_REPORT_INFO(fp) {acpi_ut_report_info("ACPI",__LINE__,_COMPONENT); \
|
||||
acpi_os_printf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_ERROR(fp) {acpi_ut_report_error("ACPI",__LINE__,_COMPONENT); \
|
||||
acpi_os_printf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_WARNING(fp) {acpi_ut_report_warning("ACPI",__LINE__,_COMPONENT); \
|
||||
acpi_os_printf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_NSERROR(s,e) acpi_ns_report_error("ACPI",__LINE__,_COMPONENT, s, e);
|
||||
|
||||
#define ACPI_REPORT_METHOD_ERROR(s,n,p,e) acpi_ns_report_method_error("ACPI",__LINE__,_COMPONENT, s, n, p, e);
|
||||
|
||||
#define ACPI_MODULE_NAME(name)
|
||||
#endif
|
||||
|
||||
/* Error reporting. These versions pass thru the module and line# */
|
||||
/*
|
||||
* Ascii error messages can be configured out
|
||||
*/
|
||||
#ifndef ACPI_NO_ERROR_MESSAGES
|
||||
|
||||
#define _ACPI_REPORT_INFO(a,b,c,fp) {acpi_ut_report_info(a,b,c); \
|
||||
acpi_os_printf ACPI_PARAM_LIST(fp);}
|
||||
#define _ACPI_REPORT_ERROR(a,b,c,fp) {acpi_ut_report_error(a,b,c); \
|
||||
acpi_os_printf ACPI_PARAM_LIST(fp);}
|
||||
#define _ACPI_REPORT_WARNING(a,b,c,fp) {acpi_ut_report_warning(a,b,c); \
|
||||
acpi_os_printf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_PARAM_LIST(pl) pl
|
||||
#define ACPI_LOCATION_INFO _acpi_module_name, __LINE__
|
||||
|
||||
/*
|
||||
* Error reporting. Callers module and line number are inserted automatically
|
||||
* These macros are used for both the debug and non-debug versions of the code
|
||||
*/
|
||||
#define ACPI_REPORT_INFO(fp) {acpi_ut_report_info (ACPI_LOCATION_INFO); \
|
||||
acpi_os_printf ACPI_PARAM_LIST (fp);}
|
||||
#define ACPI_REPORT_ERROR(fp) {acpi_ut_report_error (ACPI_LOCATION_INFO); \
|
||||
acpi_os_printf ACPI_PARAM_LIST (fp);}
|
||||
#define ACPI_REPORT_WARNING(fp) {acpi_ut_report_warning (ACPI_LOCATION_INFO); \
|
||||
acpi_os_printf ACPI_PARAM_LIST (fp);}
|
||||
#define ACPI_REPORT_NSERROR(s,e) acpi_ns_report_error (ACPI_LOCATION_INFO, \
|
||||
s, e);
|
||||
#define ACPI_REPORT_MTERROR(s,n,p,e) acpi_ns_report_method_error (ACPI_LOCATION_INFO, \
|
||||
s, n, p, e);
|
||||
|
||||
/* Error reporting. These versions pass thru the module and lineno */
|
||||
|
||||
#define _ACPI_REPORT_INFO(a,b,fp) {acpi_ut_report_info (a,b); \
|
||||
acpi_os_printf ACPI_PARAM_LIST (fp);}
|
||||
#define _ACPI_REPORT_ERROR(a,b,fp) {acpi_ut_report_error (a,b); \
|
||||
acpi_os_printf ACPI_PARAM_LIST (fp);}
|
||||
#define _ACPI_REPORT_WARNING(a,b,fp) {acpi_ut_report_warning (a,b); \
|
||||
acpi_os_printf ACPI_PARAM_LIST (fp);}
|
||||
#else
|
||||
|
||||
/* No error messages */
|
||||
|
||||
#define ACPI_REPORT_INFO(fp)
|
||||
#define ACPI_REPORT_ERROR(fp)
|
||||
#define ACPI_REPORT_WARNING(fp)
|
||||
#define ACPI_REPORT_NSERROR(s,e)
|
||||
#define ACPI_REPORT_MTERROR(s,n,p,e)
|
||||
#define _ACPI_REPORT_INFO(a,b,c,fp)
|
||||
#define _ACPI_REPORT_ERROR(a,b,c,fp)
|
||||
#define _ACPI_REPORT_WARNING(a,b,c,fp)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Debug macros that are conditionally compiled
|
||||
*/
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
#define ACPI_MODULE_NAME(name) static char ACPI_UNUSED_VAR *_acpi_module_name = name;
|
||||
|
||||
/*
|
||||
* Common parameters used for debug output functions:
|
||||
@@ -525,6 +554,9 @@
|
||||
* bad form, but having a separate exit macro is very ugly and difficult to maintain.
|
||||
* One of the FUNCTION_TRACE macros above must be used in conjunction with these macros
|
||||
* so that "_acpi_function_name" is defined.
|
||||
*
|
||||
* Note: the DO_WHILE0 macro is used to prevent some compilers from complaining
|
||||
* about these constructs.
|
||||
*/
|
||||
#ifdef ACPI_USE_DO_WHILE_0
|
||||
#define ACPI_DO_WHILE0(a) do a while(0)
|
||||
@@ -532,10 +564,55 @@
|
||||
#define ACPI_DO_WHILE0(a) a
|
||||
#endif
|
||||
|
||||
#define return_VOID ACPI_DO_WHILE0 ({acpi_ut_exit(ACPI_DEBUG_PARAMETERS);return;})
|
||||
#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({acpi_ut_status_exit(ACPI_DEBUG_PARAMETERS,(s));return((s));})
|
||||
#define return_VALUE(s) ACPI_DO_WHILE0 ({acpi_ut_value_exit(ACPI_DEBUG_PARAMETERS,(acpi_integer)(s));return((s));})
|
||||
#define return_PTR(s) ACPI_DO_WHILE0 ({acpi_ut_ptr_exit(ACPI_DEBUG_PARAMETERS,(u8 *)(s));return((s));})
|
||||
#define return_VOID ACPI_DO_WHILE0 ({ \
|
||||
acpi_ut_exit (ACPI_DEBUG_PARAMETERS); \
|
||||
return;})
|
||||
/*
|
||||
* There are two versions of most of the return macros. The default version is
|
||||
* safer, since it avoids side-effects by guaranteeing that the argument will
|
||||
* not be evaluated twice.
|
||||
*
|
||||
* A less-safe version of the macros is provided for optional use if the
|
||||
* compiler uses excessive CPU stack (for example, this may happen in the
|
||||
* debug case if code optimzation is disabled.)
|
||||
*/
|
||||
#ifndef ACPI_SIMPLE_RETURN_MACROS
|
||||
|
||||
#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({ \
|
||||
register acpi_status _s = (s); \
|
||||
acpi_ut_status_exit (ACPI_DEBUG_PARAMETERS, _s); \
|
||||
return (_s); })
|
||||
#define return_PTR(s) ACPI_DO_WHILE0 ({ \
|
||||
register void *_s = (void *) (s); \
|
||||
acpi_ut_ptr_exit (ACPI_DEBUG_PARAMETERS, (u8 *) _s); \
|
||||
return (_s); })
|
||||
#define return_VALUE(s) ACPI_DO_WHILE0 ({ \
|
||||
register acpi_integer _s = (s); \
|
||||
acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, _s); \
|
||||
return (_s); })
|
||||
#define return_UINT8(s) ACPI_DO_WHILE0 ({ \
|
||||
register u8 _s = (u8) (s); \
|
||||
acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, (acpi_integer) _s); \
|
||||
return (_s); })
|
||||
#define return_UINT32(s) ACPI_DO_WHILE0 ({ \
|
||||
register u32 _s = (u32) (s); \
|
||||
acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, (acpi_integer) _s); \
|
||||
return (_s); })
|
||||
#else /* Use original less-safe macros */
|
||||
|
||||
#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({ \
|
||||
acpi_ut_status_exit (ACPI_DEBUG_PARAMETERS, (s)); \
|
||||
return((s)); })
|
||||
#define return_PTR(s) ACPI_DO_WHILE0 ({ \
|
||||
acpi_ut_ptr_exit (ACPI_DEBUG_PARAMETERS, (u8 *) (s)); \
|
||||
return((s)); })
|
||||
#define return_VALUE(s) ACPI_DO_WHILE0 ({ \
|
||||
acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, (acpi_integer) (s)); \
|
||||
return((s)); })
|
||||
#define return_UINT8(s) return_VALUE(s)
|
||||
#define return_UINT32(s) return_VALUE(s)
|
||||
|
||||
#endif /* ACPI_SIMPLE_RETURN_MACROS */
|
||||
|
||||
/* Conditional execution */
|
||||
|
||||
@@ -582,9 +659,6 @@
|
||||
* This is the non-debug case -- make everything go away,
|
||||
* leaving no executable debug code!
|
||||
*/
|
||||
#define ACPI_MODULE_NAME(name)
|
||||
#define _acpi_module_name ""
|
||||
|
||||
#define ACPI_DEBUG_EXEC(a)
|
||||
#define ACPI_NORMAL_EXEC(a) a;
|
||||
|
||||
@@ -612,6 +686,8 @@
|
||||
#define return_VOID return
|
||||
#define return_ACPI_STATUS(s) return(s)
|
||||
#define return_VALUE(s) return(s)
|
||||
#define return_UINT8(s) return(s)
|
||||
#define return_UINT32(s) return(s)
|
||||
#define return_PTR(s) return(s)
|
||||
|
||||
#endif
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -263,13 +263,11 @@ u32 acpi_ns_local(acpi_object_type type);
|
||||
void
|
||||
acpi_ns_report_error(char *module_name,
|
||||
u32 line_number,
|
||||
u32 component_id,
|
||||
char *internal_name, acpi_status lookup_status);
|
||||
|
||||
void
|
||||
acpi_ns_report_method_error(char *module_name,
|
||||
u32 line_number,
|
||||
u32 component_id,
|
||||
char *message,
|
||||
struct acpi_namespace_node *node,
|
||||
char *path, acpi_status lookup_status);
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -137,13 +137,19 @@
|
||||
|
||||
/* Exception level -- used in the global "debug_level" */
|
||||
|
||||
#define ACPI_DB_ERROR ACPI_DEBUG_LEVEL (ACPI_LV_ERROR)
|
||||
#define ACPI_DB_WARN ACPI_DEBUG_LEVEL (ACPI_LV_WARN)
|
||||
#define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT)
|
||||
#define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT)
|
||||
#define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO)
|
||||
#define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS)
|
||||
|
||||
/*
|
||||
* These two levels are essentially obsolete, all instances in the
|
||||
* ACPICA core code have been replaced by REPORT_ERROR and REPORT_WARNING
|
||||
* (Kept here because some drivers may still use them)
|
||||
*/
|
||||
#define ACPI_DB_ERROR ACPI_DEBUG_LEVEL (ACPI_LV_ERROR)
|
||||
#define ACPI_DB_WARN ACPI_DEBUG_LEVEL (ACPI_LV_WARN)
|
||||
|
||||
/* Trace level -- also used in the global "debug_level" */
|
||||
|
||||
#define ACPI_DB_INIT_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_INIT_NAMES)
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -52,8 +52,8 @@
|
||||
/* ACPI PCI Interrupt Link (pci_link.c) */
|
||||
|
||||
int acpi_irq_penalty_init(void);
|
||||
int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *edge_level,
|
||||
int *active_high_low, char **name);
|
||||
int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering,
|
||||
int *polarity, char **name);
|
||||
int acpi_pci_link_free_irq(acpi_handle handle);
|
||||
|
||||
/* ACPI PCI Interrupt Routing (pci_irq.c) */
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -108,9 +108,9 @@ acpi_status acpi_os_create_lock(acpi_handle * out_handle);
|
||||
|
||||
void acpi_os_delete_lock(acpi_handle handle);
|
||||
|
||||
unsigned long acpi_os_acquire_lock(acpi_handle handle);
|
||||
acpi_native_uint acpi_os_acquire_lock(acpi_handle handle);
|
||||
|
||||
void acpi_os_release_lock(acpi_handle handle, unsigned long flags);
|
||||
void acpi_os_release_lock(acpi_handle handle, acpi_native_uint flags);
|
||||
|
||||
/*
|
||||
* Memory allocation and mapping
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -149,6 +149,9 @@ acpi_detach_data(acpi_handle obj_handle, acpi_object_handler handler);
|
||||
acpi_status
|
||||
acpi_get_data(acpi_handle obj_handle, acpi_object_handler handler, void **data);
|
||||
|
||||
acpi_status
|
||||
acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags);
|
||||
|
||||
/*
|
||||
* Object manipulation and enumeration
|
||||
*/
|
||||
@@ -268,6 +271,12 @@ typedef
|
||||
acpi_status(*ACPI_WALK_RESOURCE_CALLBACK) (struct acpi_resource * resource,
|
||||
void *context);
|
||||
|
||||
acpi_status
|
||||
acpi_get_vendor_resource(acpi_handle device_handle,
|
||||
char *name,
|
||||
struct acpi_vendor_uuid *uuid,
|
||||
struct acpi_buffer *ret_buffer);
|
||||
|
||||
acpi_status
|
||||
acpi_get_current_resources(acpi_handle device_handle,
|
||||
struct acpi_buffer *ret_buffer);
|
||||
@@ -280,7 +289,7 @@ acpi_get_possible_resources(acpi_handle device_handle,
|
||||
|
||||
acpi_status
|
||||
acpi_walk_resources(acpi_handle device_handle,
|
||||
char *path,
|
||||
char *name,
|
||||
ACPI_WALK_RESOURCE_CALLBACK user_function, void *context);
|
||||
|
||||
acpi_status
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -44,8 +44,125 @@
|
||||
#ifndef __ACRESRC_H__
|
||||
#define __ACRESRC_H__
|
||||
|
||||
/* Need the AML resource descriptor structs */
|
||||
|
||||
#include "amlresrc.h"
|
||||
|
||||
/*
|
||||
* Function prototypes called from Acpi* APIs
|
||||
* If possible, pack the following structures to byte alignment, since we
|
||||
* don't care about performance for debug output
|
||||
*/
|
||||
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
|
||||
#pragma pack(1)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Individual entry for the resource conversion tables
|
||||
*/
|
||||
typedef const struct acpi_rsconvert_info {
|
||||
u8 opcode;
|
||||
u8 resource_offset;
|
||||
u8 aml_offset;
|
||||
u8 value;
|
||||
|
||||
} acpi_rsconvert_info;
|
||||
|
||||
/* Resource conversion opcodes */
|
||||
|
||||
#define ACPI_RSC_INITGET 0
|
||||
#define ACPI_RSC_INITSET 1
|
||||
#define ACPI_RSC_FLAGINIT 2
|
||||
#define ACPI_RSC_1BITFLAG 3
|
||||
#define ACPI_RSC_2BITFLAG 4
|
||||
#define ACPI_RSC_COUNT 5
|
||||
#define ACPI_RSC_COUNT16 6
|
||||
#define ACPI_RSC_LENGTH 7
|
||||
#define ACPI_RSC_MOVE8 8
|
||||
#define ACPI_RSC_MOVE16 9
|
||||
#define ACPI_RSC_MOVE32 10
|
||||
#define ACPI_RSC_MOVE64 11
|
||||
#define ACPI_RSC_SET8 12
|
||||
#define ACPI_RSC_DATA8 13
|
||||
#define ACPI_RSC_ADDRESS 14
|
||||
#define ACPI_RSC_SOURCE 15
|
||||
#define ACPI_RSC_SOURCEX 16
|
||||
#define ACPI_RSC_BITMASK 17
|
||||
#define ACPI_RSC_BITMASK16 18
|
||||
#define ACPI_RSC_EXIT_NE 19
|
||||
#define ACPI_RSC_EXIT_LE 20
|
||||
|
||||
/* Resource Conversion sub-opcodes */
|
||||
|
||||
#define ACPI_RSC_COMPARE_AML_LENGTH 0
|
||||
#define ACPI_RSC_COMPARE_VALUE 1
|
||||
|
||||
#define ACPI_RSC_TABLE_SIZE(d) (sizeof (d) / sizeof (struct acpi_rsconvert_info))
|
||||
|
||||
#define ACPI_RS_OFFSET(f) (u8) ACPI_OFFSET (struct acpi_resource,f)
|
||||
#define AML_OFFSET(f) (u8) ACPI_OFFSET (union aml_resource,f)
|
||||
|
||||
typedef const struct acpi_rsdump_info {
|
||||
u8 opcode;
|
||||
u8 offset;
|
||||
char *name;
|
||||
const char **pointer;
|
||||
|
||||
} acpi_rsdump_info;
|
||||
|
||||
/* Values for the Opcode field above */
|
||||
|
||||
#define ACPI_RSD_TITLE 0
|
||||
#define ACPI_RSD_LITERAL 1
|
||||
#define ACPI_RSD_STRING 2
|
||||
#define ACPI_RSD_UINT8 3
|
||||
#define ACPI_RSD_UINT16 4
|
||||
#define ACPI_RSD_UINT32 5
|
||||
#define ACPI_RSD_UINT64 6
|
||||
#define ACPI_RSD_1BITFLAG 7
|
||||
#define ACPI_RSD_2BITFLAG 8
|
||||
#define ACPI_RSD_SHORTLIST 9
|
||||
#define ACPI_RSD_LONGLIST 10
|
||||
#define ACPI_RSD_DWORDLIST 11
|
||||
#define ACPI_RSD_ADDRESS 12
|
||||
#define ACPI_RSD_SOURCE 13
|
||||
|
||||
/* restore default alignment */
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/* Resource tables indexed by internal resource type */
|
||||
|
||||
extern const u8 acpi_gbl_aml_resource_sizes[];
|
||||
extern struct acpi_rsconvert_info *acpi_gbl_set_resource_dispatch[];
|
||||
|
||||
/* Resource tables indexed by raw AML resource descriptor type */
|
||||
|
||||
extern const u8 acpi_gbl_resource_struct_sizes[];
|
||||
extern struct acpi_rsconvert_info *acpi_gbl_get_resource_dispatch[];
|
||||
|
||||
struct acpi_vendor_walk_info {
|
||||
struct acpi_vendor_uuid *uuid;
|
||||
struct acpi_buffer *buffer;
|
||||
acpi_status status;
|
||||
};
|
||||
|
||||
/*
|
||||
* rscreate
|
||||
*/
|
||||
acpi_status
|
||||
acpi_rs_create_resource_list(union acpi_operand_object *aml_buffer,
|
||||
struct acpi_buffer *output_buffer);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer,
|
||||
struct acpi_buffer *output_buffer);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
|
||||
struct acpi_buffer *output_buffer);
|
||||
|
||||
/*
|
||||
* rsutils
|
||||
*/
|
||||
acpi_status
|
||||
acpi_rs_get_prt_method_data(acpi_handle handle, struct acpi_buffer *ret_buffer);
|
||||
@@ -65,195 +182,146 @@ acpi_rs_get_method_data(acpi_handle handle,
|
||||
acpi_status
|
||||
acpi_rs_set_srs_method_data(acpi_handle handle, struct acpi_buffer *ret_buffer);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_create_resource_list(union acpi_operand_object *byte_stream_buffer,
|
||||
struct acpi_buffer *output_buffer);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_create_byte_stream(struct acpi_resource *linked_list_buffer,
|
||||
struct acpi_buffer *output_buffer);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
|
||||
struct acpi_buffer *output_buffer);
|
||||
|
||||
/*
|
||||
* rsdump
|
||||
*/
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
void acpi_rs_dump_resource_list(struct acpi_resource *resource);
|
||||
|
||||
void acpi_rs_dump_irq_list(u8 * route_table);
|
||||
#endif /* ACPI_FUTURE_USAGE */
|
||||
|
||||
/*
|
||||
* rscalc
|
||||
*/
|
||||
acpi_status
|
||||
acpi_rs_get_byte_stream_start(u8 * byte_stream_buffer,
|
||||
u8 ** byte_stream_start, u32 * size);
|
||||
acpi_rs_get_list_length(u8 * aml_buffer,
|
||||
u32 aml_buffer_length, acpi_size * size_needed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_get_list_length(u8 * byte_stream_buffer,
|
||||
u32 byte_stream_buffer_length, acpi_size * size_needed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_get_byte_stream_length(struct acpi_resource *linked_list_buffer,
|
||||
acpi_size * size_needed);
|
||||
acpi_rs_get_aml_length(struct acpi_resource *linked_list_buffer,
|
||||
acpi_size * size_needed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_get_pci_routing_table_length(union acpi_operand_object *package_object,
|
||||
acpi_size * buffer_size_needed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_byte_stream_to_list(u8 * byte_stream_buffer,
|
||||
u32 byte_stream_buffer_length, u8 * output_buffer);
|
||||
acpi_rs_convert_aml_to_resources(u8 * aml_buffer,
|
||||
u32 aml_buffer_length, u8 * output_buffer);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_list_to_byte_stream(struct acpi_resource *linked_list,
|
||||
acpi_size byte_stream_size_needed,
|
||||
u8 * output_buffer);
|
||||
acpi_rs_convert_resources_to_aml(struct acpi_resource *resource,
|
||||
acpi_size aml_size_needed, u8 * output_buffer);
|
||||
|
||||
/*
|
||||
* rsaddr
|
||||
*/
|
||||
void
|
||||
acpi_rs_set_address_common(union aml_resource *aml,
|
||||
struct acpi_resource *resource);
|
||||
|
||||
u8
|
||||
acpi_rs_get_address_common(struct acpi_resource *resource,
|
||||
union aml_resource *aml);
|
||||
|
||||
/*
|
||||
* rsmisc
|
||||
*/
|
||||
acpi_status
|
||||
acpi_rs_convert_aml_to_resource(struct acpi_resource *resource,
|
||||
union aml_resource *aml,
|
||||
struct acpi_rsconvert_info *info);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_io_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
acpi_rs_convert_resource_to_aml(struct acpi_resource *resource,
|
||||
union aml_resource *aml,
|
||||
struct acpi_rsconvert_info *info);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_fixed_io_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
/*
|
||||
* rsutils
|
||||
*/
|
||||
void
|
||||
acpi_rs_move_data(void *destination,
|
||||
void *source, u16 item_count, u8 move_type);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_io_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
u8 acpi_rs_decode_bitmask(u16 mask, u8 * list);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_fixed_io_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
u16 acpi_rs_encode_bitmask(u8 * list, u8 count);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_irq_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
acpi_rs_length
|
||||
acpi_rs_get_resource_source(acpi_rs_length resource_length,
|
||||
acpi_rs_length minimum_length,
|
||||
struct acpi_resource_source *resource_source,
|
||||
union aml_resource *aml, char *string_ptr);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_irq_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
acpi_rsdesc_size
|
||||
acpi_rs_set_resource_source(union aml_resource *aml,
|
||||
acpi_rs_length minimum_length,
|
||||
struct acpi_resource_source *resource_source);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_dma_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
void
|
||||
acpi_rs_set_resource_header(u8 descriptor_type,
|
||||
acpi_rsdesc_size total_length,
|
||||
union aml_resource *aml);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_dma_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
void
|
||||
acpi_rs_set_resource_length(acpi_rsdesc_size total_length,
|
||||
union aml_resource *aml);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_address16_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
/*
|
||||
* rsdump
|
||||
*/
|
||||
void acpi_rs_dump_resource_list(struct acpi_resource *resource);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_address16_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
void acpi_rs_dump_irq_list(u8 * route_table);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_address32_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
/*
|
||||
* Resource conversion tables
|
||||
*/
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_dma[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_end_dpf[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_io[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_fixed_io[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_end_tag[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_memory24[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_generic_reg[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_memory32[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_fixed_memory32[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_address32[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_address16[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_ext_irq[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_address64[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_convert_ext_address64[];
|
||||
|
||||
acpi_status
|
||||
acpi_rs_address32_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
/* These resources require separate get/set tables */
|
||||
|
||||
acpi_status
|
||||
acpi_rs_address64_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
extern struct acpi_rsconvert_info acpi_rs_get_irq[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_get_start_dpf[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_get_vendor_small[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_get_vendor_large[];
|
||||
|
||||
acpi_status
|
||||
acpi_rs_address64_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
extern struct acpi_rsconvert_info acpi_rs_set_irq[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_set_start_dpf[];
|
||||
extern struct acpi_rsconvert_info acpi_rs_set_vendor[];
|
||||
|
||||
acpi_status
|
||||
acpi_rs_start_depend_fns_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer,
|
||||
acpi_size * structure_size);
|
||||
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
|
||||
/*
|
||||
* rsinfo
|
||||
*/
|
||||
extern struct acpi_rsdump_info *acpi_gbl_dump_resource_dispatch[];
|
||||
|
||||
acpi_status
|
||||
acpi_rs_end_depend_fns_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer,
|
||||
acpi_size * structure_size);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_start_depend_fns_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer,
|
||||
acpi_size * bytes_consumed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_end_depend_fns_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_memory24_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_memory24_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_memory32_range_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer,
|
||||
acpi_size * structure_size);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_fixed_memory32_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer,
|
||||
acpi_size * structure_size);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_memory32_range_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_fixed_memory32_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_extended_irq_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_extended_irq_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_end_tag_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_end_tag_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_vendor_resource(u8 * byte_stream_buffer,
|
||||
acpi_size * bytes_consumed,
|
||||
u8 ** output_buffer, acpi_size * structure_size);
|
||||
|
||||
acpi_status
|
||||
acpi_rs_vendor_stream(struct acpi_resource *linked_list,
|
||||
u8 ** output_buffer, acpi_size * bytes_consumed);
|
||||
|
||||
u8 acpi_rs_get_resource_type(u8 resource_start_byte);
|
||||
/*
|
||||
* rsdump
|
||||
*/
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_irq[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_dma[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_start_dpf[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_end_dpf[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_io[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_fixed_io[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_vendor[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_end_tag[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_memory24[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_memory32[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_fixed_memory32[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_address16[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_address32[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_address64[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_ext_address64[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_ext_irq[];
|
||||
extern struct acpi_rsdump_info acpi_rs_dump_generic_reg[];
|
||||
#endif
|
||||
|
||||
#endif /* __ACRESRC_H__ */
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -44,6 +44,12 @@
|
||||
#ifndef __ACTBL_H__
|
||||
#define __ACTBL_H__
|
||||
|
||||
/*
|
||||
* Note about bitfields: The u8 type is used for bitfields in ACPI tables.
|
||||
* This is the only type that is even remotely portable. Anything else is not
|
||||
* portable, so do not use any other bitfield types.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Values for description table header signatures
|
||||
*/
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -44,7 +44,15 @@
|
||||
#ifndef __ACTYPES_H__
|
||||
#define __ACTYPES_H__
|
||||
|
||||
/*! [Begin] no source code translation (keep the typedefs) */
|
||||
/*
|
||||
* ACPI_MACHINE_WIDTH must be specified in an OS- or compiler-dependent header
|
||||
* and must be either 16, 32, or 64
|
||||
*/
|
||||
#ifndef ACPI_MACHINE_WIDTH
|
||||
#error ACPI_MACHINE_WIDTH not defined
|
||||
#endif
|
||||
|
||||
/*! [Begin] no source code translation */
|
||||
|
||||
/*
|
||||
* Data type ranges
|
||||
@@ -58,87 +66,150 @@
|
||||
#define ACPI_UINT64_MAX (UINT64)(~((UINT64) 0)) /* 0xFFFFFFFFFFFFFFFF */
|
||||
#define ACPI_ASCII_MAX 0x7F
|
||||
|
||||
#ifdef DEFINE_ALTERNATE_TYPES
|
||||
/*
|
||||
* Types used only in translated source, defined here to enable
|
||||
* cross-platform compilation only.
|
||||
*/
|
||||
typedef int s32;
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned short u16;
|
||||
typedef unsigned int u32;
|
||||
typedef COMPILER_DEPENDENT_UINT64 u64;
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Data types - Fixed across all compilation models (16/32/64)
|
||||
* Architecture-specific ACPICA Subsystem Data Types
|
||||
*
|
||||
* The goal of these types is to provide source code portability across
|
||||
* 16-bit, 32-bit, and 64-bit targets.
|
||||
*
|
||||
* 1) The following types are of fixed size for all targets (16/32/64):
|
||||
*
|
||||
* BOOLEAN Logical boolean
|
||||
*
|
||||
* UINT8 8-bit (1 byte) unsigned value
|
||||
* UINT16 16-bit (2 byte) unsigned value
|
||||
* UINT32 32-bit (4 byte) unsigned value
|
||||
* UINT64 64-bit (8 byte) unsigned value
|
||||
*
|
||||
* INT16 16-bit (2 byte) signed value
|
||||
* INT32 32-bit (4 byte) signed value
|
||||
* INT64 64-bit (8 byte) signed value
|
||||
*
|
||||
* COMPILER_DEPENDENT_UINT64/INT64 - These types are defined in the
|
||||
* compiler-dependent header(s) and were introduced because there is no common
|
||||
* 64-bit integer type across the various compilation models, as shown in
|
||||
* the table below.
|
||||
*
|
||||
* Datatype LP64 ILP64 LLP64 ILP32 LP32 16bit
|
||||
* char 8 8 8 8 8 8
|
||||
* short 16 16 16 16 16 16
|
||||
* _int32 32
|
||||
* int 32 64 32 32 16 16
|
||||
* long 64 64 32 32 32 32
|
||||
* long long 64 64
|
||||
* pointer 64 64 64 32 32 32
|
||||
*
|
||||
* Note: ILP64 and LP32 are currently not supported.
|
||||
*
|
||||
*
|
||||
* 2) These types represent the native word size of the target mode of the
|
||||
* processor, and may be 16-bit, 32-bit, or 64-bit as required. They are
|
||||
* usually used for memory allocation, efficient loop counters, and array
|
||||
* indexes. The types are similar to the size_t type in the C library and are
|
||||
* required because there is no C type that consistently represents the native
|
||||
* data width.
|
||||
*
|
||||
* ACPI_SIZE 16/32/64-bit unsigned value
|
||||
* ACPI_NATIVE_UINT 16/32/64-bit unsigned value
|
||||
* ACPI_NATIVE_INT 16/32/64-bit signed value
|
||||
*
|
||||
* BOOLEAN Logical Boolean.
|
||||
* INT8 8-bit (1 byte) signed value
|
||||
* UINT8 8-bit (1 byte) unsigned value
|
||||
* INT16 16-bit (2 byte) signed value
|
||||
* UINT16 16-bit (2 byte) unsigned value
|
||||
* INT32 32-bit (4 byte) signed value
|
||||
* UINT32 32-bit (4 byte) unsigned value
|
||||
* INT64 64-bit (8 byte) signed value
|
||||
* UINT64 64-bit (8 byte) unsigned value
|
||||
* ACPI_NATIVE_INT 32-bit on IA-32, 64-bit on IA-64 signed value
|
||||
* ACPI_NATIVE_UINT 32-bit on IA-32, 64-bit on IA-64 unsigned value
|
||||
*/
|
||||
|
||||
#ifndef ACPI_MACHINE_WIDTH
|
||||
#error ACPI_MACHINE_WIDTH not defined
|
||||
#endif
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Common types for all compilers, all targets
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 64
|
||||
|
||||
/*! [Begin] no source code translation (keep the typedefs) */
|
||||
|
||||
/*
|
||||
* 64-bit type definitions
|
||||
*/
|
||||
typedef unsigned char UINT8;
|
||||
typedef unsigned char BOOLEAN;
|
||||
typedef unsigned char UINT8;
|
||||
typedef unsigned short UINT16;
|
||||
typedef int INT32;
|
||||
typedef unsigned int UINT32;
|
||||
typedef COMPILER_DEPENDENT_INT64 INT64;
|
||||
typedef COMPILER_DEPENDENT_UINT64 UINT64;
|
||||
typedef COMPILER_DEPENDENT_INT64 INT64;
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Types specific to 64-bit targets
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 64
|
||||
|
||||
/*! [Begin] no source code translation (keep the typedefs as-is) */
|
||||
|
||||
typedef unsigned int UINT32;
|
||||
typedef int INT32;
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
typedef s64 acpi_native_int;
|
||||
typedef u64 acpi_native_uint;
|
||||
typedef s64 acpi_native_int;
|
||||
|
||||
typedef u64 acpi_table_ptr;
|
||||
typedef u64 acpi_io_address;
|
||||
typedef u64 acpi_physical_address;
|
||||
typedef u64 acpi_size;
|
||||
|
||||
#define ALIGNED_ADDRESS_BOUNDARY 0x00000008 /* No hardware alignment support in IA64 */
|
||||
#define ACPI_USE_NATIVE_DIVIDE /* Native 64-bit integer support */
|
||||
#define ACPI_MAX_PTR ACPI_UINT64_MAX
|
||||
#define ACPI_SIZE_MAX ACPI_UINT64_MAX
|
||||
|
||||
#elif ACPI_MACHINE_WIDTH == 16
|
||||
|
||||
/*! [Begin] no source code translation (keep the typedefs) */
|
||||
#define ALIGNED_ADDRESS_BOUNDARY 0x00000008
|
||||
#define ACPI_USE_NATIVE_DIVIDE /* Has native 64-bit integer support */
|
||||
|
||||
/*
|
||||
* 16-bit type definitions
|
||||
* In the case of the Itanium Processor Family (IPF), the hardware does not
|
||||
* support misaligned memory transfers. Set the MISALIGNMENT_NOT_SUPPORTED flag
|
||||
* to indicate that special precautions must be taken to avoid alignment faults.
|
||||
* (IA64 or ia64 is currently used by existing compilers to indicate IPF.)
|
||||
*
|
||||
* Note: Em64_t and other X86-64 processors support misaligned transfers,
|
||||
* so there is no need to define this flag.
|
||||
*/
|
||||
typedef unsigned char UINT8;
|
||||
typedef unsigned char BOOLEAN;
|
||||
typedef unsigned int UINT16;
|
||||
typedef long INT32;
|
||||
typedef int INT16;
|
||||
typedef unsigned long UINT32;
|
||||
#if defined (__IA64__) || defined (__ia64__)
|
||||
#define ACPI_MISALIGNMENT_NOT_SUPPORTED
|
||||
#endif
|
||||
|
||||
struct {
|
||||
UINT32 Lo;
|
||||
UINT32 Hi;
|
||||
};
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Types specific to 32-bit targets
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#elif ACPI_MACHINE_WIDTH == 32
|
||||
|
||||
/*! [Begin] no source code translation (keep the typedefs as-is) */
|
||||
|
||||
typedef unsigned int UINT32;
|
||||
typedef int INT32;
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
typedef u32 acpi_native_uint;
|
||||
typedef s32 acpi_native_int;
|
||||
|
||||
typedef u64 acpi_table_ptr;
|
||||
typedef u32 acpi_io_address;
|
||||
typedef u64 acpi_physical_address;
|
||||
|
||||
#define ACPI_MAX_PTR ACPI_UINT32_MAX
|
||||
#define ACPI_SIZE_MAX ACPI_UINT32_MAX
|
||||
|
||||
#define ALIGNED_ADDRESS_BOUNDARY 0x00000004
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Types specific to 16-bit targets
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#elif ACPI_MACHINE_WIDTH == 16
|
||||
|
||||
/*! [Begin] no source code translation (keep the typedefs as-is) */
|
||||
|
||||
typedef unsigned long UINT32;
|
||||
typedef short INT16;
|
||||
typedef long INT32;
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
@@ -148,61 +219,57 @@ typedef s16 acpi_native_int;
|
||||
typedef u32 acpi_table_ptr;
|
||||
typedef u32 acpi_io_address;
|
||||
typedef char *acpi_physical_address;
|
||||
typedef u16 acpi_size;
|
||||
|
||||
#define ALIGNED_ADDRESS_BOUNDARY 0x00000002
|
||||
#define ACPI_MISALIGNED_TRANSFERS
|
||||
#define ACPI_USE_NATIVE_DIVIDE /* No 64-bit integers, ok to use native divide */
|
||||
#define ACPI_MAX_PTR ACPI_UINT16_MAX
|
||||
#define ACPI_SIZE_MAX ACPI_UINT16_MAX
|
||||
|
||||
/*
|
||||
* (16-bit only) internal integers must be 32-bits, so
|
||||
* 64-bit integers cannot be supported
|
||||
*/
|
||||
#define ALIGNED_ADDRESS_BOUNDARY 0x00000002
|
||||
#define ACPI_USE_NATIVE_DIVIDE /* No 64-bit integers, ok to use native divide */
|
||||
|
||||
/* 64-bit integers cannot be supported */
|
||||
|
||||
#define ACPI_NO_INTEGER64_SUPPORT
|
||||
|
||||
#elif ACPI_MACHINE_WIDTH == 32
|
||||
|
||||
/*! [Begin] no source code translation (keep the typedefs) */
|
||||
|
||||
/*
|
||||
* 32-bit type definitions (default)
|
||||
*/
|
||||
typedef unsigned char UINT8;
|
||||
typedef unsigned char BOOLEAN;
|
||||
typedef unsigned short UINT16;
|
||||
typedef int INT32;
|
||||
typedef unsigned int UINT32;
|
||||
typedef COMPILER_DEPENDENT_INT64 INT64;
|
||||
typedef COMPILER_DEPENDENT_UINT64 UINT64;
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
typedef s32 acpi_native_int;
|
||||
typedef u32 acpi_native_uint;
|
||||
|
||||
typedef u64 acpi_table_ptr;
|
||||
typedef u32 acpi_io_address;
|
||||
typedef u64 acpi_physical_address;
|
||||
typedef u32 acpi_size;
|
||||
|
||||
#define ALIGNED_ADDRESS_BOUNDARY 0x00000004
|
||||
#define ACPI_MISALIGNED_TRANSFERS
|
||||
#define ACPI_MAX_PTR ACPI_UINT32_MAX
|
||||
#define ACPI_SIZE_MAX ACPI_UINT32_MAX
|
||||
|
||||
#else
|
||||
|
||||
/* ACPI_MACHINE_WIDTH must be either 64, 32, or 16 */
|
||||
|
||||
#error unknown ACPI_MACHINE_WIDTH
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* OS- or compiler-dependent types
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* This type is used for bitfields in ACPI tables. The only type that is
|
||||
* even remotely portable is u8. Anything else is not portable, so
|
||||
* do not add any more bitfield types.
|
||||
* If acpi_uintptr_t was not defined in the OS- or compiler-dependent header,
|
||||
* define it now (use C99 uintptr_t for pointer casting if available,
|
||||
* "void *" otherwise)
|
||||
*/
|
||||
typedef u8 UINT8_BIT;
|
||||
typedef acpi_native_uint ACPI_PTRDIFF;
|
||||
#ifndef acpi_uintptr_t
|
||||
#define acpi_uintptr_t void *
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If acpi_cache_t was not defined in the OS-dependent header,
|
||||
* define it now. This is typically the case where the local cache
|
||||
* manager implementation is to be used (ACPI_USE_LOCAL_CACHE)
|
||||
*/
|
||||
#ifndef acpi_cache_t
|
||||
#define acpi_cache_t struct acpi_memory_list
|
||||
#endif
|
||||
|
||||
/* Variable-width type, used instead of clib size_t */
|
||||
|
||||
typedef acpi_native_uint acpi_size;
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Independent types
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* Pointer overlays to avoid lots of typecasting for
|
||||
@@ -234,18 +301,8 @@ struct acpi_pointer {
|
||||
#define ACPI_LOGMODE_PHYSPTR ACPI_LOGICAL_ADDRESSING | ACPI_PHYSICAL_POINTER
|
||||
#define ACPI_LOGMODE_LOGPTR ACPI_LOGICAL_ADDRESSING | ACPI_LOGICAL_POINTER
|
||||
|
||||
/*
|
||||
* If acpi_cache_t was not defined in the OS-dependent header,
|
||||
* define it now. This is typically the case where the local cache
|
||||
* manager implementation is to be used (ACPI_USE_LOCAL_CACHE)
|
||||
*/
|
||||
#ifndef acpi_cache_t
|
||||
#define acpi_cache_t struct acpi_memory_list
|
||||
#endif
|
||||
/* Logical defines and NULL */
|
||||
|
||||
/*
|
||||
* Useful defines
|
||||
*/
|
||||
#ifdef FALSE
|
||||
#undef FALSE
|
||||
#endif
|
||||
@@ -261,12 +318,12 @@ struct acpi_pointer {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Local datatypes
|
||||
* Mescellaneous types
|
||||
*/
|
||||
typedef u32 acpi_status; /* All ACPI Exceptions */
|
||||
typedef u32 acpi_name; /* 4-byte ACPI name */
|
||||
typedef char *acpi_string; /* Null terminated ASCII string */
|
||||
typedef void *acpi_handle; /* Actually a ptr to an Node */
|
||||
typedef void *acpi_handle; /* Actually a ptr to a NS Node */
|
||||
|
||||
struct uint64_struct {
|
||||
u32 lo;
|
||||
@@ -323,7 +380,7 @@ typedef u64 acpi_integer;
|
||||
/*
|
||||
* Constants with special meanings
|
||||
*/
|
||||
#define ACPI_ROOT_OBJECT (acpi_handle) ACPI_PTR_ADD (char, NULL, ACPI_MAX_PTR)
|
||||
#define ACPI_ROOT_OBJECT ACPI_ADD_PTR (acpi_handle, NULL, ACPI_MAX_PTR)
|
||||
|
||||
/*
|
||||
* Initialization sequence
|
||||
@@ -469,37 +526,6 @@ typedef u32 acpi_object_type;
|
||||
#define ACPI_TYPE_INVALID 0x1E
|
||||
#define ACPI_TYPE_NOT_FOUND 0xFF
|
||||
|
||||
/*
|
||||
* Bitmapped ACPI types. Used internally only
|
||||
*/
|
||||
#define ACPI_BTYPE_ANY 0x00000000
|
||||
#define ACPI_BTYPE_INTEGER 0x00000001
|
||||
#define ACPI_BTYPE_STRING 0x00000002
|
||||
#define ACPI_BTYPE_BUFFER 0x00000004
|
||||
#define ACPI_BTYPE_PACKAGE 0x00000008
|
||||
#define ACPI_BTYPE_FIELD_UNIT 0x00000010
|
||||
#define ACPI_BTYPE_DEVICE 0x00000020
|
||||
#define ACPI_BTYPE_EVENT 0x00000040
|
||||
#define ACPI_BTYPE_METHOD 0x00000080
|
||||
#define ACPI_BTYPE_MUTEX 0x00000100
|
||||
#define ACPI_BTYPE_REGION 0x00000200
|
||||
#define ACPI_BTYPE_POWER 0x00000400
|
||||
#define ACPI_BTYPE_PROCESSOR 0x00000800
|
||||
#define ACPI_BTYPE_THERMAL 0x00001000
|
||||
#define ACPI_BTYPE_BUFFER_FIELD 0x00002000
|
||||
#define ACPI_BTYPE_DDB_HANDLE 0x00004000
|
||||
#define ACPI_BTYPE_DEBUG_OBJECT 0x00008000
|
||||
#define ACPI_BTYPE_REFERENCE 0x00010000
|
||||
#define ACPI_BTYPE_RESOURCE 0x00020000
|
||||
|
||||
#define ACPI_BTYPE_COMPUTE_DATA (ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER)
|
||||
|
||||
#define ACPI_BTYPE_DATA (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_PACKAGE)
|
||||
#define ACPI_BTYPE_DATA_REFERENCE (ACPI_BTYPE_DATA | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE)
|
||||
#define ACPI_BTYPE_DEVICE_OBJECTS (ACPI_BTYPE_DEVICE | ACPI_BTYPE_THERMAL | ACPI_BTYPE_PROCESSOR)
|
||||
#define ACPI_BTYPE_OBJECTS_AND_REFS 0x0001FFFF /* ARG or LOCAL */
|
||||
#define ACPI_BTYPE_ALL_OBJECTS 0x0000FFFF
|
||||
|
||||
/*
|
||||
* All I/O
|
||||
*/
|
||||
@@ -853,6 +879,14 @@ struct acpi_compatible_id_list {
|
||||
#define ACPI_VALID_CID 0x0010
|
||||
#define ACPI_VALID_SXDS 0x0020
|
||||
|
||||
/* Flags for _STA method */
|
||||
|
||||
#define ACPI_STA_DEVICE_PRESENT 0x01
|
||||
#define ACPI_STA_DEVICE_ENABLED 0x02
|
||||
#define ACPI_STA_DEVICE_UI 0x04
|
||||
#define ACPI_STA_DEVICE_OK 0x08
|
||||
#define ACPI_STA_BATTERY_PRESENT 0x10
|
||||
|
||||
#define ACPI_COMMON_OBJ_INFO \
|
||||
acpi_object_type type; /* ACPI object type */ \
|
||||
acpi_name name /* ACPI object Name */
|
||||
@@ -895,6 +929,8 @@ struct acpi_mem_space_context {
|
||||
/*
|
||||
* Definitions for Resource Attributes
|
||||
*/
|
||||
typedef u16 acpi_rs_length; /* Resource Length field is fixed at 16 bits */
|
||||
typedef u32 acpi_rsdesc_size; /* Max Resource Descriptor size is (length+3) = (64_k-1)+3 */
|
||||
|
||||
/*
|
||||
* Memory Attributes
|
||||
@@ -916,7 +952,9 @@ struct acpi_mem_space_context {
|
||||
#define ACPI_ISA_ONLY_RANGES (u8) 0x02
|
||||
#define ACPI_ENTIRE_RANGE (ACPI_NON_ISA_ONLY_RANGES | ACPI_ISA_ONLY_RANGES)
|
||||
|
||||
#define ACPI_SPARSE_TRANSLATION (u8) 0x03
|
||||
/* Type of translation - 1=Sparse, 0=Dense */
|
||||
|
||||
#define ACPI_SPARSE_TRANSLATION (u8) 0x01
|
||||
|
||||
/*
|
||||
* IO Port Descriptor Decode
|
||||
@@ -927,8 +965,8 @@ struct acpi_mem_space_context {
|
||||
/*
|
||||
* IRQ Attributes
|
||||
*/
|
||||
#define ACPI_EDGE_SENSITIVE (u8) 0x00
|
||||
#define ACPI_LEVEL_SENSITIVE (u8) 0x01
|
||||
#define ACPI_LEVEL_SENSITIVE (u8) 0x00
|
||||
#define ACPI_EDGE_SENSITIVE (u8) 0x01
|
||||
|
||||
#define ACPI_ACTIVE_HIGH (u8) 0x00
|
||||
#define ACPI_ACTIVE_LOW (u8) 0x01
|
||||
@@ -974,28 +1012,46 @@ struct acpi_mem_space_context {
|
||||
#define ACPI_PRODUCER (u8) 0x00
|
||||
#define ACPI_CONSUMER (u8) 0x01
|
||||
|
||||
/*
|
||||
* If possible, pack the following structures to byte alignment
|
||||
*/
|
||||
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
|
||||
#pragma pack(1)
|
||||
#endif
|
||||
|
||||
/* UUID data structures for use in vendor-defined resource descriptors */
|
||||
|
||||
struct acpi_uuid {
|
||||
u8 data[ACPI_UUID_LENGTH];
|
||||
};
|
||||
|
||||
struct acpi_vendor_uuid {
|
||||
u8 subtype;
|
||||
u8 data[ACPI_UUID_LENGTH];
|
||||
};
|
||||
|
||||
/*
|
||||
* Structures used to describe device resources
|
||||
*/
|
||||
struct acpi_resource_irq {
|
||||
u32 edge_level;
|
||||
u32 active_high_low;
|
||||
u32 shared_exclusive;
|
||||
u32 number_of_interrupts;
|
||||
u32 interrupts[1];
|
||||
u8 triggering;
|
||||
u8 polarity;
|
||||
u8 sharable;
|
||||
u8 interrupt_count;
|
||||
u8 interrupts[1];
|
||||
};
|
||||
|
||||
struct acpi_resource_dma {
|
||||
u32 type;
|
||||
u32 bus_master;
|
||||
u32 transfer;
|
||||
u32 number_of_channels;
|
||||
u32 channels[1];
|
||||
u8 type;
|
||||
u8 bus_master;
|
||||
u8 transfer;
|
||||
u8 channel_count;
|
||||
u8 channels[1];
|
||||
};
|
||||
|
||||
struct acpi_resource_start_dpf {
|
||||
u32 compatibility_priority;
|
||||
u32 performance_robustness;
|
||||
struct acpi_resource_start_dependent {
|
||||
u8 compatibility_priority;
|
||||
u8 performance_robustness;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -1004,179 +1060,217 @@ struct acpi_resource_start_dpf {
|
||||
*/
|
||||
|
||||
struct acpi_resource_io {
|
||||
u32 io_decode;
|
||||
u32 min_base_address;
|
||||
u32 max_base_address;
|
||||
u32 alignment;
|
||||
u32 range_length;
|
||||
u8 io_decode;
|
||||
u8 alignment;
|
||||
u8 address_length;
|
||||
u16 minimum;
|
||||
u16 maximum;
|
||||
};
|
||||
|
||||
struct acpi_resource_fixed_io {
|
||||
u32 base_address;
|
||||
u32 range_length;
|
||||
u16 address;
|
||||
u8 address_length;
|
||||
};
|
||||
|
||||
struct acpi_resource_vendor {
|
||||
u32 length;
|
||||
u8 reserved[1];
|
||||
u16 byte_length;
|
||||
u8 byte_data[1];
|
||||
};
|
||||
|
||||
/* Vendor resource with UUID info (introduced in ACPI 3.0) */
|
||||
|
||||
struct acpi_resource_vendor_typed {
|
||||
u16 byte_length;
|
||||
u8 uuid_subtype;
|
||||
u8 uuid[ACPI_UUID_LENGTH];
|
||||
u8 byte_data[1];
|
||||
};
|
||||
|
||||
struct acpi_resource_end_tag {
|
||||
u8 checksum;
|
||||
};
|
||||
|
||||
struct acpi_resource_mem24 {
|
||||
u32 read_write_attribute;
|
||||
u32 min_base_address;
|
||||
u32 max_base_address;
|
||||
u32 alignment;
|
||||
u32 range_length;
|
||||
struct acpi_resource_memory24 {
|
||||
u8 write_protect;
|
||||
u16 minimum;
|
||||
u16 maximum;
|
||||
u16 alignment;
|
||||
u16 address_length;
|
||||
};
|
||||
|
||||
struct acpi_resource_mem32 {
|
||||
u32 read_write_attribute;
|
||||
u32 min_base_address;
|
||||
u32 max_base_address;
|
||||
struct acpi_resource_memory32 {
|
||||
u8 write_protect;
|
||||
u32 minimum;
|
||||
u32 maximum;
|
||||
u32 alignment;
|
||||
u32 range_length;
|
||||
u32 address_length;
|
||||
};
|
||||
|
||||
struct acpi_resource_fixed_mem32 {
|
||||
u32 read_write_attribute;
|
||||
u32 range_base_address;
|
||||
u32 range_length;
|
||||
struct acpi_resource_fixed_memory32 {
|
||||
u8 write_protect;
|
||||
u32 address;
|
||||
u32 address_length;
|
||||
};
|
||||
|
||||
struct acpi_memory_attribute {
|
||||
u16 cache_attribute;
|
||||
u16 read_write_attribute;
|
||||
u8 write_protect;
|
||||
u8 caching;
|
||||
u8 range_type;
|
||||
u8 translation;
|
||||
};
|
||||
|
||||
struct acpi_io_attribute {
|
||||
u16 range_attribute;
|
||||
u16 translation_attribute;
|
||||
};
|
||||
|
||||
struct acpi_bus_attribute {
|
||||
u16 reserved1;
|
||||
u16 reserved2;
|
||||
u8 range_type;
|
||||
u8 translation;
|
||||
u8 translation_type;
|
||||
u8 reserved1;
|
||||
};
|
||||
|
||||
union acpi_resource_attribute {
|
||||
struct acpi_memory_attribute memory;
|
||||
struct acpi_memory_attribute mem;
|
||||
struct acpi_io_attribute io;
|
||||
struct acpi_bus_attribute bus;
|
||||
|
||||
/* Used for the *word_space macros */
|
||||
|
||||
u8 type_specific;
|
||||
};
|
||||
|
||||
struct acpi_resource_source {
|
||||
u32 index;
|
||||
u32 string_length;
|
||||
u8 index;
|
||||
u16 string_length;
|
||||
char *string_ptr;
|
||||
};
|
||||
|
||||
/* Fields common to all address descriptors, 16/32/64 bit */
|
||||
|
||||
#define ACPI_RESOURCE_ADDRESS_COMMON \
|
||||
u32 resource_type; \
|
||||
u32 producer_consumer; \
|
||||
u32 decode; \
|
||||
u32 min_address_fixed; \
|
||||
u32 max_address_fixed; \
|
||||
union acpi_resource_attribute attribute;
|
||||
u8 resource_type; \
|
||||
u8 producer_consumer; \
|
||||
u8 decode; \
|
||||
u8 min_address_fixed; \
|
||||
u8 max_address_fixed; \
|
||||
union acpi_resource_attribute info;
|
||||
|
||||
struct acpi_resource_address {
|
||||
ACPI_RESOURCE_ADDRESS_COMMON};
|
||||
|
||||
struct acpi_resource_address16 {
|
||||
ACPI_RESOURCE_ADDRESS_COMMON u32 granularity;
|
||||
u32 min_address_range;
|
||||
u32 max_address_range;
|
||||
u32 address_translation_offset;
|
||||
u32 address_length;
|
||||
ACPI_RESOURCE_ADDRESS_COMMON u16 granularity;
|
||||
u16 minimum;
|
||||
u16 maximum;
|
||||
u16 translation_offset;
|
||||
u16 address_length;
|
||||
struct acpi_resource_source resource_source;
|
||||
};
|
||||
|
||||
struct acpi_resource_address32 {
|
||||
ACPI_RESOURCE_ADDRESS_COMMON u32 granularity;
|
||||
u32 min_address_range;
|
||||
u32 max_address_range;
|
||||
u32 address_translation_offset;
|
||||
u32 minimum;
|
||||
u32 maximum;
|
||||
u32 translation_offset;
|
||||
u32 address_length;
|
||||
struct acpi_resource_source resource_source;
|
||||
};
|
||||
|
||||
struct acpi_resource_address64 {
|
||||
ACPI_RESOURCE_ADDRESS_COMMON u64 granularity;
|
||||
u64 min_address_range;
|
||||
u64 max_address_range;
|
||||
u64 address_translation_offset;
|
||||
u64 minimum;
|
||||
u64 maximum;
|
||||
u64 translation_offset;
|
||||
u64 address_length;
|
||||
u64 type_specific_attributes;
|
||||
struct acpi_resource_source resource_source;
|
||||
};
|
||||
|
||||
struct acpi_resource_ext_irq {
|
||||
u32 producer_consumer;
|
||||
u32 edge_level;
|
||||
u32 active_high_low;
|
||||
u32 shared_exclusive;
|
||||
u32 number_of_interrupts;
|
||||
struct acpi_resource_extended_address64 {
|
||||
ACPI_RESOURCE_ADDRESS_COMMON u8 revision_iD;
|
||||
u64 granularity;
|
||||
u64 minimum;
|
||||
u64 maximum;
|
||||
u64 translation_offset;
|
||||
u64 address_length;
|
||||
u64 type_specific;
|
||||
};
|
||||
|
||||
struct acpi_resource_extended_irq {
|
||||
u8 producer_consumer;
|
||||
u8 triggering;
|
||||
u8 polarity;
|
||||
u8 sharable;
|
||||
u8 interrupt_count;
|
||||
struct acpi_resource_source resource_source;
|
||||
u32 interrupts[1];
|
||||
};
|
||||
|
||||
struct acpi_resource_generic_register {
|
||||
u8 space_id;
|
||||
u8 bit_width;
|
||||
u8 bit_offset;
|
||||
u8 access_size;
|
||||
u64 address;
|
||||
};
|
||||
|
||||
/* ACPI_RESOURCE_TYPEs */
|
||||
|
||||
#define ACPI_RSTYPE_IRQ 0
|
||||
#define ACPI_RSTYPE_DMA 1
|
||||
#define ACPI_RSTYPE_START_DPF 2
|
||||
#define ACPI_RSTYPE_END_DPF 3
|
||||
#define ACPI_RSTYPE_IO 4
|
||||
#define ACPI_RSTYPE_FIXED_IO 5
|
||||
#define ACPI_RSTYPE_VENDOR 6
|
||||
#define ACPI_RSTYPE_END_TAG 7
|
||||
#define ACPI_RSTYPE_MEM24 8
|
||||
#define ACPI_RSTYPE_MEM32 9
|
||||
#define ACPI_RSTYPE_FIXED_MEM32 10
|
||||
#define ACPI_RSTYPE_ADDRESS16 11
|
||||
#define ACPI_RSTYPE_ADDRESS32 12
|
||||
#define ACPI_RSTYPE_ADDRESS64 13
|
||||
#define ACPI_RSTYPE_EXT_IRQ 14
|
||||
|
||||
typedef u32 acpi_resource_type;
|
||||
#define ACPI_RESOURCE_TYPE_IRQ 0
|
||||
#define ACPI_RESOURCE_TYPE_DMA 1
|
||||
#define ACPI_RESOURCE_TYPE_START_DEPENDENT 2
|
||||
#define ACPI_RESOURCE_TYPE_END_DEPENDENT 3
|
||||
#define ACPI_RESOURCE_TYPE_IO 4
|
||||
#define ACPI_RESOURCE_TYPE_FIXED_IO 5
|
||||
#define ACPI_RESOURCE_TYPE_VENDOR 6
|
||||
#define ACPI_RESOURCE_TYPE_END_TAG 7
|
||||
#define ACPI_RESOURCE_TYPE_MEMORY24 8
|
||||
#define ACPI_RESOURCE_TYPE_MEMORY32 9
|
||||
#define ACPI_RESOURCE_TYPE_FIXED_MEMORY32 10
|
||||
#define ACPI_RESOURCE_TYPE_ADDRESS16 11
|
||||
#define ACPI_RESOURCE_TYPE_ADDRESS32 12
|
||||
#define ACPI_RESOURCE_TYPE_ADDRESS64 13
|
||||
#define ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 14 /* ACPI 3.0 */
|
||||
#define ACPI_RESOURCE_TYPE_EXTENDED_IRQ 15
|
||||
#define ACPI_RESOURCE_TYPE_GENERIC_REGISTER 16
|
||||
#define ACPI_RESOURCE_TYPE_MAX 16
|
||||
|
||||
union acpi_resource_data {
|
||||
struct acpi_resource_irq irq;
|
||||
struct acpi_resource_dma dma;
|
||||
struct acpi_resource_start_dpf start_dpf;
|
||||
struct acpi_resource_start_dependent start_dpf;
|
||||
struct acpi_resource_io io;
|
||||
struct acpi_resource_fixed_io fixed_io;
|
||||
struct acpi_resource_vendor vendor_specific;
|
||||
struct acpi_resource_vendor vendor;
|
||||
struct acpi_resource_vendor_typed vendor_typed;
|
||||
struct acpi_resource_end_tag end_tag;
|
||||
struct acpi_resource_mem24 memory24;
|
||||
struct acpi_resource_mem32 memory32;
|
||||
struct acpi_resource_fixed_mem32 fixed_memory32;
|
||||
struct acpi_resource_address address; /* Common 16/32/64 address fields */
|
||||
struct acpi_resource_memory24 memory24;
|
||||
struct acpi_resource_memory32 memory32;
|
||||
struct acpi_resource_fixed_memory32 fixed_memory32;
|
||||
struct acpi_resource_address16 address16;
|
||||
struct acpi_resource_address32 address32;
|
||||
struct acpi_resource_address64 address64;
|
||||
struct acpi_resource_ext_irq extended_irq;
|
||||
struct acpi_resource_extended_address64 ext_address64;
|
||||
struct acpi_resource_extended_irq extended_irq;
|
||||
struct acpi_resource_generic_register generic_reg;
|
||||
|
||||
/* Common fields */
|
||||
|
||||
struct acpi_resource_address address; /* Common 16/32/64 address fields */
|
||||
};
|
||||
|
||||
struct acpi_resource {
|
||||
acpi_resource_type id;
|
||||
u32 type;
|
||||
u32 length;
|
||||
union acpi_resource_data data;
|
||||
};
|
||||
|
||||
#define ACPI_RESOURCE_LENGTH 12
|
||||
#define ACPI_RESOURCE_LENGTH_NO_DATA 8 /* Id + Length fields */
|
||||
/* restore default alignment */
|
||||
|
||||
#define ACPI_SIZEOF_RESOURCE(type) (ACPI_RESOURCE_LENGTH_NO_DATA + sizeof (type))
|
||||
#pragma pack()
|
||||
|
||||
#define ACPI_RS_SIZE_MIN 12
|
||||
#define ACPI_RS_SIZE_NO_DATA 8 /* Id + Length fields */
|
||||
#define ACPI_RS_SIZE(type) (u32) (ACPI_RS_SIZE_NO_DATA + sizeof (type))
|
||||
|
||||
#define ACPI_NEXT_RESOURCE(res) (struct acpi_resource *)((u8 *) res + res->length)
|
||||
|
||||
#ifdef ACPI_MISALIGNED_TRANSFERS
|
||||
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
|
||||
#define ACPI_ALIGN_RESOURCE_SIZE(length) (length)
|
||||
#else
|
||||
#define ACPI_ALIGN_RESOURCE_SIZE(length) ACPI_ROUND_UP_TO_NATIVE_WORD(length)
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -44,6 +44,39 @@
|
||||
#ifndef _ACUTILS_H
|
||||
#define _ACUTILS_H
|
||||
|
||||
extern const u8 acpi_gbl_resource_aml_sizes[];
|
||||
|
||||
/* Strings used by the disassembler and debugger resource dump routines */
|
||||
|
||||
#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
|
||||
|
||||
extern const char *acpi_gbl_BMdecode[2];
|
||||
extern const char *acpi_gbl_config_decode[4];
|
||||
extern const char *acpi_gbl_consume_decode[2];
|
||||
extern const char *acpi_gbl_DECdecode[2];
|
||||
extern const char *acpi_gbl_HEdecode[2];
|
||||
extern const char *acpi_gbl_io_decode[2];
|
||||
extern const char *acpi_gbl_LLdecode[2];
|
||||
extern const char *acpi_gbl_max_decode[2];
|
||||
extern const char *acpi_gbl_MEMdecode[4];
|
||||
extern const char *acpi_gbl_min_decode[2];
|
||||
extern const char *acpi_gbl_MTPdecode[4];
|
||||
extern const char *acpi_gbl_RNGdecode[4];
|
||||
extern const char *acpi_gbl_RWdecode[2];
|
||||
extern const char *acpi_gbl_SHRdecode[2];
|
||||
extern const char *acpi_gbl_SIZdecode[4];
|
||||
extern const char *acpi_gbl_TRSdecode[2];
|
||||
extern const char *acpi_gbl_TTPdecode[2];
|
||||
extern const char *acpi_gbl_TYPdecode[4];
|
||||
#endif
|
||||
|
||||
/* Types for Resource descriptor entries */
|
||||
|
||||
#define ACPI_INVALID_RESOURCE 0
|
||||
#define ACPI_FIXED_LENGTH 1
|
||||
#define ACPI_VARIABLE_LENGTH 2
|
||||
#define ACPI_SMALL_VARIABLE_LENGTH 3
|
||||
|
||||
typedef
|
||||
acpi_status(*acpi_pkg_callback) (u8 object_type,
|
||||
union acpi_operand_object * source_object,
|
||||
@@ -159,7 +192,6 @@ extern const u8 _acpi_ctype[];
|
||||
#define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO))
|
||||
#define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU))
|
||||
#define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP))
|
||||
#define ACPI_IS_ASCII(c) ((c) < 0x80)
|
||||
|
||||
#endif /* ACPI_USE_SYSTEM_CLIBRARY */
|
||||
|
||||
@@ -243,12 +275,11 @@ acpi_ut_ptr_exit(u32 line_number,
|
||||
const char *function_name,
|
||||
char *module_name, u32 component_id, u8 * ptr);
|
||||
|
||||
void acpi_ut_report_info(char *module_name, u32 line_number, u32 component_id);
|
||||
void acpi_ut_report_error(char *module_name, u32 line_number);
|
||||
|
||||
void acpi_ut_report_error(char *module_name, u32 line_number, u32 component_id);
|
||||
void acpi_ut_report_info(char *module_name, u32 line_number);
|
||||
|
||||
void
|
||||
acpi_ut_report_warning(char *module_name, u32 line_number, u32 component_id);
|
||||
void acpi_ut_report_warning(char *module_name, u32 line_number);
|
||||
|
||||
void acpi_ut_dump_buffer(u8 * buffer, u32 count, u32 display, u32 component_id);
|
||||
|
||||
@@ -419,7 +450,19 @@ acpi_ut_strtoul64(char *string, u32 base, acpi_integer * ret_integer);
|
||||
|
||||
#define ACPI_ANY_BASE 0
|
||||
|
||||
u8 *acpi_ut_get_resource_end_tag(union acpi_operand_object *obj_desc);
|
||||
acpi_status acpi_ut_validate_resource(void *aml, u8 * return_index);
|
||||
|
||||
u32 acpi_ut_get_descriptor_length(void *aml);
|
||||
|
||||
u16 acpi_ut_get_resource_length(void *aml);
|
||||
|
||||
u8 acpi_ut_get_resource_header_length(void *aml);
|
||||
|
||||
u8 acpi_ut_get_resource_type(void *aml);
|
||||
|
||||
acpi_status
|
||||
acpi_ut_get_resource_end_tag(union acpi_operand_object *obj_desc,
|
||||
u8 ** end_tag);
|
||||
|
||||
u8 acpi_ut_generate_checksum(u8 * buffer, u32 length);
|
||||
|
||||
|
@@ -7,7 +7,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -92,182 +92,168 @@ struct asl_resource_node {
|
||||
struct asl_resource_node *next;
|
||||
};
|
||||
|
||||
/* Macros used to generate AML resource length fields */
|
||||
|
||||
#define ACPI_AML_SIZE_LARGE(r) (sizeof (r) - sizeof (struct aml_resource_large_header))
|
||||
#define ACPI_AML_SIZE_SMALL(r) (sizeof (r) - sizeof (struct aml_resource_small_header))
|
||||
|
||||
/*
|
||||
* Resource descriptors defined in the ACPI specification.
|
||||
*
|
||||
* Packing/alignment must be BYTE because these descriptors
|
||||
* are used to overlay the AML byte stream.
|
||||
* are used to overlay the raw AML byte stream.
|
||||
*/
|
||||
#pragma pack(1)
|
||||
|
||||
struct asl_irq_format_desc {
|
||||
u8 descriptor_type;
|
||||
u16 irq_mask;
|
||||
/*
|
||||
* SMALL descriptors
|
||||
*/
|
||||
#define AML_RESOURCE_SMALL_HEADER_COMMON \
|
||||
u8 descriptor_type;
|
||||
|
||||
struct aml_resource_small_header {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON};
|
||||
|
||||
struct aml_resource_irq {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON u16 irq_mask;
|
||||
u8 flags;
|
||||
};
|
||||
|
||||
struct asl_irq_noflags_desc {
|
||||
u8 descriptor_type;
|
||||
u16 irq_mask;
|
||||
struct aml_resource_irq_noflags {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON u16 irq_mask;
|
||||
};
|
||||
|
||||
struct asl_dma_format_desc {
|
||||
u8 descriptor_type;
|
||||
u8 dma_channel_mask;
|
||||
struct aml_resource_dma {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON u8 dma_channel_mask;
|
||||
u8 flags;
|
||||
};
|
||||
|
||||
struct asl_start_dependent_desc {
|
||||
u8 descriptor_type;
|
||||
u8 flags;
|
||||
struct aml_resource_start_dependent {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON u8 flags;
|
||||
};
|
||||
|
||||
struct asl_start_dependent_noprio_desc {
|
||||
u8 descriptor_type;
|
||||
};
|
||||
struct aml_resource_start_dependent_noprio {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON};
|
||||
|
||||
struct asl_end_dependent_desc {
|
||||
u8 descriptor_type;
|
||||
};
|
||||
struct aml_resource_end_dependent {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON};
|
||||
|
||||
struct asl_io_port_desc {
|
||||
u8 descriptor_type;
|
||||
u8 information;
|
||||
u16 address_min;
|
||||
u16 address_max;
|
||||
struct aml_resource_io {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON u8 flags;
|
||||
u16 minimum;
|
||||
u16 maximum;
|
||||
u8 alignment;
|
||||
u8 length;
|
||||
u8 address_length;
|
||||
};
|
||||
|
||||
struct asl_fixed_io_port_desc {
|
||||
u8 descriptor_type;
|
||||
u16 base_address;
|
||||
u8 length;
|
||||
struct aml_resource_fixed_io {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON u16 address;
|
||||
u8 address_length;
|
||||
};
|
||||
|
||||
struct asl_small_vendor_desc {
|
||||
u8 descriptor_type;
|
||||
u8 vendor_defined[7];
|
||||
struct aml_resource_vendor_small {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON};
|
||||
|
||||
struct aml_resource_end_tag {
|
||||
AML_RESOURCE_SMALL_HEADER_COMMON u8 checksum;
|
||||
};
|
||||
|
||||
struct asl_end_tag_desc {
|
||||
u8 descriptor_type;
|
||||
u8 checksum;
|
||||
};
|
||||
/*
|
||||
* LARGE descriptors
|
||||
*/
|
||||
#define AML_RESOURCE_LARGE_HEADER_COMMON \
|
||||
u8 descriptor_type;\
|
||||
u16 resource_length;
|
||||
|
||||
/* LARGE descriptors */
|
||||
struct aml_resource_large_header {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON};
|
||||
|
||||
struct asl_memory_24_desc {
|
||||
u8 descriptor_type;
|
||||
u16 length;
|
||||
u8 information;
|
||||
u16 address_min;
|
||||
u16 address_max;
|
||||
struct aml_resource_memory24 {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON u8 flags;
|
||||
u16 minimum;
|
||||
u16 maximum;
|
||||
u16 alignment;
|
||||
u16 range_length;
|
||||
u16 address_length;
|
||||
};
|
||||
|
||||
struct asl_large_vendor_desc {
|
||||
u8 descriptor_type;
|
||||
u16 length;
|
||||
u8 vendor_defined[1];
|
||||
};
|
||||
struct aml_resource_vendor_large {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON};
|
||||
|
||||
struct asl_memory_32_desc {
|
||||
u8 descriptor_type;
|
||||
u16 length;
|
||||
u8 information;
|
||||
u32 address_min;
|
||||
u32 address_max;
|
||||
struct aml_resource_memory32 {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON u8 flags;
|
||||
u32 minimum;
|
||||
u32 maximum;
|
||||
u32 alignment;
|
||||
u32 range_length;
|
||||
u32 address_length;
|
||||
};
|
||||
|
||||
struct asl_fixed_memory_32_desc {
|
||||
u8 descriptor_type;
|
||||
u16 length;
|
||||
u8 information;
|
||||
u32 base_address;
|
||||
u32 range_length;
|
||||
struct aml_resource_fixed_memory32 {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON u8 flags;
|
||||
u32 address;
|
||||
u32 address_length;
|
||||
};
|
||||
|
||||
struct asl_extended_address_desc {
|
||||
u8 descriptor_type;
|
||||
u16 length;
|
||||
u8 resource_type;
|
||||
u8 flags;
|
||||
u8 specific_flags;
|
||||
u8 revision_iD;
|
||||
#define AML_RESOURCE_ADDRESS_COMMON \
|
||||
u8 resource_type; \
|
||||
u8 flags; \
|
||||
u8 specific_flags;
|
||||
|
||||
struct aml_resource_address {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_ADDRESS_COMMON};
|
||||
|
||||
struct aml_resource_extended_address64 {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON
|
||||
AML_RESOURCE_ADDRESS_COMMON u8 revision_iD;
|
||||
u8 reserved;
|
||||
u64 granularity;
|
||||
u64 address_min;
|
||||
u64 address_max;
|
||||
u64 minimum;
|
||||
u64 maximum;
|
||||
u64 translation_offset;
|
||||
u64 address_length;
|
||||
u64 type_specific_attributes;
|
||||
u8 optional_fields[2]; /* Used for length calculation only */
|
||||
u64 type_specific;
|
||||
};
|
||||
|
||||
#define ASL_EXTENDED_ADDRESS_DESC_REVISION 1 /* ACPI 3.0 */
|
||||
#define AML_RESOURCE_EXTENDED_ADDRESS_REVISION 1 /* ACPI 3.0 */
|
||||
|
||||
struct asl_qword_address_desc {
|
||||
u8 descriptor_type;
|
||||
u16 length;
|
||||
u8 resource_type;
|
||||
u8 flags;
|
||||
u8 specific_flags;
|
||||
u64 granularity;
|
||||
u64 address_min;
|
||||
u64 address_max;
|
||||
struct aml_resource_address64 {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON
|
||||
AML_RESOURCE_ADDRESS_COMMON u64 granularity;
|
||||
u64 minimum;
|
||||
u64 maximum;
|
||||
u64 translation_offset;
|
||||
u64 address_length;
|
||||
u8 optional_fields[2];
|
||||
};
|
||||
|
||||
struct asl_dword_address_desc {
|
||||
u8 descriptor_type;
|
||||
u16 length;
|
||||
u8 resource_type;
|
||||
u8 flags;
|
||||
u8 specific_flags;
|
||||
u32 granularity;
|
||||
u32 address_min;
|
||||
u32 address_max;
|
||||
struct aml_resource_address32 {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON
|
||||
AML_RESOURCE_ADDRESS_COMMON u32 granularity;
|
||||
u32 minimum;
|
||||
u32 maximum;
|
||||
u32 translation_offset;
|
||||
u32 address_length;
|
||||
u8 optional_fields[2];
|
||||
};
|
||||
|
||||
struct asl_word_address_desc {
|
||||
u8 descriptor_type;
|
||||
u16 length;
|
||||
u8 resource_type;
|
||||
u8 flags;
|
||||
u8 specific_flags;
|
||||
u16 granularity;
|
||||
u16 address_min;
|
||||
u16 address_max;
|
||||
struct aml_resource_address16 {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON
|
||||
AML_RESOURCE_ADDRESS_COMMON u16 granularity;
|
||||
u16 minimum;
|
||||
u16 maximum;
|
||||
u16 translation_offset;
|
||||
u16 address_length;
|
||||
u8 optional_fields[2];
|
||||
};
|
||||
|
||||
struct asl_extended_xrupt_desc {
|
||||
u8 descriptor_type;
|
||||
u16 length;
|
||||
u8 flags;
|
||||
u8 table_length;
|
||||
u32 interrupt_number[1];
|
||||
struct aml_resource_extended_irq {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON u8 flags;
|
||||
u8 interrupt_count;
|
||||
u32 interrupts[1];
|
||||
/* res_source_index, res_source optional fields follow */
|
||||
};
|
||||
|
||||
struct asl_general_register_desc {
|
||||
u8 descriptor_type;
|
||||
u16 length;
|
||||
u8 address_space_id;
|
||||
struct aml_resource_generic_register {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON u8 address_space_id;
|
||||
u8 bit_width;
|
||||
u8 bit_offset;
|
||||
u8 access_size; /* ACPI 3.0, was Reserved */
|
||||
u8 access_size; /* ACPI 3.0, was previously Reserved */
|
||||
u64 address;
|
||||
};
|
||||
|
||||
@@ -277,26 +263,39 @@ struct asl_general_register_desc {
|
||||
|
||||
/* Union of all resource descriptors, so we can allocate the worst case */
|
||||
|
||||
union asl_resource_desc {
|
||||
struct asl_irq_format_desc irq;
|
||||
struct asl_dma_format_desc dma;
|
||||
struct asl_start_dependent_desc std;
|
||||
struct asl_end_dependent_desc end;
|
||||
struct asl_io_port_desc iop;
|
||||
struct asl_fixed_io_port_desc fio;
|
||||
struct asl_small_vendor_desc smv;
|
||||
struct asl_end_tag_desc et;
|
||||
union aml_resource {
|
||||
/* Descriptor headers */
|
||||
|
||||
struct asl_memory_24_desc M24;
|
||||
struct asl_large_vendor_desc lgv;
|
||||
struct asl_memory_32_desc M32;
|
||||
struct asl_fixed_memory_32_desc F32;
|
||||
struct asl_qword_address_desc qas;
|
||||
struct asl_dword_address_desc das;
|
||||
struct asl_word_address_desc was;
|
||||
struct asl_extended_address_desc eas;
|
||||
struct asl_extended_xrupt_desc exx;
|
||||
struct asl_general_register_desc grg;
|
||||
struct aml_resource_small_header small_header;
|
||||
struct aml_resource_large_header large_header;
|
||||
|
||||
/* Small resource descriptors */
|
||||
|
||||
struct aml_resource_irq irq;
|
||||
struct aml_resource_dma dma;
|
||||
struct aml_resource_start_dependent start_dpf;
|
||||
struct aml_resource_end_dependent end_dpf;
|
||||
struct aml_resource_io io;
|
||||
struct aml_resource_fixed_io fixed_io;
|
||||
struct aml_resource_vendor_small vendor_small;
|
||||
struct aml_resource_end_tag end_tag;
|
||||
|
||||
/* Large resource descriptors */
|
||||
|
||||
struct aml_resource_memory24 memory24;
|
||||
struct aml_resource_generic_register generic_reg;
|
||||
struct aml_resource_vendor_large vendor_large;
|
||||
struct aml_resource_memory32 memory32;
|
||||
struct aml_resource_fixed_memory32 fixed_memory32;
|
||||
struct aml_resource_address16 address16;
|
||||
struct aml_resource_address32 address32;
|
||||
struct aml_resource_address64 address64;
|
||||
struct aml_resource_extended_address64 ext_address64;
|
||||
struct aml_resource_extended_irq extended_irq;
|
||||
|
||||
/* Utility overlays */
|
||||
|
||||
struct aml_resource_address address;
|
||||
u32 u32_item;
|
||||
u16 u16_item;
|
||||
u8 U8item;
|
||||
|
@@ -15,9 +15,7 @@
|
||||
#define ACPI_PDC_C_C1_FFH (0x0100)
|
||||
|
||||
#define ACPI_PDC_EST_CAPABILITY_SMP (ACPI_PDC_SMP_C1PT | \
|
||||
ACPI_PDC_C_C1_HALT)
|
||||
|
||||
#define ACPI_PDC_EST_CAPABILITY_SMP_MSR (ACPI_PDC_EST_CAPABILITY_SMP | \
|
||||
ACPI_PDC_C_C1_HALT | \
|
||||
ACPI_PDC_P_FFH)
|
||||
|
||||
#define ACPI_PDC_C_CAPABILITY_SMP (ACPI_PDC_SMP_C2C3 | \
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -68,6 +68,7 @@
|
||||
#define ACPI_APPLICATION
|
||||
#define ACPI_DEBUGGER
|
||||
#define ACPI_DISASSEMBLER
|
||||
#define ACPI_MUTEX_DEBUG
|
||||
#endif
|
||||
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
@@ -205,6 +206,8 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#define ACPI_IS_ASCII(c) ((c) < 0x80)
|
||||
|
||||
#ifdef ACPI_USE_SYSTEM_CLIBRARY
|
||||
/*
|
||||
* Use the standard C library headers.
|
||||
@@ -234,7 +237,7 @@
|
||||
#define ACPI_STRCAT(d,s) (void) strcat((d), (s))
|
||||
#define ACPI_STRNCAT(d,s,n) strncat((d), (s), (acpi_size)(n))
|
||||
#define ACPI_STRTOUL(d,s,n) strtoul((d), (s), (acpi_size)(n))
|
||||
#define ACPI_MEMCMP(s1,s2,n) memcmp((s1), (s2), (acpi_size)(n))
|
||||
#define ACPI_MEMCMP(s1,s2,n) memcmp((const char *)(s1), (const char *)(s2), (acpi_size)(n))
|
||||
#define ACPI_MEMCPY(d,s,n) (void) memcpy((d), (s), (acpi_size)(n))
|
||||
#define ACPI_MEMSET(d,s,n) (void) memset((d), (s), (acpi_size)(n))
|
||||
|
||||
@@ -246,7 +249,6 @@
|
||||
#define ACPI_IS_UPPER(i) isupper((int) (i))
|
||||
#define ACPI_IS_PRINT(i) isprint((int) (i))
|
||||
#define ACPI_IS_ALPHA(i) isalpha((int) (i))
|
||||
#define ACPI_IS_ASCII(i) isascii((int) (i))
|
||||
|
||||
#else
|
||||
|
||||
@@ -273,8 +275,8 @@ typedef char *va_list;
|
||||
/*
|
||||
* Storage alignment properties
|
||||
*/
|
||||
#define _AUPBND (sizeof (acpi_native_int) - 1)
|
||||
#define _ADNBND (sizeof (acpi_native_int) - 1)
|
||||
#define _AUPBND (sizeof (acpi_native_uint) - 1)
|
||||
#define _ADNBND (sizeof (acpi_native_uint) - 1)
|
||||
|
||||
/*
|
||||
* Variable argument list macro definitions
|
||||
@@ -296,7 +298,7 @@ typedef char *va_list;
|
||||
#define ACPI_STRCAT(d,s) (void) acpi_ut_strcat ((d), (s))
|
||||
#define ACPI_STRNCAT(d,s,n) acpi_ut_strncat ((d), (s), (acpi_size)(n))
|
||||
#define ACPI_STRTOUL(d,s,n) acpi_ut_strtoul ((d), (s), (acpi_size)(n))
|
||||
#define ACPI_MEMCMP(s1,s2,n) acpi_ut_memcmp((s1), (s2), (acpi_size)(n))
|
||||
#define ACPI_MEMCMP(s1,s2,n) acpi_ut_memcmp((const char *)(s1), (const char *)(s2), (acpi_size)(n))
|
||||
#define ACPI_MEMCPY(d,s,n) (void) acpi_ut_memcpy ((d), (s), (acpi_size)(n))
|
||||
#define ACPI_MEMSET(d,v,n) (void) acpi_ut_memset ((d), (v), (acpi_size)(n))
|
||||
#define ACPI_TOUPPER acpi_ut_to_upper
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2005, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2006, R. Byron Moore
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -71,6 +71,10 @@
|
||||
#define acpi_cache_t kmem_cache_t
|
||||
#endif
|
||||
|
||||
/* Full namespace pathname length limit - arbitrary */
|
||||
|
||||
#define ACPI_PATHNAME_MAX 256
|
||||
|
||||
#else /* !__KERNEL__ */
|
||||
|
||||
#include <stdarg.h>
|
||||
|
@@ -62,9 +62,6 @@ struct acpi_processor_power {
|
||||
u32 bm_activity;
|
||||
int count;
|
||||
struct acpi_processor_cx states[ACPI_PROCESSOR_MAX_POWER];
|
||||
|
||||
/* the _PDC objects passed by the driver, if any */
|
||||
struct acpi_object_list *pdc;
|
||||
};
|
||||
|
||||
/* Performance Management */
|
||||
@@ -96,8 +93,6 @@ struct acpi_processor_performance {
|
||||
unsigned int state_count;
|
||||
struct acpi_processor_px *states;
|
||||
|
||||
/* the _PDC objects passed by the driver, if any */
|
||||
struct acpi_object_list *pdc;
|
||||
};
|
||||
|
||||
/* Throttling Control */
|
||||
@@ -151,6 +146,9 @@ struct acpi_processor {
|
||||
struct acpi_processor_performance *performance;
|
||||
struct acpi_processor_throttling throttling;
|
||||
struct acpi_processor_limit limit;
|
||||
|
||||
/* the _PDC objects for this processor, if any */
|
||||
struct acpi_object_list *pdc;
|
||||
};
|
||||
|
||||
struct acpi_processor_errata {
|
||||
@@ -178,22 +176,12 @@ int acpi_processor_notify_smm(struct module *calling_module);
|
||||
extern struct acpi_processor *processors[NR_CPUS];
|
||||
extern struct acpi_processor_errata errata;
|
||||
|
||||
int acpi_processor_set_pdc(struct acpi_processor *pr,
|
||||
struct acpi_object_list *pdc_in);
|
||||
void arch_acpi_processor_init_pdc(struct acpi_processor *pr);
|
||||
|
||||
#ifdef ARCH_HAS_POWER_PDC_INIT
|
||||
void acpi_processor_power_init_pdc(struct acpi_processor_power *pow,
|
||||
unsigned int cpu);
|
||||
#ifdef ARCH_HAS_POWER_INIT
|
||||
void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flags,
|
||||
unsigned int cpu);
|
||||
#else
|
||||
static inline void acpi_processor_power_init_pdc(struct acpi_processor_power
|
||||
*pow, unsigned int cpu)
|
||||
{
|
||||
pow->pdc = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
static inline void acpi_processor_power_init_bm_check(struct
|
||||
acpi_processor_flags
|
||||
*flags, unsigned int cpu)
|
||||
@@ -235,9 +223,6 @@ static inline int acpi_processor_ppc_has_changed(struct acpi_processor *pr)
|
||||
/* in processor_throttling.c */
|
||||
int acpi_processor_get_throttling_info(struct acpi_processor *pr);
|
||||
int acpi_processor_set_throttling(struct acpi_processor *pr, int state);
|
||||
ssize_t acpi_processor_write_throttling(struct file *file,
|
||||
const char __user * buffer,
|
||||
size_t count, loff_t * data);
|
||||
extern struct file_operations acpi_processor_throttling_fops;
|
||||
|
||||
/* in processor_idle.c */
|
||||
@@ -249,9 +234,6 @@ int acpi_processor_power_exit(struct acpi_processor *pr,
|
||||
|
||||
/* in processor_thermal.c */
|
||||
int acpi_processor_get_limit_info(struct acpi_processor *pr);
|
||||
ssize_t acpi_processor_write_limit(struct file *file,
|
||||
const char __user * buffer,
|
||||
size_t count, loff_t * data);
|
||||
extern struct file_operations acpi_processor_limit_fops;
|
||||
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
|
Reference in New Issue
Block a user