1
2
3
4
5
6
7
8
9
10
11
12#ifndef __ACPIOSXF_H__
13#define __ACPIOSXF_H__
14
15#include <acpi/platform/acenv.h>
16#include <acpi/actypes.h>
17
18
19
20typedef enum {
21 OSL_GLOBAL_LOCK_HANDLER,
22 OSL_NOTIFY_HANDLER,
23 OSL_GPE_HANDLER,
24 OSL_DEBUGGER_MAIN_THREAD,
25 OSL_DEBUGGER_EXEC_THREAD,
26 OSL_EC_POLL_HANDLER,
27 OSL_EC_BURST_HANDLER
28} acpi_execute_type;
29
30#define ACPI_NO_UNIT_LIMIT ((u32) -1)
31#define ACPI_MUTEX_SEM 1
32
33
34
35#define ACPI_SIGNAL_FATAL 0
36#define ACPI_SIGNAL_BREAKPOINT 1
37
38struct acpi_signal_fatal_info {
39 u32 type;
40 u32 code;
41 u32 argument;
42};
43
44
45
46
47#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_initialize
48acpi_status acpi_os_initialize(void);
49#endif
50
51#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_terminate
52acpi_status acpi_os_terminate(void);
53#endif
54
55
56
57
58#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_root_pointer
59acpi_physical_address acpi_os_get_root_pointer(void);
60#endif
61
62#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_predefined_override
63acpi_status
64acpi_os_predefined_override(const struct acpi_predefined_names *init_val,
65 acpi_string *new_val);
66#endif
67
68#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_table_override
69acpi_status
70acpi_os_table_override(struct acpi_table_header *existing_table,
71 struct acpi_table_header **new_table);
72#endif
73
74#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_physical_table_override
75acpi_status
76acpi_os_physical_table_override(struct acpi_table_header *existing_table,
77 acpi_physical_address *new_address,
78 u32 *new_table_length);
79#endif
80
81
82
83
84#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_lock
85acpi_status acpi_os_create_lock(acpi_spinlock * out_handle);
86#endif
87
88#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_lock
89void acpi_os_delete_lock(acpi_spinlock handle);
90#endif
91
92#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_lock
93acpi_cpu_flags acpi_os_acquire_lock(acpi_spinlock handle);
94#endif
95
96#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_lock
97void acpi_os_release_lock(acpi_spinlock handle, acpi_cpu_flags flags);
98#endif
99
100
101
102
103#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_semaphore
104acpi_status
105acpi_os_create_semaphore(u32 max_units,
106 u32 initial_units, acpi_semaphore * out_handle);
107#endif
108
109#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_semaphore
110acpi_status acpi_os_delete_semaphore(acpi_semaphore handle);
111#endif
112
113#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_wait_semaphore
114acpi_status
115acpi_os_wait_semaphore(acpi_semaphore handle, u32 units, u16 timeout);
116#endif
117
118#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_signal_semaphore
119acpi_status acpi_os_signal_semaphore(acpi_semaphore handle, u32 units);
120#endif
121
122
123
124
125
126#if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE)
127
128#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_mutex
129acpi_status acpi_os_create_mutex(acpi_mutex * out_handle);
130#endif
131
132#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_mutex
133void acpi_os_delete_mutex(acpi_mutex handle);
134#endif
135
136#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_mutex
137acpi_status acpi_os_acquire_mutex(acpi_mutex handle, u16 timeout);
138#endif
139
140#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_mutex
141void acpi_os_release_mutex(acpi_mutex handle);
142#endif
143
144#endif
145
146
147
148
149#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_allocate
150void *acpi_os_allocate(acpi_size size);
151#endif
152
153#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_allocate_zeroed
154void *acpi_os_allocate_zeroed(acpi_size size);
155#endif
156
157#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_free
158void acpi_os_free(void *memory);
159#endif
160
161#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_map_memory
162void *acpi_os_map_memory(acpi_physical_address where, acpi_size length);
163#endif
164
165#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_unmap_memory
166void acpi_os_unmap_memory(void *logical_address, acpi_size size);
167#endif
168
169#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_physical_address
170acpi_status
171acpi_os_get_physical_address(void *logical_address,
172 acpi_physical_address *physical_address);
173#endif
174
175
176
177
178#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_cache
179acpi_status
180acpi_os_create_cache(char *cache_name,
181 u16 object_size,
182 u16 max_depth, acpi_cache_t ** return_cache);
183#endif
184
185#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_cache
186acpi_status acpi_os_delete_cache(acpi_cache_t * cache);
187#endif
188
189#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_purge_cache
190acpi_status acpi_os_purge_cache(acpi_cache_t * cache);
191#endif
192
193#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_object
194void *acpi_os_acquire_object(acpi_cache_t * cache);
195#endif
196
197#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_object
198acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object);
199#endif
200
201
202
203
204#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_install_interrupt_handler
205acpi_status
206acpi_os_install_interrupt_handler(u32 interrupt_number,
207 acpi_osd_handler service_routine,
208 void *context);
209#endif
210
211#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_remove_interrupt_handler
212acpi_status
213acpi_os_remove_interrupt_handler(u32 interrupt_number,
214 acpi_osd_handler service_routine);
215#endif
216
217
218
219
220#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_thread_id
221acpi_thread_id acpi_os_get_thread_id(void);
222#endif
223
224#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_execute
225acpi_status
226acpi_os_execute(acpi_execute_type type,
227 acpi_osd_exec_callback function, void *context);
228#endif
229
230#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_wait_events_complete
231void acpi_os_wait_events_complete(void);
232#endif
233
234#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_sleep
235void acpi_os_sleep(u64 milliseconds);
236#endif
237
238#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_stall
239void acpi_os_stall(u32 microseconds);
240#endif
241
242
243
244
245#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_read_port
246acpi_status acpi_os_read_port(acpi_io_address address, u32 *value, u32 width);
247#endif
248
249#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_write_port
250acpi_status acpi_os_write_port(acpi_io_address address, u32 value, u32 width);
251#endif
252
253
254
255
256int acpi_os_read_iomem(void __iomem *virt_addr, u64 *value, u32 width);
257
258#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_read_memory
259acpi_status
260acpi_os_read_memory(acpi_physical_address address, u64 *value, u32 width);
261#endif
262
263#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_write_memory
264acpi_status
265acpi_os_write_memory(acpi_physical_address address, u64 value, u32 width);
266#endif
267
268
269
270
271
272
273#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_read_pci_configuration
274acpi_status
275acpi_os_read_pci_configuration(struct acpi_pci_id *pci_id,
276 u32 reg, u64 *value, u32 width);
277#endif
278
279#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_write_pci_configuration
280acpi_status
281acpi_os_write_pci_configuration(struct acpi_pci_id *pci_id,
282 u32 reg, u64 value, u32 width);
283#endif
284
285
286
287
288#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_readable
289u8 acpi_os_readable(void *pointer, acpi_size length);
290#endif
291
292#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_writable
293u8 acpi_os_writable(void *pointer, acpi_size length);
294#endif
295
296#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_timer
297u64 acpi_os_get_timer(void);
298#endif
299
300#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_signal
301acpi_status acpi_os_signal(u32 function, void *info);
302#endif
303
304#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_enter_sleep
305acpi_status acpi_os_enter_sleep(u8 sleep_state, u32 rega_value, u32 regb_value);
306#endif
307
308
309
310
311#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_printf
312void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format, ...);
313#endif
314
315#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_vprintf
316void acpi_os_vprintf(const char *format, va_list args);
317#endif
318
319#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_output
320void acpi_os_redirect_output(void *destination);
321#endif
322
323
324
325
326#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_line
327acpi_status acpi_os_get_line(char *buffer, u32 buffer_length, u32 *bytes_read);
328#endif
329
330#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_initialize_debugger
331acpi_status acpi_os_initialize_debugger(void);
332#endif
333
334#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_terminate_debugger
335void acpi_os_terminate_debugger(void);
336#endif
337
338#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_wait_command_ready
339acpi_status acpi_os_wait_command_ready(void);
340#endif
341
342#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_notify_command_complete
343acpi_status acpi_os_notify_command_complete(void);
344#endif
345
346#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_trace_point
347void
348acpi_os_trace_point(acpi_trace_event_type type,
349 u8 begin, u8 *aml, char *pathname);
350#endif
351
352
353
354
355#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_name
356acpi_status
357acpi_os_get_table_by_name(char *signature,
358 u32 instance,
359 struct acpi_table_header **table,
360 acpi_physical_address *address);
361#endif
362
363#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_index
364acpi_status
365acpi_os_get_table_by_index(u32 index,
366 struct acpi_table_header **table,
367 u32 *instance, acpi_physical_address *address);
368#endif
369
370#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_address
371acpi_status
372acpi_os_get_table_by_address(acpi_physical_address address,
373 struct acpi_table_header **table);
374#endif
375
376
377
378
379#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_open_directory
380void *acpi_os_open_directory(char *pathname,
381 char *wildcard_spec, char requested_file_type);
382#endif
383
384
385
386#define REQUEST_FILE_ONLY 0
387#define REQUEST_DIR_ONLY 1
388
389#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_next_filename
390char *acpi_os_get_next_filename(void *dir_handle);
391#endif
392
393#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_close_directory
394void acpi_os_close_directory(void *dir_handle);
395#endif
396
397#endif
398