diff options
Diffstat (limited to 'include/acpi')
-rw-r--r-- | include/acpi/acglobal.h | 20 | ||||
-rw-r--r-- | include/acpi/acinterp.h | 11 | ||||
-rw-r--r-- | include/acpi/acobject.h | 3 |
3 files changed, 23 insertions, 11 deletions
diff --git a/include/acpi/acglobal.h b/include/acpi/acglobal.h index 47a1fd8f2d8..e91008eaef2 100644 --- a/include/acpi/acglobal.h +++ b/include/acpi/acglobal.h | |||
@@ -170,10 +170,14 @@ ACPI_EXTERN u8 acpi_gbl_integer_nybble_width; | |||
170 | ACPI_EXTERN struct acpi_mutex_info acpi_gbl_mutex_info[ACPI_NUM_MUTEX]; | 170 | ACPI_EXTERN struct acpi_mutex_info acpi_gbl_mutex_info[ACPI_NUM_MUTEX]; |
171 | 171 | ||
172 | /* | 172 | /* |
173 | * Global lock semaphore works in conjunction with the actual HW global lock | 173 | * Global lock mutex is an actual AML mutex object |
174 | * Global lock semaphore works in conjunction with the HW global lock | ||
174 | */ | 175 | */ |
175 | ACPI_EXTERN acpi_mutex acpi_gbl_global_lock_mutex; | 176 | ACPI_EXTERN union acpi_operand_object *acpi_gbl_global_lock_mutex; |
176 | ACPI_EXTERN acpi_semaphore acpi_gbl_global_lock_semaphore; | 177 | ACPI_EXTERN acpi_semaphore acpi_gbl_global_lock_semaphore; |
178 | ACPI_EXTERN u16 acpi_gbl_global_lock_handle; | ||
179 | ACPI_EXTERN u8 acpi_gbl_global_lock_acquired; | ||
180 | ACPI_EXTERN u8 acpi_gbl_global_lock_present; | ||
177 | 181 | ||
178 | /* | 182 | /* |
179 | * Spinlocks are used for interfaces that can be possibly called at | 183 | * Spinlocks are used for interfaces that can be possibly called at |
@@ -215,22 +219,22 @@ ACPI_EXTERN acpi_exception_handler acpi_gbl_exception_handler; | |||
215 | ACPI_EXTERN acpi_init_handler acpi_gbl_init_handler; | 219 | ACPI_EXTERN acpi_init_handler acpi_gbl_init_handler; |
216 | ACPI_EXTERN struct acpi_walk_state *acpi_gbl_breakpoint_walk; | 220 | ACPI_EXTERN struct acpi_walk_state *acpi_gbl_breakpoint_walk; |
217 | 221 | ||
222 | /* Owner ID support */ | ||
223 | |||
224 | ACPI_EXTERN u32 acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS]; | ||
225 | ACPI_EXTERN u8 acpi_gbl_last_owner_id_index; | ||
226 | ACPI_EXTERN u8 acpi_gbl_next_owner_id_offset; | ||
227 | |||
218 | /* Misc */ | 228 | /* Misc */ |
219 | 229 | ||
220 | ACPI_EXTERN u32 acpi_gbl_original_mode; | 230 | ACPI_EXTERN u32 acpi_gbl_original_mode; |
221 | ACPI_EXTERN u32 acpi_gbl_rsdp_original_location; | 231 | ACPI_EXTERN u32 acpi_gbl_rsdp_original_location; |
222 | ACPI_EXTERN u32 acpi_gbl_ns_lookup_count; | 232 | ACPI_EXTERN u32 acpi_gbl_ns_lookup_count; |
223 | ACPI_EXTERN u32 acpi_gbl_ps_find_count; | 233 | ACPI_EXTERN u32 acpi_gbl_ps_find_count; |
224 | ACPI_EXTERN u32 acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS]; | ||
225 | ACPI_EXTERN u16 acpi_gbl_pm1_enable_register_save; | 234 | ACPI_EXTERN u16 acpi_gbl_pm1_enable_register_save; |
226 | ACPI_EXTERN u16 acpi_gbl_global_lock_handle; | ||
227 | ACPI_EXTERN u8 acpi_gbl_last_owner_id_index; | ||
228 | ACPI_EXTERN u8 acpi_gbl_next_owner_id_offset; | ||
229 | ACPI_EXTERN u8 acpi_gbl_debugger_configuration; | 235 | ACPI_EXTERN u8 acpi_gbl_debugger_configuration; |
230 | ACPI_EXTERN u8 acpi_gbl_global_lock_acquired; | ||
231 | ACPI_EXTERN u8 acpi_gbl_step_to_next_call; | 236 | ACPI_EXTERN u8 acpi_gbl_step_to_next_call; |
232 | ACPI_EXTERN u8 acpi_gbl_acpi_hardware_present; | 237 | ACPI_EXTERN u8 acpi_gbl_acpi_hardware_present; |
233 | ACPI_EXTERN u8 acpi_gbl_global_lock_present; | ||
234 | ACPI_EXTERN u8 acpi_gbl_events_initialized; | 238 | ACPI_EXTERN u8 acpi_gbl_events_initialized; |
235 | ACPI_EXTERN u8 acpi_gbl_system_awake_and_running; | 239 | ACPI_EXTERN u8 acpi_gbl_system_awake_and_running; |
236 | 240 | ||
diff --git a/include/acpi/acinterp.h b/include/acpi/acinterp.h index ce7c9d65391..23863886e80 100644 --- a/include/acpi/acinterp.h +++ b/include/acpi/acinterp.h | |||
@@ -248,9 +248,16 @@ acpi_ex_acquire_mutex(union acpi_operand_object *time_desc, | |||
248 | struct acpi_walk_state *walk_state); | 248 | struct acpi_walk_state *walk_state); |
249 | 249 | ||
250 | acpi_status | 250 | acpi_status |
251 | acpi_ex_acquire_mutex_object(u16 timeout, | ||
252 | union acpi_operand_object *obj_desc, | ||
253 | acpi_thread_id thread_id); | ||
254 | |||
255 | acpi_status | ||
251 | acpi_ex_release_mutex(union acpi_operand_object *obj_desc, | 256 | acpi_ex_release_mutex(union acpi_operand_object *obj_desc, |
252 | struct acpi_walk_state *walk_state); | 257 | struct acpi_walk_state *walk_state); |
253 | 258 | ||
259 | acpi_status acpi_ex_release_mutex_object(union acpi_operand_object *obj_desc); | ||
260 | |||
254 | void acpi_ex_release_all_mutexes(struct acpi_thread_state *thread); | 261 | void acpi_ex_release_all_mutexes(struct acpi_thread_state *thread); |
255 | 262 | ||
256 | void acpi_ex_unlink_mutex(union acpi_operand_object *obj_desc); | 263 | void acpi_ex_unlink_mutex(union acpi_operand_object *obj_desc); |
@@ -455,9 +462,9 @@ void acpi_ex_relinquish_interpreter(void); | |||
455 | 462 | ||
456 | void acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc); | 463 | void acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc); |
457 | 464 | ||
458 | u8 acpi_ex_acquire_global_lock(u32 rule); | 465 | void acpi_ex_acquire_global_lock(u32 rule); |
459 | 466 | ||
460 | void acpi_ex_release_global_lock(u8 locked); | 467 | void acpi_ex_release_global_lock(void); |
461 | 468 | ||
462 | void acpi_ex_eisa_id_to_string(u32 numeric_id, char *out_string); | 469 | void acpi_ex_eisa_id_to_string(u32 numeric_id, char *out_string); |
463 | 470 | ||
diff --git a/include/acpi/acobject.h b/include/acpi/acobject.h index 7e1211a8b8f..2461bb9ab3e 100644 --- a/include/acpi/acobject.h +++ b/include/acpi/acobject.h | |||
@@ -155,8 +155,9 @@ struct acpi_object_event { | |||
155 | struct acpi_object_mutex { | 155 | struct acpi_object_mutex { |
156 | ACPI_OBJECT_COMMON_HEADER u8 sync_level; /* 0-15, specified in Mutex() call */ | 156 | ACPI_OBJECT_COMMON_HEADER u8 sync_level; /* 0-15, specified in Mutex() call */ |
157 | u16 acquisition_depth; /* Allow multiple Acquires, same thread */ | 157 | u16 acquisition_depth; /* Allow multiple Acquires, same thread */ |
158 | struct acpi_thread_state *owner_thread; /* Current owner of the mutex */ | ||
159 | acpi_mutex os_mutex; /* Actual OS synchronization object */ | 158 | acpi_mutex os_mutex; /* Actual OS synchronization object */ |
159 | acpi_thread_id thread_id; /* Current owner of the mutex */ | ||
160 | struct acpi_thread_state *owner_thread; /* Current owner of the mutex */ | ||
160 | union acpi_operand_object *prev; /* Link for list of acquired mutexes */ | 161 | union acpi_operand_object *prev; /* Link for list of acquired mutexes */ |
161 | union acpi_operand_object *next; /* Link for list of acquired mutexes */ | 162 | union acpi_operand_object *next; /* Link for list of acquired mutexes */ |
162 | struct acpi_namespace_node *node; /* Containing namespace node */ | 163 | struct acpi_namespace_node *node; /* Containing namespace node */ |