Merge branch 'acpica'
* acpica: (35 commits) ACPICA: Add __init for ACPICA initializers/finalizers. ACPICA: Cleanup asmlinkage for ACPICA APIs. ACPICA: Update acpidump related header file changes. ACPICA: Update compilation environment settings. ACPICA: Fix cached object deletion code. ACPICA: Remove dead AOPOBJ_INVALID check. ACPICA: Cleanup useless memset invocations. ACPICA: Fix an ACPI_ALLOCATE_ZEROED() reversal. ACPICA: Fix wrong object length returned by acpi_ut_get_simple_object_size(). ACPICA: Add new statistics interface. ACPICA: Update DMAR table definitions. ACPICA: Update RSDP table definitions. ACPICA: Update namespace dump code. ACPICA: Update check for setting the ANOBJ_IS_EXTERNAL flag. ACPICA: Update default space handlers. ACPICA: Update version to 20130927. ACPICA: Update aclinux.h for new OSL override mechanism. ACPICA: Add support to allow host OS to redefine individual OSL prototypes. ACPICA: Simplify configuration of global ACPI_REDUCED_HARDWARE macro. ACPICA: Fix indentation issues for macro invocations. ...
This commit is contained in:
Коммит
0faf996f4d
|
@ -25,6 +25,17 @@ unsigned long acpi_realmode_flags;
|
|||
static char temp_stack[4096];
|
||||
#endif
|
||||
|
||||
/**
|
||||
* x86_acpi_enter_sleep_state - enter sleep state
|
||||
* @state: Sleep state to enter.
|
||||
*
|
||||
* Wrapper around acpi_enter_sleep_state() to be called by assmebly.
|
||||
*/
|
||||
acpi_status asmlinkage x86_acpi_enter_sleep_state(u8 state)
|
||||
{
|
||||
return acpi_enter_sleep_state(state);
|
||||
}
|
||||
|
||||
/**
|
||||
* x86_acpi_suspend_lowlevel - save kernel state
|
||||
*
|
||||
|
|
|
@ -17,3 +17,5 @@ extern void wakeup_long64(void);
|
|||
extern void do_suspend_lowlevel(void);
|
||||
|
||||
extern int x86_acpi_suspend_lowlevel(void);
|
||||
|
||||
acpi_status asmlinkage x86_acpi_enter_sleep_state(u8 state);
|
||||
|
|
|
@ -73,7 +73,7 @@ ENTRY(do_suspend_lowlevel)
|
|||
call save_processor_state
|
||||
call save_registers
|
||||
pushl $3
|
||||
call acpi_enter_sleep_state
|
||||
call x86_acpi_enter_sleep_state
|
||||
addl $4, %esp
|
||||
|
||||
# In case of S3 failure, we'll emerge here. Jump
|
||||
|
|
|
@ -73,7 +73,7 @@ ENTRY(do_suspend_lowlevel)
|
|||
addq $8, %rsp
|
||||
movl $3, %edi
|
||||
xorl %eax, %eax
|
||||
call acpi_enter_sleep_state
|
||||
call x86_acpi_enter_sleep_state
|
||||
/* in case something went wrong, restore the machine status and go on */
|
||||
jmp resume_point
|
||||
|
||||
|
|
|
@ -113,7 +113,8 @@ void acpi_db_display_handlers(void);
|
|||
ACPI_HW_DEPENDENT_RETURN_VOID(void
|
||||
acpi_db_generate_gpe(char *gpe_arg,
|
||||
char *block_arg))
|
||||
ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_db_generate_sci(void))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_db_generate_sci(void))
|
||||
|
||||
/*
|
||||
* dbconvert - miscellaneous conversion routines
|
||||
|
@ -243,6 +244,8 @@ void acpi_db_display_history(void);
|
|||
|
||||
char *acpi_db_get_from_history(char *command_num_arg);
|
||||
|
||||
char *acpi_db_get_history_by_index(u32 commandd_num);
|
||||
|
||||
/*
|
||||
* dbinput - user front-end to the AML debugger
|
||||
*/
|
||||
|
|
|
@ -71,7 +71,8 @@ acpi_status acpi_ev_init_global_lock_handler(void);
|
|||
|
||||
ACPI_HW_DEPENDENT_RETURN_OK(acpi_status
|
||||
acpi_ev_acquire_global_lock(u16 timeout))
|
||||
ACPI_HW_DEPENDENT_RETURN_OK(acpi_status acpi_ev_release_global_lock(void))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_OK(acpi_status acpi_ev_release_global_lock(void))
|
||||
acpi_status acpi_ev_remove_global_lock_handler(void);
|
||||
|
||||
/*
|
||||
|
|
|
@ -406,7 +406,9 @@ extern u32 acpi_gbl_nesting_level;
|
|||
|
||||
/* Event counters */
|
||||
|
||||
ACPI_EXTERN u32 acpi_method_count;
|
||||
ACPI_EXTERN u32 acpi_gpe_count;
|
||||
ACPI_EXTERN u32 acpi_sci_count;
|
||||
ACPI_EXTERN u32 acpi_fixed_event_count[ACPI_NUM_FIXED_EVENTS];
|
||||
|
||||
/* Support for dynamic control method tracing mechanism */
|
||||
|
|
|
@ -1072,7 +1072,7 @@ struct acpi_db_method_info {
|
|||
char *name;
|
||||
u32 flags;
|
||||
u32 num_loops;
|
||||
char pathname[128];
|
||||
char pathname[ACPI_DB_LINE_BUFFER_SIZE];
|
||||
char **args;
|
||||
acpi_object_type *types;
|
||||
|
||||
|
@ -1094,6 +1094,7 @@ struct acpi_integrity_info {
|
|||
u32 objects;
|
||||
};
|
||||
|
||||
#define ACPI_DB_DISABLE_OUTPUT 0x00
|
||||
#define ACPI_DB_REDIRECTABLE_OUTPUT 0x01
|
||||
#define ACPI_DB_CONSOLE_OUTPUT 0x02
|
||||
#define ACPI_DB_DUPLICATE_OUTPUT 0x03
|
||||
|
|
|
@ -409,37 +409,6 @@
|
|||
#define ACPI_DEBUGGER_EXEC(a)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Memory allocation tracking (DEBUG ONLY)
|
||||
*/
|
||||
#define ACPI_MEM_PARAMETERS _COMPONENT, _acpi_module_name, __LINE__
|
||||
|
||||
#ifndef ACPI_DBG_TRACK_ALLOCATIONS
|
||||
|
||||
/* Memory allocation */
|
||||
|
||||
#ifndef ACPI_ALLOCATE
|
||||
#define ACPI_ALLOCATE(a) acpi_ut_allocate((acpi_size) (a), ACPI_MEM_PARAMETERS)
|
||||
#endif
|
||||
#ifndef ACPI_ALLOCATE_ZEROED
|
||||
#define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed((acpi_size) (a), ACPI_MEM_PARAMETERS)
|
||||
#endif
|
||||
#ifndef ACPI_FREE
|
||||
#define ACPI_FREE(a) acpi_os_free(a)
|
||||
#endif
|
||||
#define ACPI_MEM_TRACKING(a)
|
||||
|
||||
#else
|
||||
|
||||
/* Memory allocation */
|
||||
|
||||
#define ACPI_ALLOCATE(a) acpi_ut_allocate_and_track((acpi_size) (a), ACPI_MEM_PARAMETERS)
|
||||
#define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed_and_track((acpi_size) (a), ACPI_MEM_PARAMETERS)
|
||||
#define ACPI_FREE(a) acpi_ut_free_and_track(a, ACPI_MEM_PARAMETERS)
|
||||
#define ACPI_MEM_TRACKING(a) a
|
||||
|
||||
#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
|
||||
|
||||
/*
|
||||
* Macros used for ACPICA utilities only
|
||||
*/
|
||||
|
|
|
@ -628,6 +628,17 @@ u8 acpi_ut_valid_acpi_char(char character, u32 position);
|
|||
|
||||
void acpi_ut_repair_name(char *name);
|
||||
|
||||
#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION)
|
||||
u8 acpi_ut_safe_strcpy(char *dest, acpi_size dest_size, char *source);
|
||||
|
||||
u8 acpi_ut_safe_strcat(char *dest, acpi_size dest_size, char *source);
|
||||
|
||||
u8
|
||||
acpi_ut_safe_strncat(char *dest,
|
||||
acpi_size dest_size,
|
||||
char *source, acpi_size max_transfer_length);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* utmutex - mutex support
|
||||
*/
|
||||
|
@ -652,12 +663,6 @@ acpi_status
|
|||
acpi_ut_initialize_buffer(struct acpi_buffer *buffer,
|
||||
acpi_size required_length);
|
||||
|
||||
void *acpi_ut_allocate(acpi_size size,
|
||||
u32 component, const char *module, u32 line);
|
||||
|
||||
void *acpi_ut_allocate_zeroed(acpi_size size,
|
||||
u32 component, const char *module, u32 line);
|
||||
|
||||
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
|
||||
void *acpi_ut_allocate_and_track(acpi_size size,
|
||||
u32 component, const char *module, u32 line);
|
||||
|
|
|
@ -158,7 +158,7 @@ acpi_ds_execute_arguments(struct acpi_namespace_node *node,
|
|||
walk_state->deferred_node = node;
|
||||
status = acpi_ps_parse_aml(walk_state);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
acpi_ps_delete_parse_tree(op);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -259,7 +259,7 @@ acpi_ds_create_buffer_field(union acpi_parse_object *op,
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Remove local reference to the object */
|
||||
|
||||
|
|
|
@ -292,9 +292,10 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
|
|||
* reentered one more time (even if it is the same thread)
|
||||
*/
|
||||
obj_desc->method.thread_count++;
|
||||
acpi_method_count++;
|
||||
return_ACPI_STATUS(status);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
/* On error, must release the method mutex (if present) */
|
||||
|
||||
if (obj_desc->method.mutex) {
|
||||
|
@ -424,7 +425,7 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread,
|
|||
|
||||
return_ACPI_STATUS(status);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* On error, we must terminate the method properly */
|
||||
|
||||
|
|
|
@ -240,7 +240,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state,
|
|||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
exit:
|
||||
exit:
|
||||
*obj_desc_ptr = obj_desc;
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -257,7 +257,7 @@ acpi_ds_init_buffer_field(u16 aml_opcode,
|
|||
(buffer_desc->common.reference_count +
|
||||
obj_desc->common.reference_count);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Always delete the operands */
|
||||
|
||||
|
|
|
@ -299,7 +299,7 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
|
|||
goto result_used;
|
||||
}
|
||||
|
||||
result_used:
|
||||
result_used:
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
|
||||
"Result of [%s] used by Parent [%s] Op=%p\n",
|
||||
acpi_ps_get_opcode_name(op->common.aml_opcode),
|
||||
|
@ -308,7 +308,7 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
|
|||
|
||||
return_UINT8(TRUE);
|
||||
|
||||
result_not_used:
|
||||
result_not_used:
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
|
||||
"Result of [%s] not used by Parent [%s] Op=%p\n",
|
||||
acpi_ps_get_opcode_name(op->common.aml_opcode),
|
||||
|
@ -752,7 +752,7 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
|
|||
|
||||
return_ACPI_STATUS(status);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
/*
|
||||
* We must undo everything done above; meaning that we must
|
||||
* pop everything off of the operand stack and delete those
|
||||
|
@ -851,7 +851,7 @@ acpi_status acpi_ds_evaluate_name_path(struct acpi_walk_state *walk_state)
|
|||
goto exit;
|
||||
}
|
||||
|
||||
push_result:
|
||||
push_result:
|
||||
|
||||
walk_state->result_obj = new_obj_desc;
|
||||
|
||||
|
@ -863,7 +863,7 @@ acpi_status acpi_ds_evaluate_name_path(struct acpi_walk_state *walk_state)
|
|||
op->common.flags |= ACPI_PARSEOP_IN_STACK;
|
||||
}
|
||||
|
||||
exit:
|
||||
exit:
|
||||
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -170,7 +170,7 @@ acpi_ds_get_predicate_value(struct acpi_walk_state *walk_state,
|
|||
|
||||
(void)acpi_ds_do_implicit_return(local_obj_desc, walk_state, TRUE);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Completed a predicate eval=%X Op=%p\n",
|
||||
walk_state->control_state->common.value,
|
||||
|
@ -335,7 +335,7 @@ acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state,
|
|||
|
||||
return_ACPI_STATUS(status);
|
||||
|
||||
error_exit:
|
||||
error_exit:
|
||||
status = acpi_ds_method_error(status, walk_state);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -722,7 +722,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
|
|||
walk_state->result_obj = NULL;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
if (walk_state->result_obj) {
|
||||
|
||||
|
|
|
@ -728,7 +728,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
|
|||
break;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Remove the Node pushed at the very beginning */
|
||||
|
||||
|
|
|
@ -173,7 +173,7 @@ static u32 acpi_ev_global_lock_handler(void *context)
|
|||
|
||||
acpi_gbl_global_lock_pending = FALSE;
|
||||
|
||||
cleanup_and_exit:
|
||||
cleanup_and_exit:
|
||||
|
||||
acpi_os_release_lock(acpi_gbl_global_lock_pending_lock, flags);
|
||||
return (ACPI_INTERRUPT_HANDLED);
|
||||
|
|
|
@ -458,7 +458,7 @@ u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info * gpe_xrupt_list)
|
|||
gpe_block = gpe_block->next;
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
|
||||
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
|
||||
return (int_status);
|
||||
|
@ -522,6 +522,7 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context)
|
|||
|
||||
status = acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
ACPI_FREE(local_gpe_event_info);
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@ acpi_ev_install_gpe_block(struct acpi_gpe_block_info *gpe_block,
|
|||
gpe_block->xrupt_block = gpe_xrupt_block;
|
||||
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
status = acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ acpi_status acpi_ev_delete_gpe_block(struct acpi_gpe_block_info *gpe_block)
|
|||
ACPI_FREE(gpe_block->event_info);
|
||||
ACPI_FREE(gpe_block);
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
status = acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -302,7 +302,7 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block)
|
|||
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
|
||||
error_exit:
|
||||
error_exit:
|
||||
if (gpe_register_info) {
|
||||
ACPI_FREE(gpe_register_info);
|
||||
}
|
||||
|
|
|
@ -203,7 +203,7 @@ acpi_status acpi_ev_gpe_initialize(void)
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ acpi_ev_walk_gpe_list(acpi_gpe_callback gpe_walk_callback, void *context)
|
|||
gpe_xrupt_info = gpe_xrupt_info->next;
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -129,7 +129,7 @@ acpi_status acpi_ev_install_region_handlers(void)
|
|||
}
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -531,6 +531,6 @@ acpi_ev_install_space_handler(struct acpi_namespace_node * node,
|
|||
acpi_ev_install_handler, NULL,
|
||||
handler_obj, NULL);
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -573,10 +573,10 @@ acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function)
|
|||
status = acpi_ns_evaluate(info);
|
||||
acpi_ut_remove_reference(args[1]);
|
||||
|
||||
cleanup2:
|
||||
cleanup2:
|
||||
acpi_ut_remove_reference(args[0]);
|
||||
|
||||
cleanup1:
|
||||
cleanup1:
|
||||
ACPI_FREE(info);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -761,7 +761,7 @@ acpi_ev_orphan_ec_reg_method(struct acpi_namespace_node *ec_device_node)
|
|||
|
||||
status = acpi_evaluate_object(reg_method, NULL, &args, NULL);
|
||||
|
||||
exit:
|
||||
exit:
|
||||
/* We ignore all errors from above, don't care */
|
||||
|
||||
status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
|
||||
|
|
|
@ -137,6 +137,7 @@ static u32 ACPI_SYSTEM_XFACE acpi_ev_sci_xrupt_handler(void *context)
|
|||
|
||||
interrupt_handled |= acpi_ev_sci_dispatch();
|
||||
|
||||
acpi_sci_count++;
|
||||
return_UINT32(interrupt_handled);
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acnamesp.h"
|
||||
|
@ -374,7 +375,7 @@ acpi_status acpi_install_exception_handler(acpi_exception_handler handler)
|
|||
|
||||
acpi_gbl_exception_handler = handler;
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -444,12 +445,12 @@ acpi_status acpi_install_sci_handler(acpi_sci_handler address, void *context)
|
|||
new_sci_handler->next = acpi_gbl_sci_handler_list;
|
||||
acpi_gbl_sci_handler_list = new_sci_handler;
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
|
||||
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
|
||||
exit:
|
||||
exit:
|
||||
if (ACPI_FAILURE(status)) {
|
||||
ACPI_FREE(new_sci_handler);
|
||||
}
|
||||
|
@ -516,7 +517,7 @@ acpi_status acpi_remove_sci_handler(acpi_sci_handler address)
|
|||
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
|
||||
status = AE_NOT_EXIST;
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -565,7 +566,7 @@ acpi_install_global_event_handler(acpi_gbl_event_handler handler, void *context)
|
|||
acpi_gbl_global_event_handler = handler;
|
||||
acpi_gbl_global_event_handler_context = context;
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -637,7 +638,7 @@ acpi_install_fixed_event_handler(u32 event,
|
|||
handler));
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "actables.h"
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acevents.h"
|
||||
|
@ -471,7 +472,7 @@ acpi_get_gpe_status(acpi_handle gpe_device,
|
|||
if (gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK)
|
||||
*event_status |= ACPI_EVENT_FLAG_HANDLE;
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -624,7 +625,7 @@ acpi_install_gpe_block(acpi_handle gpe_device,
|
|||
|
||||
obj_desc->device.gpe_block = gpe_block;
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -679,7 +680,7 @@ acpi_status acpi_remove_gpe_block(acpi_handle gpe_device)
|
|||
obj_desc->device.gpe_block = NULL;
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -42,7 +42,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acnamesp.h"
|
||||
|
@ -147,7 +148,7 @@ acpi_install_address_space_handler(acpi_handle device,
|
|||
|
||||
status = acpi_ev_execute_reg_methods(node, space_id);
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -286,7 +287,7 @@ acpi_remove_address_space_handler(acpi_handle device,
|
|||
|
||||
status = AE_NOT_EXIST;
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -193,7 +193,7 @@ acpi_status acpi_ex_create_event(struct acpi_walk_state *walk_state)
|
|||
acpi_ns_attach_object((struct acpi_namespace_node *)walk_state->
|
||||
operands[0], obj_desc, ACPI_TYPE_EVENT);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
/*
|
||||
* Remove local reference to the object (on error, will cause deletion
|
||||
* of both object and semaphore if present.)
|
||||
|
@ -248,7 +248,7 @@ acpi_status acpi_ex_create_mutex(struct acpi_walk_state *walk_state)
|
|||
acpi_ns_attach_object(obj_desc->mutex.node, obj_desc,
|
||||
ACPI_TYPE_MUTEX);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
/*
|
||||
* Remove local reference to the object (on error, will cause deletion
|
||||
* of both object and semaphore if present.)
|
||||
|
@ -347,7 +347,7 @@ acpi_ex_create_region(u8 * aml_start,
|
|||
|
||||
status = acpi_ns_attach_object(node, obj_desc, ACPI_TYPE_REGION);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Remove local reference to the object */
|
||||
|
||||
|
@ -520,7 +520,7 @@ acpi_ex_create_method(u8 * aml_start,
|
|||
|
||||
acpi_ut_remove_reference(obj_desc);
|
||||
|
||||
exit:
|
||||
exit:
|
||||
/* Remove a reference to the operand */
|
||||
|
||||
acpi_ut_remove_reference(operand[1]);
|
||||
|
|
|
@ -197,7 +197,7 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
|
|||
status = acpi_ex_extract_from_field(obj_desc, buffer, (u32) length);
|
||||
acpi_ex_release_global_lock(obj_desc->common_field.field_flags);
|
||||
|
||||
exit:
|
||||
exit:
|
||||
if (ACPI_FAILURE(status)) {
|
||||
acpi_ut_remove_reference(buffer_desc);
|
||||
} else {
|
||||
|
|
|
@ -123,12 +123,6 @@ acpi_ex_setup_region(union acpi_operand_object *obj_desc,
|
|||
}
|
||||
}
|
||||
|
||||
/* Exit if Address/Length have been disallowed by the host OS */
|
||||
|
||||
if (rgn_desc->common.flags & AOPOBJ_INVALID) {
|
||||
return_ACPI_STATUS(AE_AML_ILLEGAL_ADDRESS);
|
||||
}
|
||||
|
||||
/*
|
||||
* Exit now for SMBus, GSBus or IPMI address space, it has a non-linear
|
||||
* address space and the request cannot be directly validated
|
||||
|
@ -1002,7 +996,7 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
|
|||
mask, merged_datum,
|
||||
field_offset);
|
||||
|
||||
exit:
|
||||
exit:
|
||||
/* Free temporary buffer if we used one */
|
||||
|
||||
if (new_buffer) {
|
||||
|
|
|
@ -388,7 +388,7 @@ acpi_ex_do_concatenate(union acpi_operand_object *operand0,
|
|||
|
||||
*actual_return_desc = return_desc;
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
if (local_operand1 != operand1) {
|
||||
acpi_ut_remove_reference(local_operand1);
|
||||
}
|
||||
|
@ -718,7 +718,7 @@ acpi_ex_do_logical_op(u16 opcode,
|
|||
}
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* New object was created if implicit conversion performed - delete */
|
||||
|
||||
|
|
|
@ -115,7 +115,7 @@ acpi_status acpi_ex_opcode_0A_0T_1R(struct acpi_walk_state *walk_state)
|
|||
break;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Delete return object on error */
|
||||
|
||||
|
@ -234,7 +234,7 @@ acpi_status acpi_ex_opcode_1A_1T_0R(struct acpi_walk_state *walk_state)
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -551,7 +551,7 @@ acpi_status acpi_ex_opcode_1A_1T_1R(struct acpi_walk_state *walk_state)
|
|||
status = acpi_ex_store(return_desc, operand[1], walk_state);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Delete return object on error */
|
||||
|
||||
|
@ -1054,7 +1054,7 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Delete return object on error */
|
||||
|
||||
|
|
|
@ -215,7 +215,7 @@ acpi_status acpi_ex_opcode_2A_2T_1R(struct acpi_walk_state *walk_state)
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
/*
|
||||
* Since the remainder is not returned indirectly, remove a reference to
|
||||
* it. Only the quotient is returned indirectly.
|
||||
|
@ -445,7 +445,7 @@ acpi_status acpi_ex_opcode_2A_1T_1R(struct acpi_walk_state *walk_state)
|
|||
break;
|
||||
}
|
||||
|
||||
store_result_to_target:
|
||||
store_result_to_target:
|
||||
|
||||
if (ACPI_SUCCESS(status)) {
|
||||
/*
|
||||
|
@ -462,7 +462,7 @@ acpi_status acpi_ex_opcode_2A_1T_1R(struct acpi_walk_state *walk_state)
|
|||
}
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Delete return object on error */
|
||||
|
||||
|
@ -553,7 +553,7 @@ acpi_status acpi_ex_opcode_2A_0T_1R(struct acpi_walk_state *walk_state)
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
store_logical_result:
|
||||
store_logical_result:
|
||||
/*
|
||||
* Set return value to according to logical_result. logical TRUE (all ones)
|
||||
* Default is FALSE (zero)
|
||||
|
@ -562,7 +562,7 @@ acpi_status acpi_ex_opcode_2A_0T_1R(struct acpi_walk_state *walk_state)
|
|||
return_desc->integer.value = ACPI_UINT64_MAX;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Delete return object on error */
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ acpi_status acpi_ex_opcode_3A_0T_0R(struct acpi_walk_state *walk_state)
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -252,7 +252,7 @@ acpi_status acpi_ex_opcode_3A_1T_1R(struct acpi_walk_state *walk_state)
|
|||
|
||||
status = acpi_ex_store(return_desc, operand[3], walk_state);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Delete return object on error */
|
||||
|
||||
|
|
|
@ -314,7 +314,7 @@ acpi_status acpi_ex_opcode_6A_0T_1R(struct acpi_walk_state * walk_state)
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Delete return object on error */
|
||||
|
||||
|
|
|
@ -400,6 +400,7 @@ acpi_ex_pci_config_space_handler(u32 function,
|
|||
switch (function) {
|
||||
case ACPI_READ:
|
||||
|
||||
*value = 0;
|
||||
status = acpi_os_read_pci_configuration(pci_id, pci_register,
|
||||
value, bit_width);
|
||||
break;
|
||||
|
|
|
@ -521,7 +521,7 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state,
|
|||
*/
|
||||
type = obj_desc->common.type;
|
||||
|
||||
exit:
|
||||
exit:
|
||||
/* Convert internal types to external types */
|
||||
|
||||
switch (type) {
|
||||
|
|
|
@ -683,7 +683,7 @@ acpi_ex_resolve_operands(u16 opcode,
|
|||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
next_operand:
|
||||
next_operand:
|
||||
/*
|
||||
* If more operands needed, decrement stack_ptr to point
|
||||
* to next operand on stack
|
||||
|
|
|
@ -560,7 +560,7 @@ acpi_status acpi_hw_register_write(u32 register_id, u32 value)
|
|||
break;
|
||||
}
|
||||
|
||||
exit:
|
||||
exit:
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acnamesp.h"
|
||||
|
@ -83,11 +84,17 @@ acpi_status acpi_reset(void)
|
|||
* For I/O space, write directly to the OSL. This bypasses the port
|
||||
* validation mechanism, which may block a valid write to the reset
|
||||
* register.
|
||||
* Spec section 4.7.3.6 requires register width to be 8.
|
||||
*
|
||||
* NOTE:
|
||||
* The ACPI spec requires the reset register width to be 8, so we
|
||||
* hardcode it here and ignore the FADT value. This maintains
|
||||
* compatibility with other ACPI implementations that have allowed
|
||||
* BIOS code with bad register width values to go unnoticed.
|
||||
*/
|
||||
status =
|
||||
acpi_os_write_port((acpi_io_address) reset_reg->address,
|
||||
acpi_gbl_FADT.reset_value, 8);
|
||||
acpi_gbl_FADT.reset_value,
|
||||
ACPI_RESET_REGISTER_WIDTH);
|
||||
} else {
|
||||
/* Write the reset value to the reset register */
|
||||
|
||||
|
@ -563,10 +570,10 @@ acpi_get_sleep_type_data(u8 sleep_state, u8 *sleep_type_a, u8 *sleep_type_b)
|
|||
break;
|
||||
}
|
||||
|
||||
cleanup1:
|
||||
cleanup1:
|
||||
acpi_ut_remove_reference(info->return_object);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
if (ACPI_FAILURE(status)) {
|
||||
ACPI_EXCEPTION((AE_INFO, status,
|
||||
"While evaluating Sleep State [%s]",
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
|
||||
|
@ -166,7 +167,7 @@ ACPI_EXPORT_SYMBOL(acpi_set_firmware_waking_vector64)
|
|||
* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void)
|
||||
acpi_status acpi_enter_sleep_state_s4bios(void)
|
||||
{
|
||||
u32 in_value;
|
||||
acpi_status status;
|
||||
|
@ -360,7 +361,7 @@ ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_prep)
|
|||
* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
|
||||
acpi_status acpi_enter_sleep_state(u8 sleep_state)
|
||||
{
|
||||
acpi_status status;
|
||||
|
||||
|
|
|
@ -240,7 +240,7 @@ acpi_status acpi_ns_root_initialize(void)
|
|||
}
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
|
||||
/* Save a handle to "_GPE", it is always present */
|
||||
|
|
|
@ -620,7 +620,7 @@ acpi_ns_dump_one_object(acpi_handle obj_handle,
|
|||
obj_type = ACPI_TYPE_INVALID; /* Terminate loop after next pass */
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
acpi_os_printf("\n");
|
||||
return (AE_OK);
|
||||
}
|
||||
|
@ -715,6 +715,13 @@ acpi_ns_dump_one_object_path(acpi_handle obj_handle,
|
|||
}
|
||||
|
||||
node = acpi_ns_validate_handle(obj_handle);
|
||||
if (!node) {
|
||||
|
||||
/* Ignore bad node during namespace walk */
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
pathname = acpi_ns_get_external_pathname(node);
|
||||
|
||||
path_indent = 1;
|
||||
|
|
|
@ -69,6 +69,7 @@ static acpi_status
|
|||
acpi_ns_dump_one_device(acpi_handle obj_handle,
|
||||
u32 level, void *context, void **return_value)
|
||||
{
|
||||
struct acpi_buffer buffer;
|
||||
struct acpi_device_info *info;
|
||||
acpi_status status;
|
||||
u32 i;
|
||||
|
@ -78,15 +79,17 @@ acpi_ns_dump_one_device(acpi_handle obj_handle,
|
|||
status =
|
||||
acpi_ns_dump_one_object(obj_handle, level, context, return_value);
|
||||
|
||||
status = acpi_get_object_info(obj_handle, &info);
|
||||
buffer.length = ACPI_ALLOCATE_LOCAL_BUFFER;
|
||||
status = acpi_get_object_info(obj_handle, &buffer);
|
||||
if (ACPI_SUCCESS(status)) {
|
||||
info = buffer.pointer;
|
||||
for (i = 0; i < level; i++) {
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TABLES, " "));
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TABLES,
|
||||
" HID: %s, ADR: %8.8X%8.8X, Status: %X\n",
|
||||
info->hardware_id.string,
|
||||
info->hardware_id.value,
|
||||
ACPI_FORMAT_UINT64(info->address),
|
||||
info->current_status));
|
||||
ACPI_FREE(info);
|
||||
|
|
|
@ -314,7 +314,7 @@ acpi_status acpi_ns_evaluate(struct acpi_evaluate_info *info)
|
|||
"*** Completed evaluation of object %s ***\n",
|
||||
info->relative_pathname));
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
/*
|
||||
* Namespace was unlocked by the handling acpi_ns* function, so we
|
||||
* just free the pathname and return
|
||||
|
@ -486,7 +486,7 @@ acpi_ns_exec_module_code(union acpi_operand_object *method_obj,
|
|||
parent_node->type = (u8)type;
|
||||
}
|
||||
|
||||
exit:
|
||||
exit:
|
||||
if (parent_obj) {
|
||||
acpi_ut_remove_reference(parent_obj);
|
||||
}
|
||||
|
|
|
@ -213,7 +213,7 @@ acpi_status acpi_ns_initialize_devices(void)
|
|||
|
||||
return_ACPI_STATUS(status);
|
||||
|
||||
error_exit:
|
||||
error_exit:
|
||||
ACPI_EXCEPTION((AE_INFO, status, "During device initialization"));
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -114,7 +114,7 @@ acpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node)
|
|||
(void)acpi_tb_release_owner_id(table_index);
|
||||
}
|
||||
|
||||
unlock:
|
||||
unlock:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
|
||||
if (ACPI_FAILURE(status)) {
|
||||
|
|
|
@ -140,7 +140,7 @@ acpi_ns_one_complete_parse(u32 pass_number,
|
|||
pass_number));
|
||||
status = acpi_ps_parse_aml(walk_state);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
acpi_ps_delete_parse_tree(parse_root);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -271,7 +271,7 @@ acpi_ns_check_object_type(struct acpi_evaluate_info *info,
|
|||
return (AE_OK); /* Successful repair */
|
||||
}
|
||||
|
||||
type_error_exit:
|
||||
type_error_exit:
|
||||
|
||||
/* Create a string with all expected types for this predefined object */
|
||||
|
||||
|
|
|
@ -330,7 +330,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
|
|||
|
||||
return (status);
|
||||
|
||||
package_too_small:
|
||||
package_too_small:
|
||||
|
||||
/* Error exit for the case with an incorrect package count */
|
||||
|
||||
|
@ -555,7 +555,7 @@ acpi_ns_check_package_list(struct acpi_evaluate_info *info,
|
|||
|
||||
return (AE_OK);
|
||||
|
||||
package_too_small:
|
||||
package_too_small:
|
||||
|
||||
/* The sub-package count was smaller than required */
|
||||
|
||||
|
|
|
@ -263,7 +263,7 @@ acpi_ns_simple_repair(struct acpi_evaluate_info *info,
|
|||
|
||||
return (AE_AML_OPERAND_TYPE);
|
||||
|
||||
object_repaired:
|
||||
object_repaired:
|
||||
|
||||
/* Object was successfully repaired */
|
||||
|
||||
|
|
|
@ -478,7 +478,7 @@ acpi_ns_repair_CST(struct acpi_evaluate_info *info,
|
|||
removing = TRUE;
|
||||
}
|
||||
|
||||
remove_element:
|
||||
remove_element:
|
||||
if (removing) {
|
||||
acpi_ns_remove_element(return_object, i + 1);
|
||||
outer_element_count--;
|
||||
|
|
|
@ -381,7 +381,8 @@ acpi_ns_search_and_enter(u32 target_name,
|
|||
|
||||
/* Node is an object defined by an External() statement */
|
||||
|
||||
if (flags & ACPI_NS_EXTERNAL) {
|
||||
if (flags & ACPI_NS_EXTERNAL ||
|
||||
(walk_state && walk_state->opcode == AML_SCOPE_OP)) {
|
||||
new_node->flags |= ANOBJ_IS_EXTERNAL;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -722,7 +722,7 @@ acpi_ns_get_node(struct acpi_namespace_node *prefix_node,
|
|||
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
ACPI_FREE(internal_path);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -42,7 +42,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acnamesp.h"
|
||||
|
@ -138,7 +139,7 @@ acpi_evaluate_object_typed(acpi_handle handle,
|
|||
|
||||
/* Caller used ACPI_ALLOCATE_BUFFER, free the return buffer */
|
||||
|
||||
ACPI_FREE(return_buffer->pointer);
|
||||
ACPI_FREE_BUFFER(*return_buffer);
|
||||
return_buffer->pointer = NULL;
|
||||
}
|
||||
|
||||
|
@ -441,7 +442,7 @@ acpi_evaluate_object(acpi_handle handle,
|
|||
acpi_ex_exit_interpreter();
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Free the input parameter list (if we created one) */
|
||||
|
||||
|
@ -617,10 +618,10 @@ acpi_walk_namespace(acpi_object_type type,
|
|||
descending_callback, ascending_callback,
|
||||
context, return_value);
|
||||
|
||||
unlock_and_exit2:
|
||||
unlock_and_exit2:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_read_lock(&acpi_gbl_namespace_rw_lock);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -864,7 +865,7 @@ acpi_attach_data(acpi_handle obj_handle,
|
|||
|
||||
status = acpi_ns_attach_data(node, handler, data);
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return (status);
|
||||
}
|
||||
|
@ -910,7 +911,7 @@ acpi_detach_data(acpi_handle obj_handle, acpi_object_handler handler)
|
|||
|
||||
status = acpi_ns_detach_data(node, handler);
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return (status);
|
||||
}
|
||||
|
@ -957,7 +958,7 @@ acpi_get_data(acpi_handle obj_handle, acpi_object_handler handler, void **data)
|
|||
|
||||
status = acpi_ns_get_attached_data(node, handler, data);
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return (status);
|
||||
}
|
||||
|
|
|
@ -42,7 +42,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acnamesp.h"
|
||||
|
@ -208,7 +209,7 @@ acpi_get_name(acpi_handle handle, u32 name_type, struct acpi_buffer * buffer)
|
|||
((char *)buffer->pointer)[ACPI_NAME_SIZE] = 0;
|
||||
status = AE_OK;
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return (status);
|
||||
|
@ -496,7 +497,7 @@ acpi_get_object_info(acpi_handle handle,
|
|||
*return_buffer = info;
|
||||
status = AE_OK;
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
if (hid) {
|
||||
ACPI_FREE(hid);
|
||||
}
|
||||
|
|
|
@ -42,7 +42,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acnamesp.h"
|
||||
|
@ -200,7 +201,7 @@ acpi_status acpi_get_parent(acpi_handle handle, acpi_handle * ret_handle)
|
|||
status = AE_NULL_ENTRY;
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return (status);
|
||||
|
@ -280,7 +281,7 @@ acpi_get_next_object(acpi_object_type type,
|
|||
*ret_handle = ACPI_CAST_PTR(acpi_handle, node);
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return (status);
|
||||
|
|
|
@ -297,7 +297,7 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state,
|
|||
}
|
||||
}
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* Now we can actually delete the subtree rooted at Op */
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ static void acpi_ps_start_trace(struct acpi_evaluate_info *info)
|
|||
acpi_dbg_layer = acpi_gbl_trace_dbg_layer;
|
||||
}
|
||||
|
||||
exit:
|
||||
exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
}
|
||||
|
||||
|
@ -185,7 +185,7 @@ static void acpi_ps_stop_trace(struct acpi_evaluate_info *info)
|
|||
acpi_dbg_level = acpi_gbl_original_dbg_level;
|
||||
acpi_dbg_layer = acpi_gbl_original_dbg_layer;
|
||||
|
||||
exit:
|
||||
exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
}
|
||||
|
||||
|
@ -323,7 +323,7 @@ acpi_status acpi_ps_execute_method(struct acpi_evaluate_info *info)
|
|||
|
||||
/* walk_state was deleted by parse_aml */
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
acpi_ps_delete_parse_tree(op);
|
||||
|
||||
/* End optional tracing */
|
||||
|
|
|
@ -440,7 +440,7 @@ acpi_rs_convert_aml_to_resource(struct acpi_resource *resource,
|
|||
info++;
|
||||
}
|
||||
|
||||
exit:
|
||||
exit:
|
||||
if (!flags_mode) {
|
||||
|
||||
/* Round the resource struct length up to the next boundary (32 or 64) */
|
||||
|
@ -783,7 +783,7 @@ acpi_rs_convert_resource_to_aml(struct acpi_resource *resource,
|
|||
info++;
|
||||
}
|
||||
|
||||
exit:
|
||||
exit:
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
}
|
||||
|
||||
|
|
|
@ -784,7 +784,7 @@ acpi_rs_set_srs_method_data(struct acpi_namespace_node *node,
|
|||
|
||||
acpi_ut_remove_reference(args[0]);
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
ACPI_FREE(info);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acresrc.h"
|
||||
|
|
|
@ -231,10 +231,10 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
|
|||
goto release;
|
||||
}
|
||||
|
||||
print_header:
|
||||
print_header:
|
||||
acpi_tb_print_table_header(table_desc->address, table_desc->pointer);
|
||||
|
||||
release:
|
||||
release:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_TABLES);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -306,7 +306,7 @@ struct acpi_table_header *acpi_tb_table_override(struct acpi_table_header
|
|||
|
||||
return (NULL); /* There was no override */
|
||||
|
||||
finish_override:
|
||||
finish_override:
|
||||
|
||||
ACPI_INFO((AE_INFO,
|
||||
"%4.4s %p %s table override, new table: %p",
|
||||
|
|
|
@ -135,7 +135,7 @@ acpi_tb_print_table_header(acpi_physical_address address,
|
|||
|
||||
/* FACS only has signature and length fields */
|
||||
|
||||
ACPI_INFO((AE_INFO, "%4.4s %p %05X",
|
||||
ACPI_INFO((AE_INFO, "%4.4s %p %06X",
|
||||
header->signature, ACPI_CAST_PTR(void, address),
|
||||
header->length));
|
||||
} else if (ACPI_VALIDATE_RSDP_SIG(header->signature)) {
|
||||
|
@ -147,7 +147,7 @@ acpi_tb_print_table_header(acpi_physical_address address,
|
|||
header)->oem_id, ACPI_OEM_ID_SIZE);
|
||||
acpi_tb_fix_string(local_header.oem_id, ACPI_OEM_ID_SIZE);
|
||||
|
||||
ACPI_INFO((AE_INFO, "RSDP %p %05X (v%.2d %6.6s)",
|
||||
ACPI_INFO((AE_INFO, "RSDP %p %06X (v%.2d %6.6s)",
|
||||
ACPI_CAST_PTR(void, address),
|
||||
(ACPI_CAST_PTR(struct acpi_table_rsdp, header)->
|
||||
revision >
|
||||
|
@ -162,7 +162,7 @@ acpi_tb_print_table_header(acpi_physical_address address,
|
|||
acpi_tb_cleanup_table_header(&local_header, header);
|
||||
|
||||
ACPI_INFO((AE_INFO,
|
||||
"%4.4s %p %05X (v%.2d %6.6s %8.8s %08X %4.4s %08X)",
|
||||
"%4.4s %p %06X (v%.2d %6.6s %8.8s %08X %4.4s %08X)",
|
||||
local_header.signature, ACPI_CAST_PTR(void, address),
|
||||
local_header.length, local_header.revision,
|
||||
local_header.oem_id, local_header.oem_table_id,
|
||||
|
|
|
@ -350,7 +350,7 @@ acpi_tb_install_table(acpi_physical_address address,
|
|||
acpi_tb_delete_table(table_desc);
|
||||
}
|
||||
|
||||
unmap_and_exit:
|
||||
unmap_and_exit:
|
||||
|
||||
/* Always unmap the table header that we mapped above */
|
||||
|
||||
|
@ -430,8 +430,7 @@ acpi_tb_get_root_table_entry(u8 *table_entry, u32 table_entry_size)
|
|||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status __init
|
||||
acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
|
||||
acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
|
||||
{
|
||||
struct acpi_table_rsdp *rsdp;
|
||||
u32 table_entry_size;
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "actables.h"
|
||||
|
@ -147,6 +148,8 @@ acpi_initialize_tables(struct acpi_table_desc * initial_table_array,
|
|||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
ACPI_EXPORT_SYMBOL_INIT(acpi_initialize_tables)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_reallocate_root_table
|
||||
|
@ -161,7 +164,7 @@ acpi_initialize_tables(struct acpi_table_desc * initial_table_array,
|
|||
* kernel.
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status acpi_reallocate_root_table(void)
|
||||
acpi_status __init acpi_reallocate_root_table(void)
|
||||
{
|
||||
acpi_status status;
|
||||
|
||||
|
@ -181,6 +184,8 @@ acpi_status acpi_reallocate_root_table(void)
|
|||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
ACPI_EXPORT_SYMBOL_INIT(acpi_reallocate_root_table)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_get_table_header
|
||||
|
@ -356,6 +361,7 @@ acpi_get_table_with_size(char *signature,
|
|||
|
||||
return (AE_NOT_FOUND);
|
||||
}
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_get_table_with_size)
|
||||
|
||||
acpi_status
|
||||
|
@ -367,6 +373,7 @@ acpi_get_table(char *signature,
|
|||
return acpi_get_table_with_size(signature,
|
||||
instance, out_table, &tbl_size);
|
||||
}
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_get_table)
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -424,7 +431,6 @@ acpi_get_table_by_index(u32 table_index, struct acpi_table_header **table)
|
|||
|
||||
ACPI_EXPORT_SYMBOL(acpi_get_table_by_index)
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_install_table_handler
|
||||
|
@ -465,7 +471,7 @@ acpi_install_table_handler(acpi_table_handler handler, void *context)
|
|||
acpi_gbl_table_handler = handler;
|
||||
acpi_gbl_table_handler_context = context;
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -506,7 +512,7 @@ acpi_status acpi_remove_table_handler(acpi_table_handler handler)
|
|||
|
||||
acpi_gbl_table_handler = NULL;
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acnamesp.h"
|
||||
|
@ -65,7 +66,7 @@ static acpi_status acpi_tb_load_namespace(void);
|
|||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status acpi_load_tables(void)
|
||||
acpi_status __init acpi_load_tables(void)
|
||||
{
|
||||
acpi_status status;
|
||||
|
||||
|
@ -82,7 +83,7 @@ acpi_status acpi_load_tables(void)
|
|||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_load_tables)
|
||||
ACPI_EXPORT_SYMBOL_INIT(acpi_load_tables)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
|
@ -200,7 +201,7 @@ static acpi_status acpi_tb_load_namespace(void)
|
|||
|
||||
ACPI_INFO((AE_INFO, "All ACPI Tables successfully acquired"));
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_TABLES);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
@ -268,7 +269,7 @@ acpi_status acpi_load_table(struct acpi_table_header *table)
|
|||
acpi_gbl_table_handler_context);
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_INTERPRETER);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -111,7 +111,7 @@ acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp)
|
|||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status acpi_find_root_pointer(acpi_size *table_address)
|
||||
acpi_status __init acpi_find_root_pointer(acpi_size *table_address)
|
||||
{
|
||||
u8 *table_ptr;
|
||||
u8 *mem_rover;
|
||||
|
|
|
@ -48,6 +48,39 @@
|
|||
#define _COMPONENT ACPI_UTILITIES
|
||||
ACPI_MODULE_NAME("utalloc")
|
||||
|
||||
#if !defined (USE_NATIVE_ALLOCATE_ZEROED)
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_os_allocate_zeroed
|
||||
*
|
||||
* PARAMETERS: size - Size of the allocation
|
||||
*
|
||||
* RETURN: Address of the allocated memory on success, NULL on failure.
|
||||
*
|
||||
* DESCRIPTION: Subsystem equivalent of calloc. Allocate and zero memory.
|
||||
* This is the default implementation. Can be overridden via the
|
||||
* USE_NATIVE_ALLOCATE_ZEROED flag.
|
||||
*
|
||||
******************************************************************************/
|
||||
void *acpi_os_allocate_zeroed(acpi_size size)
|
||||
{
|
||||
void *allocation;
|
||||
|
||||
ACPI_FUNCTION_ENTRY();
|
||||
|
||||
allocation = acpi_os_allocate(size);
|
||||
if (allocation) {
|
||||
|
||||
/* Clear the memory block */
|
||||
|
||||
ACPI_MEMSET(allocation, 0, size);
|
||||
}
|
||||
|
||||
return (allocation);
|
||||
}
|
||||
|
||||
#endif /* !USE_NATIVE_ALLOCATE_ZEROED */
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ut_create_caches
|
||||
|
@ -59,6 +92,7 @@ ACPI_MODULE_NAME("utalloc")
|
|||
* DESCRIPTION: Create all local caches
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
acpi_status acpi_ut_create_caches(void)
|
||||
{
|
||||
acpi_status status;
|
||||
|
@ -175,10 +209,10 @@ acpi_status acpi_ut_delete_caches(void)
|
|||
|
||||
/* Free memory lists */
|
||||
|
||||
ACPI_FREE(acpi_gbl_global_list);
|
||||
acpi_os_free(acpi_gbl_global_list);
|
||||
acpi_gbl_global_list = NULL;
|
||||
|
||||
ACPI_FREE(acpi_gbl_ns_node_list);
|
||||
acpi_os_free(acpi_gbl_ns_node_list);
|
||||
acpi_gbl_ns_node_list = NULL;
|
||||
#endif
|
||||
|
||||
|
@ -302,82 +336,3 @@ acpi_ut_initialize_buffer(struct acpi_buffer * buffer,
|
|||
ACPI_MEMSET(buffer->pointer, 0, required_length);
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
#ifdef NOT_USED_BY_LINUX
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ut_allocate
|
||||
*
|
||||
* PARAMETERS: size - Size of the allocation
|
||||
* component - Component type of caller
|
||||
* module - Source file name of caller
|
||||
* line - Line number of caller
|
||||
*
|
||||
* RETURN: Address of the allocated memory on success, NULL on failure.
|
||||
*
|
||||
* DESCRIPTION: Subsystem equivalent of malloc.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void *acpi_ut_allocate(acpi_size size,
|
||||
u32 component, const char *module, u32 line)
|
||||
{
|
||||
void *allocation;
|
||||
|
||||
ACPI_FUNCTION_TRACE_U32(ut_allocate, size);
|
||||
|
||||
/* Check for an inadvertent size of zero bytes */
|
||||
|
||||
if (!size) {
|
||||
ACPI_WARNING((module, line,
|
||||
"Attempt to allocate zero bytes, allocating 1 byte"));
|
||||
size = 1;
|
||||
}
|
||||
|
||||
allocation = acpi_os_allocate(size);
|
||||
if (!allocation) {
|
||||
|
||||
/* Report allocation error */
|
||||
|
||||
ACPI_WARNING((module, line,
|
||||
"Could not allocate size %u", (u32) size));
|
||||
|
||||
return_PTR(NULL);
|
||||
}
|
||||
|
||||
return_PTR(allocation);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ut_allocate_zeroed
|
||||
*
|
||||
* PARAMETERS: size - Size of the allocation
|
||||
* component - Component type of caller
|
||||
* module - Source file name of caller
|
||||
* line - Line number of caller
|
||||
*
|
||||
* RETURN: Address of the allocated memory on success, NULL on failure.
|
||||
*
|
||||
* DESCRIPTION: Subsystem equivalent of calloc. Allocate and zero memory.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void *acpi_ut_allocate_zeroed(acpi_size size,
|
||||
u32 component, const char *module, u32 line)
|
||||
{
|
||||
void *allocation;
|
||||
|
||||
ACPI_FUNCTION_ENTRY();
|
||||
|
||||
allocation = acpi_ut_allocate(size, component, module, line);
|
||||
if (allocation) {
|
||||
|
||||
/* Clear the memory block */
|
||||
|
||||
ACPI_MEMSET(allocation, 0, size);
|
||||
}
|
||||
|
||||
return (allocation);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -65,7 +65,7 @@ ACPI_MODULE_NAME("utcache")
|
|||
acpi_status
|
||||
acpi_os_create_cache(char *cache_name,
|
||||
u16 object_size,
|
||||
u16 max_depth, struct acpi_memory_list ** return_cache)
|
||||
u16 max_depth, struct acpi_memory_list **return_cache)
|
||||
{
|
||||
struct acpi_memory_list *cache;
|
||||
|
||||
|
|
|
@ -552,7 +552,7 @@ acpi_ut_copy_esimple_to_isimple(union acpi_object *external_object,
|
|||
*ret_internal_object = internal_object;
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
|
||||
error_exit:
|
||||
error_exit:
|
||||
acpi_ut_remove_reference(internal_object);
|
||||
return_ACPI_STATUS(AE_NO_MEMORY);
|
||||
}
|
||||
|
@ -899,7 +899,7 @@ acpi_ut_copy_ielement_to_ielement(u8 object_type,
|
|||
|
||||
return (status);
|
||||
|
||||
error_exit:
|
||||
error_exit:
|
||||
acpi_ut_remove_reference(target_object);
|
||||
return (status);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
|
||||
|
|
|
@ -41,7 +41,6 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acnamesp.h"
|
||||
|
|
|
@ -649,7 +649,7 @@ acpi_ut_update_object_reference(union acpi_operand_object *object, u16 action)
|
|||
|
||||
return (AE_OK);
|
||||
|
||||
error_exit:
|
||||
error_exit:
|
||||
|
||||
ACPI_EXCEPTION((AE_INFO, status,
|
||||
"Could not update object reference count"));
|
||||
|
|
|
@ -181,7 +181,7 @@ acpi_ut_evaluate_object(struct acpi_namespace_node *prefix_node,
|
|||
|
||||
*return_desc = info->return_object;
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
ACPI_FREE(info);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -41,8 +41,9 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#define ACPI_DEFINE_EXCEPTION_TABLE
|
||||
#include <linux/export.h>
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
|
||||
|
|
|
@ -41,9 +41,9 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
#define DEFINE_ACPI_GLOBALS
|
||||
|
||||
#include <linux/export.h>
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
|
||||
|
@ -289,6 +289,16 @@ acpi_status acpi_ut_init_globals(void)
|
|||
|
||||
acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS - 1] = 0x80000000;
|
||||
|
||||
/* Event counters */
|
||||
|
||||
acpi_method_count = 0;
|
||||
acpi_sci_count = 0;
|
||||
acpi_gpe_count = 0;
|
||||
|
||||
for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++) {
|
||||
acpi_fixed_event_count[i] = 0;
|
||||
}
|
||||
|
||||
#if (!ACPI_REDUCED_HARDWARE)
|
||||
|
||||
/* GPE/SCI support */
|
||||
|
@ -378,6 +388,11 @@ acpi_status acpi_ut_init_globals(void)
|
|||
/* Public globals */
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_gbl_FADT)
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_dbg_level)
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_dbg_layer)
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_gpe_count)
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_current_gpe_count)
|
||||
|
|
|
@ -184,7 +184,7 @@ acpi_ut_execute_SUB(struct acpi_namespace_node *device_node,
|
|||
sub->length = length;
|
||||
*return_id = sub;
|
||||
|
||||
cleanup:
|
||||
cleanup:
|
||||
|
||||
/* On exit, we must delete the return object */
|
||||
|
||||
|
|
|
@ -180,7 +180,7 @@ union acpi_operand_object *acpi_ut_create_package_object(u32 count)
|
|||
package_elements = ACPI_ALLOCATE_ZEROED(((acpi_size) count +
|
||||
1) * sizeof(void *));
|
||||
if (!package_elements) {
|
||||
acpi_ut_remove_reference(package_desc);
|
||||
ACPI_FREE(package_desc);
|
||||
return_PTR(NULL);
|
||||
}
|
||||
|
||||
|
@ -396,7 +396,6 @@ void *acpi_ut_allocate_object_desc_dbg(const char *module_name,
|
|||
|
||||
/* Mark the descriptor type */
|
||||
|
||||
memset(object, 0, sizeof(union acpi_operand_object));
|
||||
ACPI_SET_DESCRIPTOR_TYPE(object, ACPI_DESC_TYPE_OPERAND);
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_ALLOCATIONS, "%p Size %X\n",
|
||||
|
@ -461,25 +460,28 @@ acpi_ut_get_simple_object_size(union acpi_operand_object *internal_object,
|
|||
|
||||
ACPI_FUNCTION_TRACE_PTR(ut_get_simple_object_size, internal_object);
|
||||
|
||||
/*
|
||||
* Handle a null object (Could be a uninitialized package
|
||||
* element -- which is legal)
|
||||
*/
|
||||
if (!internal_object) {
|
||||
*obj_length = sizeof(union acpi_object);
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
}
|
||||
|
||||
/* Start with the length of the Acpi object */
|
||||
/* Start with the length of the (external) Acpi object */
|
||||
|
||||
length = sizeof(union acpi_object);
|
||||
|
||||
/* A NULL object is allowed, can be a legal uninitialized package element */
|
||||
|
||||
if (!internal_object) {
|
||||
/*
|
||||
* Object is NULL, just return the length of union acpi_object
|
||||
* (A NULL union acpi_object is an object of all zeroes.)
|
||||
*/
|
||||
*obj_length = ACPI_ROUND_UP_TO_NATIVE_WORD(length);
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
}
|
||||
|
||||
/* A Namespace Node should never appear here */
|
||||
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE(internal_object) == ACPI_DESC_TYPE_NAMED) {
|
||||
|
||||
/* Object is a named object (reference), just return the length */
|
||||
/* A namespace node should never get here */
|
||||
|
||||
*obj_length = ACPI_ROUND_UP_TO_NATIVE_WORD(length);
|
||||
return_ACPI_STATUS(status);
|
||||
return_ACPI_STATUS(AE_AML_INTERNAL);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -148,7 +148,7 @@ acpi_status acpi_ut_allocate_owner_id(acpi_owner_id * owner_id)
|
|||
ACPI_ERROR((AE_INFO,
|
||||
"Could not allocate new OwnerId (255 max), AE_OWNER_ID_LIMIT"));
|
||||
|
||||
exit:
|
||||
exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_CACHES);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -643,7 +643,7 @@ acpi_ut_validate_resource(struct acpi_walk_state *walk_state,
|
|||
|
||||
return (AE_OK);
|
||||
|
||||
invalid_resource:
|
||||
invalid_resource:
|
||||
|
||||
if (walk_state) {
|
||||
ACPI_ERROR((AE_INFO,
|
||||
|
@ -652,7 +652,7 @@ acpi_ut_validate_resource(struct acpi_walk_state *walk_state,
|
|||
}
|
||||
return (AE_AML_INVALID_RESOURCE_TYPE);
|
||||
|
||||
bad_resource_length:
|
||||
bad_resource_length:
|
||||
|
||||
if (walk_state) {
|
||||
ACPI_ERROR((AE_INFO,
|
||||
|
|
|
@ -161,7 +161,6 @@ union acpi_generic_state *acpi_ut_create_generic_state(void)
|
|||
if (state) {
|
||||
|
||||
/* Initialize */
|
||||
memset(state, 0, sizeof(union acpi_generic_state));
|
||||
state->common.descriptor_type = ACPI_DESC_TYPE_STATE;
|
||||
}
|
||||
|
||||
|
|
|
@ -310,7 +310,7 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
|
|||
|
||||
/* All done, normal exit */
|
||||
|
||||
all_done:
|
||||
all_done:
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Converted value: %8.8X%8.8X\n",
|
||||
ACPI_FORMAT_UINT64(return_value)));
|
||||
|
@ -318,7 +318,7 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
|
|||
*ret_integer = return_value;
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
|
||||
error_exit:
|
||||
error_exit:
|
||||
/* Base was set/validated above */
|
||||
|
||||
if (base == 10) {
|
||||
|
@ -584,3 +584,65 @@ void ut_convert_backslashes(char *pathname)
|
|||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION)
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ut_safe_strcpy, acpi_ut_safe_strcat, acpi_ut_safe_strncat
|
||||
*
|
||||
* PARAMETERS: Adds a "DestSize" parameter to each of the standard string
|
||||
* functions. This is the size of the Destination buffer.
|
||||
*
|
||||
* RETURN: TRUE if the operation would overflow the destination buffer.
|
||||
*
|
||||
* DESCRIPTION: Safe versions of standard Clib string functions. Ensure that
|
||||
* the result of the operation will not overflow the output string
|
||||
* buffer.
|
||||
*
|
||||
* NOTE: These functions are typically only helpful for processing
|
||||
* user input and command lines. For most ACPICA code, the
|
||||
* required buffer length is precisely calculated before buffer
|
||||
* allocation, so the use of these functions is unnecessary.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
u8 acpi_ut_safe_strcpy(char *dest, acpi_size dest_size, char *source)
|
||||
{
|
||||
|
||||
if (ACPI_STRLEN(source) >= dest_size) {
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
ACPI_STRCPY(dest, source);
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
u8 acpi_ut_safe_strcat(char *dest, acpi_size dest_size, char *source)
|
||||
{
|
||||
|
||||
if ((ACPI_STRLEN(dest) + ACPI_STRLEN(source)) >= dest_size) {
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
ACPI_STRCAT(dest, source);
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
u8
|
||||
acpi_ut_safe_strncat(char *dest,
|
||||
acpi_size dest_size,
|
||||
char *source, acpi_size max_transfer_length)
|
||||
{
|
||||
acpi_size actual_transfer_length;
|
||||
|
||||
actual_transfer_length =
|
||||
ACPI_MIN(max_transfer_length, ACPI_STRLEN(source));
|
||||
|
||||
if ((ACPI_STRLEN(dest) + actual_transfer_length) >= dest_size) {
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
ACPI_STRNCAT(dest, source, max_transfer_length);
|
||||
return (FALSE);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -130,10 +130,23 @@ void *acpi_ut_allocate_and_track(acpi_size size,
|
|||
struct acpi_debug_mem_block *allocation;
|
||||
acpi_status status;
|
||||
|
||||
/* Check for an inadvertent size of zero bytes */
|
||||
|
||||
if (!size) {
|
||||
ACPI_WARNING((module, line,
|
||||
"Attempt to allocate zero bytes, allocating 1 byte"));
|
||||
size = 1;
|
||||
}
|
||||
|
||||
allocation =
|
||||
acpi_ut_allocate(size + sizeof(struct acpi_debug_mem_header),
|
||||
component, module, line);
|
||||
acpi_os_allocate(size + sizeof(struct acpi_debug_mem_header));
|
||||
if (!allocation) {
|
||||
|
||||
/* Report allocation error */
|
||||
|
||||
ACPI_WARNING((module, line,
|
||||
"Could not allocate size %u", (u32)size));
|
||||
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
|
@ -179,9 +192,17 @@ void *acpi_ut_allocate_zeroed_and_track(acpi_size size,
|
|||
struct acpi_debug_mem_block *allocation;
|
||||
acpi_status status;
|
||||
|
||||
/* Check for an inadvertent size of zero bytes */
|
||||
|
||||
if (!size) {
|
||||
ACPI_WARNING((module, line,
|
||||
"Attempt to allocate zero bytes, allocating 1 byte"));
|
||||
size = 1;
|
||||
}
|
||||
|
||||
allocation =
|
||||
acpi_ut_allocate_zeroed(size + sizeof(struct acpi_debug_mem_header),
|
||||
component, module, line);
|
||||
acpi_os_allocate_zeroed(size +
|
||||
sizeof(struct acpi_debug_mem_header));
|
||||
if (!allocation) {
|
||||
|
||||
/* Report allocation error */
|
||||
|
@ -409,7 +430,7 @@ acpi_ut_track_allocation(struct acpi_debug_mem_block *allocation,
|
|||
element->next = allocation;
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
status = acpi_ut_release_mutex(ACPI_MTX_MEMORY);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acdebug.h"
|
||||
|
@ -60,7 +61,7 @@ ACPI_MODULE_NAME("utxface")
|
|||
* DESCRIPTION: Shutdown the ACPICA subsystem and release all resources.
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status acpi_terminate(void)
|
||||
acpi_status __init acpi_terminate(void)
|
||||
{
|
||||
acpi_status status;
|
||||
|
||||
|
@ -104,7 +105,7 @@ acpi_status acpi_terminate(void)
|
|||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_terminate)
|
||||
ACPI_EXPORT_SYMBOL_INIT(acpi_terminate)
|
||||
|
||||
#ifndef ACPI_ASL_COMPILER
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
|
@ -207,6 +208,44 @@ acpi_status acpi_get_system_info(struct acpi_buffer * out_buffer)
|
|||
|
||||
ACPI_EXPORT_SYMBOL(acpi_get_system_info)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_get_statistics
|
||||
*
|
||||
* PARAMETERS: stats - Where the statistics are returned
|
||||
*
|
||||
* RETURN: status - the status of the call
|
||||
*
|
||||
* DESCRIPTION: Get the contents of the various system counters
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status acpi_get_statistics(struct acpi_statistics *stats)
|
||||
{
|
||||
ACPI_FUNCTION_TRACE(acpi_get_statistics);
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (!stats) {
|
||||
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/* Various interrupt-based event counters */
|
||||
|
||||
stats->sci_count = acpi_sci_count;
|
||||
stats->gpe_count = acpi_gpe_count;
|
||||
|
||||
ACPI_MEMCPY(stats->fixed_event_count, acpi_fixed_event_count,
|
||||
sizeof(acpi_fixed_event_count));
|
||||
|
||||
/* Other counters */
|
||||
|
||||
stats->method_count = acpi_method_count;
|
||||
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
}
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_get_statistics)
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_install_initialization_handler
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
#define EXPORT_ACPI_INTERFACES
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include "accommon.h"
|
||||
#include "acevents.h"
|
||||
|
@ -64,7 +65,7 @@ ACPI_MODULE_NAME("utxfinit")
|
|||
* called, so any early initialization belongs here.
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status acpi_initialize_subsystem(void)
|
||||
acpi_status __init acpi_initialize_subsystem(void)
|
||||
{
|
||||
acpi_status status;
|
||||
|
||||
|
@ -124,7 +125,8 @@ acpi_status acpi_initialize_subsystem(void)
|
|||
ACPI_DEBUGGER_EXEC(status = acpi_db_initialize());
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
ACPI_EXPORT_SYMBOL(acpi_initialize_subsystem)
|
||||
|
||||
ACPI_EXPORT_SYMBOL_INIT(acpi_initialize_subsystem)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
|
@ -138,7 +140,7 @@ ACPI_EXPORT_SYMBOL(acpi_initialize_subsystem)
|
|||
* Puts system into ACPI mode if it isn't already.
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status acpi_enable_subsystem(u32 flags)
|
||||
acpi_status __init acpi_enable_subsystem(u32 flags)
|
||||
{
|
||||
acpi_status status = AE_OK;
|
||||
|
||||
|
@ -228,7 +230,8 @@ acpi_status acpi_enable_subsystem(u32 flags)
|
|||
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
ACPI_EXPORT_SYMBOL(acpi_enable_subsystem)
|
||||
|
||||
ACPI_EXPORT_SYMBOL_INIT(acpi_enable_subsystem)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
|
@ -242,7 +245,7 @@ ACPI_EXPORT_SYMBOL(acpi_enable_subsystem)
|
|||
* objects and executing AML code for Regions, buffers, etc.
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status acpi_initialize_objects(u32 flags)
|
||||
acpi_status __init acpi_initialize_objects(u32 flags)
|
||||
{
|
||||
acpi_status status = AE_OK;
|
||||
|
||||
|
@ -314,4 +317,5 @@ acpi_status acpi_initialize_objects(u32 flags)
|
|||
acpi_gbl_startup_flags |= ACPI_INITIALIZED_OK;
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
ACPI_EXPORT_SYMBOL(acpi_initialize_objects)
|
||||
|
||||
ACPI_EXPORT_SYMBOL_INIT(acpi_initialize_objects)
|
||||
|
|
|
@ -88,7 +88,7 @@ static int __init dmar_parse_one_dev_scope(struct acpi_dmar_device_scope *scope,
|
|||
pr_warn("Device scope bus [%d] not found\n", scope->bus);
|
||||
break;
|
||||
}
|
||||
pdev = pci_get_slot(bus, PCI_DEVFN(path->dev, path->fn));
|
||||
pdev = pci_get_slot(bus, PCI_DEVFN(path->device, path->function));
|
||||
if (!pdev) {
|
||||
/* warning will be printed below */
|
||||
break;
|
||||
|
@ -99,7 +99,7 @@ static int __init dmar_parse_one_dev_scope(struct acpi_dmar_device_scope *scope,
|
|||
}
|
||||
if (!pdev) {
|
||||
pr_warn("Device scope device [%04x:%02x:%02x.%02x] not found\n",
|
||||
segment, scope->bus, path->dev, path->fn);
|
||||
segment, scope->bus, path->device, path->function);
|
||||
*dev = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -686,12 +686,12 @@ static void ir_parse_one_hpet_scope(struct acpi_dmar_device_scope *scope,
|
|||
* Access PCI directly due to the PCI
|
||||
* subsystem isn't initialized yet.
|
||||
*/
|
||||
bus = read_pci_config_byte(bus, path->dev, path->fn,
|
||||
bus = read_pci_config_byte(bus, path->device, path->function,
|
||||
PCI_SECONDARY_BUS);
|
||||
path++;
|
||||
}
|
||||
ir_hpet[ir_hpet_num].bus = bus;
|
||||
ir_hpet[ir_hpet_num].devfn = PCI_DEVFN(path->dev, path->fn);
|
||||
ir_hpet[ir_hpet_num].devfn = PCI_DEVFN(path->device, path->function);
|
||||
ir_hpet[ir_hpet_num].iommu = iommu;
|
||||
ir_hpet[ir_hpet_num].id = scope->enumeration_id;
|
||||
ir_hpet_num++;
|
||||
|
@ -714,13 +714,13 @@ static void ir_parse_one_ioapic_scope(struct acpi_dmar_device_scope *scope,
|
|||
* Access PCI directly due to the PCI
|
||||
* subsystem isn't initialized yet.
|
||||
*/
|
||||
bus = read_pci_config_byte(bus, path->dev, path->fn,
|
||||
bus = read_pci_config_byte(bus, path->device, path->function,
|
||||
PCI_SECONDARY_BUS);
|
||||
path++;
|
||||
}
|
||||
|
||||
ir_ioapic[ir_ioapic_num].bus = bus;
|
||||
ir_ioapic[ir_ioapic_num].devfn = PCI_DEVFN(path->dev, path->fn);
|
||||
ir_ioapic[ir_ioapic_num].devfn = PCI_DEVFN(path->device, path->function);
|
||||
ir_ioapic[ir_ioapic_num].iommu = iommu;
|
||||
ir_ioapic[ir_ioapic_num].id = scope->enumeration_id;
|
||||
ir_ioapic_num++;
|
||||
|
|
|
@ -100,7 +100,9 @@
|
|||
* ACPI PM timer
|
||||
* FACS table (Waking vectors and Global Lock)
|
||||
*/
|
||||
#ifndef ACPI_REDUCED_HARDWARE
|
||||
#define ACPI_REDUCED_HARDWARE FALSE
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
|
|
|
@ -46,25 +46,25 @@
|
|||
|
||||
/* Method names - these methods can appear anywhere in the namespace */
|
||||
|
||||
#define METHOD_NAME__SB_ "_SB_"
|
||||
#define METHOD_NAME__HID "_HID"
|
||||
#define METHOD_NAME__CID "_CID"
|
||||
#define METHOD_NAME__UID "_UID"
|
||||
#define METHOD_NAME__SUB "_SUB"
|
||||
#define METHOD_NAME__ADR "_ADR"
|
||||
#define METHOD_NAME__INI "_INI"
|
||||
#define METHOD_NAME__STA "_STA"
|
||||
#define METHOD_NAME__REG "_REG"
|
||||
#define METHOD_NAME__SEG "_SEG"
|
||||
#define METHOD_NAME__BBN "_BBN"
|
||||
#define METHOD_NAME__PRT "_PRT"
|
||||
#define METHOD_NAME__CRS "_CRS"
|
||||
#define METHOD_NAME__PRS "_PRS"
|
||||
#define METHOD_NAME__AEI "_AEI"
|
||||
#define METHOD_NAME__PRW "_PRW"
|
||||
#define METHOD_NAME__SRS "_SRS"
|
||||
#define METHOD_NAME__BBN "_BBN"
|
||||
#define METHOD_NAME__CBA "_CBA"
|
||||
#define METHOD_NAME__CID "_CID"
|
||||
#define METHOD_NAME__CRS "_CRS"
|
||||
#define METHOD_NAME__HID "_HID"
|
||||
#define METHOD_NAME__INI "_INI"
|
||||
#define METHOD_NAME__PLD "_PLD"
|
||||
#define METHOD_NAME__PRS "_PRS"
|
||||
#define METHOD_NAME__PRT "_PRT"
|
||||
#define METHOD_NAME__PRW "_PRW"
|
||||
#define METHOD_NAME__REG "_REG"
|
||||
#define METHOD_NAME__SB_ "_SB_"
|
||||
#define METHOD_NAME__SEG "_SEG"
|
||||
#define METHOD_NAME__SRS "_SRS"
|
||||
#define METHOD_NAME__STA "_STA"
|
||||
#define METHOD_NAME__SUB "_SUB"
|
||||
#define METHOD_NAME__UID "_UID"
|
||||
|
||||
/* Method names - these methods must appear at the namespace root */
|
||||
|
||||
|
|
|
@ -77,54 +77,80 @@ struct acpi_signal_fatal_info {
|
|||
/*
|
||||
* OSL Initialization and shutdown primitives
|
||||
*/
|
||||
acpi_status __init acpi_os_initialize(void);
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_initialize
|
||||
acpi_status acpi_os_initialize(void);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_terminate
|
||||
acpi_status acpi_os_terminate(void);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ACPI Table interfaces
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_root_pointer
|
||||
acpi_physical_address acpi_os_get_root_pointer(void);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_predefined_override
|
||||
acpi_status
|
||||
acpi_os_predefined_override(const struct acpi_predefined_names *init_val,
|
||||
acpi_string * new_val);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_table_override
|
||||
acpi_status
|
||||
acpi_os_table_override(struct acpi_table_header *existing_table,
|
||||
struct acpi_table_header **new_table);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_physical_table_override
|
||||
acpi_status
|
||||
acpi_os_physical_table_override(struct acpi_table_header *existing_table,
|
||||
acpi_physical_address * new_address,
|
||||
u32 *new_table_length);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Spinlock primitives
|
||||
*/
|
||||
#ifndef acpi_os_create_lock
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_lock
|
||||
acpi_status acpi_os_create_lock(acpi_spinlock * out_handle);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_lock
|
||||
void acpi_os_delete_lock(acpi_spinlock handle);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_lock
|
||||
acpi_cpu_flags acpi_os_acquire_lock(acpi_spinlock handle);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_lock
|
||||
void acpi_os_release_lock(acpi_spinlock handle, acpi_cpu_flags flags);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Semaphore primitives
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_semaphore
|
||||
acpi_status
|
||||
acpi_os_create_semaphore(u32 max_units,
|
||||
u32 initial_units, acpi_semaphore * out_handle);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_semaphore
|
||||
acpi_status acpi_os_delete_semaphore(acpi_semaphore handle);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_wait_semaphore
|
||||
acpi_status
|
||||
acpi_os_wait_semaphore(acpi_semaphore handle, u32 units, u16 timeout);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_signal_semaphore
|
||||
acpi_status acpi_os_signal_semaphore(acpi_semaphore handle, u32 units);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Mutex primitives. May be configured to use semaphores instead via
|
||||
|
@ -132,29 +158,48 @@ acpi_status acpi_os_signal_semaphore(acpi_semaphore handle, u32 units);
|
|||
*/
|
||||
#if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE)
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_mutex
|
||||
acpi_status acpi_os_create_mutex(acpi_mutex * out_handle);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_mutex
|
||||
void acpi_os_delete_mutex(acpi_mutex handle);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_mutex
|
||||
acpi_status acpi_os_acquire_mutex(acpi_mutex handle, u16 timeout);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_mutex
|
||||
void acpi_os_release_mutex(acpi_mutex handle);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Memory allocation and mapping
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_allocate
|
||||
void *acpi_os_allocate(acpi_size size);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_allocate_zeroed
|
||||
void *acpi_os_allocate_zeroed(acpi_size size);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_free
|
||||
void acpi_os_free(void *memory);
|
||||
#endif
|
||||
|
||||
void __iomem *acpi_os_map_memory(acpi_physical_address where,
|
||||
acpi_size length);
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_map_memory
|
||||
void *acpi_os_map_memory(acpi_physical_address where, acpi_size length);
|
||||
#endif
|
||||
|
||||
void acpi_os_unmap_memory(void __iomem * logical_address, acpi_size size);
|
||||
void early_acpi_os_unmap_memory(void __iomem * virt, acpi_size size);
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_unmap_memory
|
||||
void acpi_os_unmap_memory(void *logical_address, acpi_size size);
|
||||
#endif
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_physical_address
|
||||
acpi_status
|
||||
acpi_os_get_physical_address(void *logical_address,
|
||||
acpi_physical_address * physical_address);
|
||||
|
@ -163,117 +208,195 @@ acpi_os_get_physical_address(void *logical_address,
|
|||
/*
|
||||
* Memory/Object Cache
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_cache
|
||||
acpi_status
|
||||
acpi_os_create_cache(char *cache_name,
|
||||
u16 object_size,
|
||||
u16 max_depth, acpi_cache_t ** return_cache);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_cache
|
||||
acpi_status acpi_os_delete_cache(acpi_cache_t * cache);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_purge_cache
|
||||
acpi_status acpi_os_purge_cache(acpi_cache_t * cache);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_object
|
||||
void *acpi_os_acquire_object(acpi_cache_t * cache);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_object
|
||||
acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Interrupt handlers
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_install_interrupt_handler
|
||||
acpi_status
|
||||
acpi_os_install_interrupt_handler(u32 interrupt_number,
|
||||
acpi_osd_handler service_routine,
|
||||
void *context);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_remove_interrupt_handler
|
||||
acpi_status
|
||||
acpi_os_remove_interrupt_handler(u32 interrupt_number,
|
||||
acpi_osd_handler service_routine);
|
||||
|
||||
void acpi_os_gpe_count(u32 gpe_number);
|
||||
void acpi_os_fixed_event_count(u32 fixed_event_number);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Threads and Scheduling
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_thread_id
|
||||
acpi_thread_id acpi_os_get_thread_id(void);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_execute
|
||||
acpi_status
|
||||
acpi_os_execute(acpi_execute_type type,
|
||||
acpi_osd_exec_callback function, void *context);
|
||||
#endif
|
||||
|
||||
acpi_status
|
||||
acpi_os_hotplug_execute(acpi_osd_exec_callback function, void *context);
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_wait_events_complete
|
||||
void acpi_os_wait_events_complete(void);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_sleep
|
||||
void acpi_os_sleep(u64 milliseconds);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_stall
|
||||
void acpi_os_stall(u32 microseconds);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Platform and hardware-independent I/O interfaces
|
||||
*/
|
||||
acpi_status acpi_os_read_port(acpi_io_address address, u32 * value, u32 width);
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_read_port
|
||||
acpi_status acpi_os_read_port(acpi_io_address address, u32 *value, u32 width);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_write_port
|
||||
acpi_status acpi_os_write_port(acpi_io_address address, u32 value, u32 width);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Platform and hardware-independent physical memory interfaces
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_read_memory
|
||||
acpi_status
|
||||
acpi_os_read_memory(acpi_physical_address address, u64 *value, u32 width);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_write_memory
|
||||
acpi_status
|
||||
acpi_os_write_memory(acpi_physical_address address, u64 value, u32 width);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Platform and hardware-independent PCI configuration space access
|
||||
* Note: Can't use "Register" as a parameter, changed to "Reg" --
|
||||
* certain compilers complain.
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_read_pci_configuration
|
||||
acpi_status
|
||||
acpi_os_read_pci_configuration(struct acpi_pci_id *pci_id,
|
||||
u32 reg, u64 *value, u32 width);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_write_pci_configuration
|
||||
acpi_status
|
||||
acpi_os_write_pci_configuration(struct acpi_pci_id *pci_id,
|
||||
u32 reg, u64 value, u32 width);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Miscellaneous
|
||||
*/
|
||||
u64 acpi_os_get_timer(void);
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_readable
|
||||
u8 acpi_os_readable(void *pointer, acpi_size length);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_writable
|
||||
u8 acpi_os_writable(void *pointer, acpi_size length);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_timer
|
||||
u64 acpi_os_get_timer(void);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_signal
|
||||
acpi_status acpi_os_signal(u32 function, void *info);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Debug print routines
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_printf
|
||||
void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format, ...);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_vprintf
|
||||
void acpi_os_vprintf(const char *format, va_list args);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_output
|
||||
void acpi_os_redirect_output(void *destination);
|
||||
#endif
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
/*
|
||||
* Debug input
|
||||
*/
|
||||
u32 acpi_os_get_line(char *buffer);
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_line
|
||||
acpi_status acpi_os_get_line(char *buffer, u32 buffer_length, u32 *bytes_read);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Obtain ACPI table(s)
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_name
|
||||
acpi_status
|
||||
acpi_os_get_table_by_name(char *signature,
|
||||
u32 instance,
|
||||
struct acpi_table_header **table,
|
||||
acpi_physical_address * address);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_index
|
||||
acpi_status
|
||||
acpi_os_get_table_by_index(u32 index,
|
||||
struct acpi_table_header **table,
|
||||
u32 *instance, acpi_physical_address * address);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_address
|
||||
acpi_status
|
||||
acpi_os_get_table_by_address(acpi_physical_address address,
|
||||
struct acpi_table_header **table);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Directory manipulation
|
||||
*/
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_open_directory
|
||||
void *acpi_os_open_directory(char *pathname,
|
||||
char *wildcard_spec, char requested_file_type);
|
||||
#endif
|
||||
|
||||
/* requeste_file_type values */
|
||||
|
||||
#define REQUEST_FILE_ONLY 0
|
||||
#define REQUEST_DIR_ONLY 1
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_next_filename
|
||||
char *acpi_os_get_next_filename(void *dir_handle);
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_close_directory
|
||||
void acpi_os_close_directory(void *dir_handle);
|
||||
#endif
|
||||
|
||||
#endif /* __ACPIOSXF_H__ */
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20130823
|
||||
#define ACPI_CA_VERSION 0x20130927
|
||||
|
||||
#include <acpi/acconfig.h>
|
||||
#include <acpi/actypes.h>
|
||||
|
@ -54,6 +54,7 @@
|
|||
#include <acpi/acbuffer.h>
|
||||
|
||||
extern u8 acpi_gbl_permanent_mmap;
|
||||
extern u32 acpi_rsdt_forced;
|
||||
|
||||
/*
|
||||
* Globals that are publically available
|
||||
|
@ -106,39 +107,41 @@ extern u8 acpi_gbl_disable_ssdt_table_load;
|
|||
static ACPI_INLINE prototype {return(AE_OK);}
|
||||
|
||||
#define ACPI_HW_DEPENDENT_RETURN_VOID(prototype) \
|
||||
static ACPI_INLINE prototype {}
|
||||
static ACPI_INLINE prototype {return;}
|
||||
|
||||
#endif /* !ACPI_REDUCED_HARDWARE */
|
||||
|
||||
extern u32 acpi_rsdt_forced;
|
||||
/*
|
||||
* Initialization
|
||||
*/
|
||||
acpi_status
|
||||
acpi_status __init
|
||||
acpi_initialize_tables(struct acpi_table_desc *initial_storage,
|
||||
u32 initial_table_count, u8 allow_resize);
|
||||
|
||||
acpi_status __init acpi_initialize_subsystem(void);
|
||||
|
||||
acpi_status acpi_enable_subsystem(u32 flags);
|
||||
acpi_status __init acpi_enable_subsystem(u32 flags);
|
||||
|
||||
acpi_status acpi_initialize_objects(u32 flags);
|
||||
acpi_status __init acpi_initialize_objects(u32 flags);
|
||||
|
||||
acpi_status acpi_terminate(void);
|
||||
acpi_status __init acpi_terminate(void);
|
||||
|
||||
/*
|
||||
* Miscellaneous global interfaces
|
||||
*/
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_enable(void))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_disable(void))
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
acpi_status acpi_subsystem_status(void);
|
||||
acpi_status acpi_subsystem_status(void);
|
||||
#endif
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
acpi_status acpi_get_system_info(struct acpi_buffer *ret_buffer);
|
||||
#endif
|
||||
|
||||
acpi_status acpi_get_statistics(struct acpi_statistics *stats);
|
||||
|
||||
const char *acpi_format_exception(acpi_status exception);
|
||||
|
||||
acpi_status acpi_purge_cached_objects(void);
|
||||
|
@ -158,15 +161,6 @@ acpi_status
|
|||
acpi_decode_pld_buffer(u8 *in_buffer,
|
||||
acpi_size length, struct acpi_pld_info **return_buffer);
|
||||
|
||||
/*
|
||||
* ACPI Memory management
|
||||
*/
|
||||
void *acpi_allocate(u32 size);
|
||||
|
||||
void *acpi_callocate(u32 size);
|
||||
|
||||
void acpi_free(void *address);
|
||||
|
||||
/*
|
||||
* ACPI table load/unload interfaces
|
||||
*/
|
||||
|
@ -174,14 +168,14 @@ acpi_status acpi_load_table(struct acpi_table_header *table);
|
|||
|
||||
acpi_status acpi_unload_parent_table(acpi_handle object);
|
||||
|
||||
acpi_status acpi_load_tables(void);
|
||||
acpi_status __init acpi_load_tables(void);
|
||||
|
||||
/*
|
||||
* ACPI table manipulation interfaces
|
||||
*/
|
||||
acpi_status acpi_reallocate_root_table(void);
|
||||
acpi_status __init acpi_reallocate_root_table(void);
|
||||
|
||||
acpi_status acpi_find_root_pointer(acpi_size *rsdp_address);
|
||||
acpi_status __init acpi_find_root_pointer(acpi_size *rsdp_address);
|
||||
|
||||
acpi_status acpi_unload_table_id(acpi_owner_id id);
|
||||
|
||||
|
@ -193,6 +187,7 @@ acpi_status
|
|||
acpi_get_table_with_size(acpi_string signature,
|
||||
u32 instance, struct acpi_table_header **out_table,
|
||||
acpi_size *tbl_size);
|
||||
|
||||
acpi_status
|
||||
acpi_get_table(acpi_string signature,
|
||||
u32 instance, struct acpi_table_header **out_table);
|
||||
|
@ -283,13 +278,16 @@ ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
|||
acpi_install_sci_handler(acpi_sci_handler
|
||||
address,
|
||||
void *context))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_remove_sci_handler(acpi_sci_handler
|
||||
address))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_install_global_event_handler
|
||||
(acpi_gbl_event_handler handler,
|
||||
void *context))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_install_fixed_event_handler(u32
|
||||
acpi_event,
|
||||
|
@ -297,10 +295,12 @@ ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
|||
handler,
|
||||
void
|
||||
*context))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_remove_fixed_event_handler(u32 acpi_event,
|
||||
acpi_event_handler
|
||||
handler))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_install_gpe_handler(acpi_handle
|
||||
gpe_device,
|
||||
|
@ -309,6 +309,7 @@ ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
|||
acpi_gpe_handler
|
||||
address,
|
||||
void *context))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_remove_gpe_handler(acpi_handle gpe_device,
|
||||
u32 gpe_number,
|
||||
|
@ -345,6 +346,7 @@ acpi_status acpi_install_interface_handler(acpi_interface_handler handler);
|
|||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_acquire_global_lock(u16 timeout,
|
||||
u32 *handle))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_release_global_lock(u32 handle))
|
||||
|
||||
|
@ -371,6 +373,7 @@ ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
|||
acpi_get_event_status(u32 event,
|
||||
acpi_event_status
|
||||
*event_status))
|
||||
|
||||
/*
|
||||
* General Purpose Event (GPE) Interfaces
|
||||
*/
|
||||
|
@ -401,10 +404,12 @@ ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
|||
parent_device,
|
||||
acpi_handle gpe_device,
|
||||
u32 gpe_number))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_set_gpe_wake_mask(acpi_handle gpe_device,
|
||||
u32 gpe_number,
|
||||
u8 action))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_get_gpe_status(acpi_handle gpe_device,
|
||||
u32 gpe_number,
|
||||
|
@ -426,6 +431,7 @@ ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
|||
*gpe_block_address,
|
||||
u32 register_count,
|
||||
u32 interrupt_number))
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_remove_gpe_block(acpi_handle gpe_device))
|
||||
|
||||
|
@ -500,13 +506,13 @@ ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
|||
* Sleep/Wake interfaces
|
||||
*/
|
||||
acpi_status
|
||||
acpi_get_sleep_type_data(u8 sleep_state, u8 * slp_typ_a, u8 * slp_typ_b);
|
||||
acpi_get_sleep_type_data(u8 sleep_state, u8 *slp_typ_a, u8 *slp_typ_b);
|
||||
|
||||
acpi_status acpi_enter_sleep_state_prep(u8 sleep_state);
|
||||
|
||||
acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state);
|
||||
acpi_status acpi_enter_sleep_state(u8 sleep_state);
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void))
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_enter_sleep_state_s4bios(void))
|
||||
|
||||
acpi_status acpi_leave_sleep_state_prep(u8 sleep_state);
|
||||
|
||||
|
@ -515,7 +521,6 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state);
|
|||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_set_firmware_waking_vector(u32
|
||||
physical_address))
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 64
|
||||
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
||||
acpi_set_firmware_waking_vector64(u64
|
||||
|
@ -539,50 +544,53 @@ ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
|
|||
/*
|
||||
* Error/Warning output
|
||||
*/
|
||||
ACPI_PRINTF_LIKE(3)
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_error(const char *module_name,
|
||||
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
acpi_error(const char *module_name, u32 line_number, const char *format, ...);
|
||||
|
||||
ACPI_PRINTF_LIKE(4)
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_exception(const char *module_name,
|
||||
u32 line_number,
|
||||
acpi_status status, const char *format, ...) ACPI_PRINTF_LIKE(4);
|
||||
u32 line_number, acpi_status status, const char *format, ...);
|
||||
|
||||
ACPI_PRINTF_LIKE(3)
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_warning(const char *module_name,
|
||||
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
acpi_warning(const char *module_name, u32 line_number, const char *format, ...);
|
||||
|
||||
ACPI_PRINTF_LIKE(3)
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_info(const char *module_name,
|
||||
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
acpi_info(const char *module_name, u32 line_number, const char *format, ...);
|
||||
|
||||
ACPI_PRINTF_LIKE(3)
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_bios_error(const char *module_name,
|
||||
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
u32 line_number, const char *format, ...);
|
||||
|
||||
ACPI_PRINTF_LIKE(3)
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_bios_warning(const char *module_name,
|
||||
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
u32 line_number, const char *format, ...);
|
||||
|
||||
/*
|
||||
* Debug output
|
||||
*/
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
|
||||
ACPI_PRINTF_LIKE(6)
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_debug_print(u32 requested_debug_level,
|
||||
u32 line_number,
|
||||
const char *function_name,
|
||||
const char *module_name,
|
||||
u32 component_id, const char *format, ...) ACPI_PRINTF_LIKE(6);
|
||||
u32 component_id, const char *format, ...);
|
||||
|
||||
ACPI_PRINTF_LIKE(6)
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_debug_print_raw(u32 requested_debug_level,
|
||||
u32 line_number,
|
||||
const char *function_name,
|
||||
const char *module_name,
|
||||
u32 component_id,
|
||||
const char *format, ...) ACPI_PRINTF_LIKE(6);
|
||||
u32 component_id, const char *format, ...);
|
||||
#endif
|
||||
|
||||
#endif /* __ACXFACE_H__ */
|
||||
|
|
|
@ -146,7 +146,24 @@ struct acpi_table_rsdp {
|
|||
u8 reserved[3]; /* Reserved, must be zero */
|
||||
};
|
||||
|
||||
#define ACPI_RSDP_REV0_SIZE 20 /* Size of original ACPI 1.0 RSDP */
|
||||
/* Standalone struct for the ACPI 1.0 RSDP */
|
||||
|
||||
struct acpi_rsdp_common {
|
||||
char signature[8];
|
||||
u8 checksum;
|
||||
char oem_id[ACPI_OEM_ID_SIZE];
|
||||
u8 revision;
|
||||
u32 rsdt_physical_address;
|
||||
};
|
||||
|
||||
/* Standalone struct for the extended part of the RSDP (ACPI 2.0+) */
|
||||
|
||||
struct acpi_rsdp_extension {
|
||||
u32 length;
|
||||
u64 xsdt_physical_address;
|
||||
u8 extended_checksum;
|
||||
u8 reserved[3];
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
|
|
|
@ -444,8 +444,8 @@ enum acpi_dmar_scope_type {
|
|||
};
|
||||
|
||||
struct acpi_dmar_pci_path {
|
||||
u8 dev;
|
||||
u8 fn;
|
||||
u8 device;
|
||||
u8 function;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -299,13 +299,57 @@ typedef u32 acpi_physical_address;
|
|||
#endif
|
||||
|
||||
/*
|
||||
* All ACPICA functions that are available to the rest of the kernel are
|
||||
* tagged with this macro which can be defined as appropriate for the host.
|
||||
* All ACPICA external functions that are available to the rest of the kernel
|
||||
* are tagged with thes macros which can be defined as appropriate for the host.
|
||||
*
|
||||
* Notes:
|
||||
* ACPI_EXPORT_SYMBOL_INIT is used for initialization and termination
|
||||
* interfaces that may need special processing.
|
||||
* ACPI_EXPORT_SYMBOL is used for all other public external functions.
|
||||
*/
|
||||
#ifndef ACPI_EXPORT_SYMBOL_INIT
|
||||
#define ACPI_EXPORT_SYMBOL_INIT(symbol)
|
||||
#endif
|
||||
|
||||
#ifndef ACPI_EXPORT_SYMBOL
|
||||
#define ACPI_EXPORT_SYMBOL(symbol)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Compiler/Clibrary-dependent debug initialization. Used for ACPICA
|
||||
* utilities only.
|
||||
*/
|
||||
#ifndef ACPI_DEBUG_INITIALIZE
|
||||
#define ACPI_DEBUG_INITIALIZE()
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Configuration
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
|
||||
/*
|
||||
* Memory allocation tracking (used by acpi_exec to detect memory leaks)
|
||||
*/
|
||||
#define ACPI_MEM_PARAMETERS _COMPONENT, _acpi_module_name, __LINE__
|
||||
#define ACPI_ALLOCATE(a) acpi_ut_allocate_and_track ((acpi_size) (a), ACPI_MEM_PARAMETERS)
|
||||
#define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed_and_track ((acpi_size) (a), ACPI_MEM_PARAMETERS)
|
||||
#define ACPI_FREE(a) acpi_ut_free_and_track (a, ACPI_MEM_PARAMETERS)
|
||||
#define ACPI_MEM_TRACKING(a) a
|
||||
|
||||
#else
|
||||
/*
|
||||
* Normal memory allocation directly via the OS services layer
|
||||
*/
|
||||
#define ACPI_ALLOCATE(a) acpi_os_allocate ((acpi_size) (a))
|
||||
#define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed ((acpi_size) (a))
|
||||
#define ACPI_FREE(a) acpi_os_free (a)
|
||||
#define ACPI_MEM_TRACKING(a)
|
||||
|
||||
#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* ACPI Specification constants (Do not change unless the specification changes)
|
||||
|
@ -322,6 +366,7 @@ typedef u32 acpi_physical_address;
|
|||
#define ACPI_PM1_REGISTER_WIDTH 16
|
||||
#define ACPI_PM2_REGISTER_WIDTH 8
|
||||
#define ACPI_PM_TIMER_WIDTH 32
|
||||
#define ACPI_RESET_REGISTER_WIDTH 8
|
||||
|
||||
/* Names within the namespace are 4 bytes long */
|
||||
|
||||
|
@ -891,9 +936,13 @@ struct acpi_buffer {
|
|||
void *pointer; /* pointer to buffer */
|
||||
};
|
||||
|
||||
/* Free a buffer created in an struct acpi_buffer via ACPI_ALLOCATE_LOCAL_BUFFER */
|
||||
|
||||
#define ACPI_FREE_BUFFER(b) ACPI_FREE(b.pointer)
|
||||
/*
|
||||
* Free a buffer created in an struct acpi_buffer via ACPI_ALLOCATE_BUFFER.
|
||||
* Note: We use acpi_os_free here because acpi_os_allocate was used to allocate
|
||||
* the buffer. This purposefully bypasses the internal allocation tracking
|
||||
* mechanism (if it is enabled).
|
||||
*/
|
||||
#define ACPI_FREE_BUFFER(b) acpi_os_free((b).pointer)
|
||||
|
||||
/*
|
||||
* name_type for acpi_get_name
|
||||
|
@ -932,6 +981,16 @@ struct acpi_system_info {
|
|||
u32 debug_layer;
|
||||
};
|
||||
|
||||
/*
|
||||
* System statistics returned by acpi_get_statistics()
|
||||
*/
|
||||
struct acpi_statistics {
|
||||
u32 sci_count;
|
||||
u32 gpe_count;
|
||||
u32 fixed_event_count[ACPI_NUM_FIXED_EVENTS];
|
||||
u32 method_count;
|
||||
};
|
||||
|
||||
/* Table Event Types */
|
||||
|
||||
#define ACPI_TABLE_EVENT_LOAD 0x0
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче