0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef __ACEVENTS_H__
0011 #define __ACEVENTS_H__
0012
0013
0014
0015
0016
0017
0018 #ifdef ACPI_USE_GPE_POLLING
0019 #define ACPI_GPE_IS_POLLING_NEEDED(__gpe__) \
0020 ((__gpe__)->runtime_count == 1 && \
0021 (__gpe__)->flags & ACPI_GPE_INITIALIZED && \
0022 ((__gpe__)->flags & ACPI_GPE_XRUPT_TYPE_MASK) == ACPI_GPE_EDGE_TRIGGERED)
0023 #else
0024 #define ACPI_GPE_IS_POLLING_NEEDED(__gpe__) FALSE
0025 #endif
0026
0027
0028
0029
0030 acpi_status acpi_ev_initialize_events(void);
0031
0032 acpi_status acpi_ev_install_xrupt_handlers(void);
0033
0034 u32 acpi_ev_fixed_event_detect(void);
0035
0036
0037
0038
0039 u8 acpi_ev_is_notify_object(struct acpi_namespace_node *node);
0040
0041 u32 acpi_ev_get_gpe_number_index(u32 gpe_number);
0042
0043 acpi_status
0044 acpi_ev_queue_notify_request(struct acpi_namespace_node *node,
0045 u32 notify_value);
0046
0047
0048
0049
0050 acpi_status acpi_ev_init_global_lock_handler(void);
0051
0052 ACPI_HW_DEPENDENT_RETURN_OK(acpi_status
0053 acpi_ev_acquire_global_lock(u16 timeout))
0054 ACPI_HW_DEPENDENT_RETURN_OK(acpi_status acpi_ev_release_global_lock(void))
0055
0056 acpi_status acpi_ev_remove_global_lock_handler(void);
0057
0058
0059
0060
0061 u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info *gpe_xrupt_list);
0062
0063 acpi_status
0064 acpi_ev_update_gpe_enable_mask(struct acpi_gpe_event_info *gpe_event_info);
0065
0066 acpi_status acpi_ev_enable_gpe(struct acpi_gpe_event_info *gpe_event_info);
0067
0068 acpi_status
0069 acpi_ev_mask_gpe(struct acpi_gpe_event_info *gpe_event_info, u8 is_masked);
0070
0071 acpi_status
0072 acpi_ev_add_gpe_reference(struct acpi_gpe_event_info *gpe_event_info,
0073 u8 clear_on_enable);
0074
0075 acpi_status
0076 acpi_ev_remove_gpe_reference(struct acpi_gpe_event_info *gpe_event_info);
0077
0078 struct acpi_gpe_event_info *acpi_ev_get_gpe_event_info(acpi_handle gpe_device,
0079 u32 gpe_number);
0080
0081 struct acpi_gpe_event_info *acpi_ev_low_get_gpe_info(u32 gpe_number,
0082 struct acpi_gpe_block_info
0083 *gpe_block);
0084
0085 acpi_status acpi_ev_finish_gpe(struct acpi_gpe_event_info *gpe_event_info);
0086
0087 u32
0088 acpi_ev_detect_gpe(struct acpi_namespace_node *gpe_device,
0089 struct acpi_gpe_event_info *gpe_event_info, u32 gpe_number);
0090
0091
0092
0093
0094 acpi_status
0095 acpi_ev_create_gpe_block(struct acpi_namespace_node *gpe_device,
0096 u64 address,
0097 u8 space_id,
0098 u32 register_count,
0099 u16 gpe_block_base_number,
0100 u32 interrupt_number,
0101 struct acpi_gpe_block_info **return_gpe_block);
0102
0103 acpi_status
0104 acpi_ev_initialize_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
0105 struct acpi_gpe_block_info *gpe_block,
0106 void *context);
0107
0108 ACPI_HW_DEPENDENT_RETURN_OK(acpi_status
0109 acpi_ev_delete_gpe_block(struct acpi_gpe_block_info
0110 *gpe_block))
0111
0112 u32
0113 acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,
0114 struct acpi_gpe_event_info *gpe_event_info,
0115 u32 gpe_number);
0116
0117
0118
0119
0120 acpi_status acpi_ev_gpe_initialize(void);
0121
0122 ACPI_HW_DEPENDENT_RETURN_VOID(void
0123 acpi_ev_update_gpes(acpi_owner_id table_owner_id))
0124
0125 acpi_status
0126 acpi_ev_match_gpe_method(acpi_handle obj_handle,
0127 u32 level, void *context, void **return_value);
0128
0129
0130
0131
0132 acpi_status
0133 acpi_ev_walk_gpe_list(acpi_gpe_callback gpe_walk_callback, void *context);
0134
0135 acpi_status
0136 acpi_ev_get_gpe_device(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
0137 struct acpi_gpe_block_info *gpe_block, void *context);
0138
0139 acpi_status
0140 acpi_ev_get_gpe_xrupt_block(u32 interrupt_number,
0141 struct acpi_gpe_xrupt_info **gpe_xrupt_block);
0142
0143 acpi_status acpi_ev_delete_gpe_xrupt(struct acpi_gpe_xrupt_info *gpe_xrupt);
0144
0145 acpi_status
0146 acpi_ev_delete_gpe_handlers(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
0147 struct acpi_gpe_block_info *gpe_block,
0148 void *context);
0149
0150
0151
0152
0153 union acpi_operand_object *acpi_ev_find_region_handler(acpi_adr_space_type
0154 space_id,
0155 union acpi_operand_object
0156 *handler_obj);
0157
0158 u8
0159 acpi_ev_has_default_handler(struct acpi_namespace_node *node,
0160 acpi_adr_space_type space_id);
0161
0162 acpi_status acpi_ev_install_region_handlers(void);
0163
0164 acpi_status
0165 acpi_ev_install_space_handler(struct acpi_namespace_node *node,
0166 acpi_adr_space_type space_id,
0167 acpi_adr_space_handler handler,
0168 acpi_adr_space_setup setup, void *context);
0169
0170
0171
0172
0173 acpi_status acpi_ev_initialize_op_regions(void);
0174
0175 acpi_status
0176 acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
0177 union acpi_operand_object *field_obj,
0178 u32 function,
0179 u32 region_offset, u32 bit_width, u64 *value);
0180
0181 acpi_status
0182 acpi_ev_attach_region(union acpi_operand_object *handler_obj,
0183 union acpi_operand_object *region_obj,
0184 u8 acpi_ns_is_locked);
0185
0186 void
0187 acpi_ev_detach_region(union acpi_operand_object *region_obj,
0188 u8 acpi_ns_is_locked);
0189
0190 void
0191 acpi_ev_execute_reg_methods(struct acpi_namespace_node *node,
0192 acpi_adr_space_type space_id, u32 function);
0193
0194 acpi_status
0195 acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function);
0196
0197
0198
0199
0200 acpi_status
0201 acpi_ev_system_memory_region_setup(acpi_handle handle,
0202 u32 function,
0203 void *handler_context,
0204 void **region_context);
0205
0206 acpi_status
0207 acpi_ev_io_space_region_setup(acpi_handle handle,
0208 u32 function,
0209 void *handler_context, void **region_context);
0210
0211 acpi_status
0212 acpi_ev_pci_config_region_setup(acpi_handle handle,
0213 u32 function,
0214 void *handler_context, void **region_context);
0215
0216 acpi_status
0217 acpi_ev_cmos_region_setup(acpi_handle handle,
0218 u32 function,
0219 void *handler_context, void **region_context);
0220
0221 acpi_status
0222 acpi_ev_pci_bar_region_setup(acpi_handle handle,
0223 u32 function,
0224 void *handler_context, void **region_context);
0225
0226 acpi_status
0227 acpi_ev_data_table_region_setup(acpi_handle handle,
0228 u32 function,
0229 void *handler_context, void **region_context);
0230
0231 acpi_status
0232 acpi_ev_default_region_setup(acpi_handle handle,
0233 u32 function,
0234 void *handler_context, void **region_context);
0235
0236 acpi_status acpi_ev_initialize_region(union acpi_operand_object *region_obj);
0237
0238 u8 acpi_ev_is_pci_root_bridge(struct acpi_namespace_node *node);
0239
0240
0241
0242
0243 u32 ACPI_SYSTEM_XFACE acpi_ev_gpe_xrupt_handler(void *context);
0244
0245 u32 acpi_ev_sci_dispatch(void);
0246
0247 u32 acpi_ev_install_sci_handler(void);
0248
0249 acpi_status acpi_ev_remove_all_sci_handlers(void);
0250
0251 ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_ev_terminate(void))
0252 #endif