Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Added Kitten
[palacios-OLD.git] / kitten / include / acpi / acpixf.h
1
2 /******************************************************************************
3  *
4  * Name: acpixf.h - External interfaces to the ACPI subsystem
5  *
6  *****************************************************************************/
7
8 /*
9  * Copyright (C) 2000 - 2006, R. Byron Moore
10  * All rights reserved.
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  * 1. Redistributions of source code must retain the above copyright
16  *    notice, this list of conditions, and the following disclaimer,
17  *    without modification.
18  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19  *    substantially similar to the "NO WARRANTY" disclaimer below
20  *    ("Disclaimer") and any redistribution must be conditioned upon
21  *    including a substantially similar Disclaimer requirement for further
22  *    binary redistribution.
23  * 3. Neither the names of the above-listed copyright holders nor the names
24  *    of any contributors may be used to endorse or promote products derived
25  *    from this software without specific prior written permission.
26  *
27  * Alternatively, this software may be distributed under the terms of the
28  * GNU General Public License ("GPL") version 2 as published by the Free
29  * Software Foundation.
30  *
31  * NO WARRANTY
32  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42  * POSSIBILITY OF SUCH DAMAGES.
43  */
44
45 #ifndef __ACXFACE_H__
46 #define __ACXFACE_H__
47
48 #include "actypes.h"
49 #include "actbl.h"
50
51 /*
52  * Global interfaces
53  */
54 acpi_status acpi_initialize_subsystem(void);
55
56 acpi_status acpi_enable_subsystem(u32 flags);
57
58 acpi_status acpi_initialize_objects(u32 flags);
59
60 acpi_status acpi_terminate(void);
61
62 #ifdef ACPI_FUTURE_USAGE
63 acpi_status acpi_subsystem_status(void);
64 #endif
65
66 acpi_status acpi_enable(void);
67
68 acpi_status acpi_disable(void);
69
70 #ifdef ACPI_FUTURE_USAGE
71 acpi_status acpi_get_system_info(struct acpi_buffer *ret_buffer);
72 #endif
73
74 const char *acpi_format_exception(acpi_status exception);
75
76 acpi_status acpi_purge_cached_objects(void);
77
78 #ifdef ACPI_FUTURE_USAGE
79 acpi_status
80 acpi_install_initialization_handler(acpi_init_handler handler, u32 function);
81 #endif
82
83 /*
84  * ACPI Memory managment
85  */
86 void *acpi_allocate(u32 size);
87
88 void *acpi_callocate(u32 size);
89
90 void acpi_free(void *address);
91
92 /*
93  * ACPI table manipulation interfaces
94  */
95 acpi_status
96 acpi_find_root_pointer(u32 flags, struct acpi_pointer *rsdp_address);
97
98 acpi_status acpi_load_tables(void);
99
100 #ifdef ACPI_FUTURE_USAGE
101 acpi_status acpi_load_table(struct acpi_table_header *table_ptr);
102
103 acpi_status acpi_unload_table(acpi_table_type table_type);
104
105 acpi_status
106 acpi_get_table_header(acpi_table_type table_type,
107                       u32 instance, struct acpi_table_header *out_table_header);
108 #endif                          /*  ACPI_FUTURE_USAGE  */
109
110 acpi_status
111 acpi_get_table(acpi_table_type table_type,
112                u32 instance, struct acpi_buffer *ret_buffer);
113
114 acpi_status
115 acpi_get_firmware_table(acpi_string signature,
116                         u32 instance,
117                         u32 flags, struct acpi_table_header **table_pointer);
118
119 /*
120  * Namespace and name interfaces
121  */
122 acpi_status
123 acpi_walk_namespace(acpi_object_type type,
124                     acpi_handle start_object,
125                     u32 max_depth,
126                     acpi_walk_callback user_function,
127                     void *context, void **return_value);
128
129 acpi_status
130 acpi_get_devices(char *HID,
131                  acpi_walk_callback user_function,
132                  void *context, void **return_value);
133
134 acpi_status
135 acpi_get_name(acpi_handle handle,
136               u32 name_type, struct acpi_buffer *ret_path_ptr);
137
138 acpi_status
139 acpi_get_handle(acpi_handle parent,
140                 acpi_string pathname, acpi_handle * ret_handle);
141
142 acpi_status
143 acpi_attach_data(acpi_handle obj_handle,
144                  acpi_object_handler handler, void *data);
145
146 acpi_status
147 acpi_detach_data(acpi_handle obj_handle, acpi_object_handler handler);
148
149 acpi_status
150 acpi_get_data(acpi_handle obj_handle, acpi_object_handler handler, void **data);
151
152 acpi_status
153 acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags);
154
155 /*
156  * Object manipulation and enumeration
157  */
158 acpi_status
159 acpi_evaluate_object(acpi_handle object,
160                      acpi_string pathname,
161                      struct acpi_object_list *parameter_objects,
162                      struct acpi_buffer *return_object_buffer);
163
164 #ifdef ACPI_FUTURE_USAGE
165 acpi_status
166 acpi_evaluate_object_typed(acpi_handle object,
167                            acpi_string pathname,
168                            struct acpi_object_list *external_params,
169                            struct acpi_buffer *return_buffer,
170                            acpi_object_type return_type);
171 #endif
172
173 acpi_status
174 acpi_get_object_info(acpi_handle handle, struct acpi_buffer *return_buffer);
175
176 acpi_status
177 acpi_get_next_object(acpi_object_type type,
178                      acpi_handle parent,
179                      acpi_handle child, acpi_handle * out_handle);
180
181 acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type);
182
183 acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle);
184
185 /*
186  * Event handler interfaces
187  */
188 acpi_status
189 acpi_install_fixed_event_handler(u32 acpi_event,
190                                  acpi_event_handler handler, void *context);
191
192 acpi_status
193 acpi_remove_fixed_event_handler(u32 acpi_event, acpi_event_handler handler);
194
195 acpi_status
196 acpi_install_notify_handler(acpi_handle device,
197                             u32 handler_type,
198                             acpi_notify_handler handler, void *context);
199
200 acpi_status
201 acpi_remove_notify_handler(acpi_handle device,
202                            u32 handler_type, acpi_notify_handler handler);
203
204 acpi_status
205 acpi_install_address_space_handler(acpi_handle device,
206                                    acpi_adr_space_type space_id,
207                                    acpi_adr_space_handler handler,
208                                    acpi_adr_space_setup setup, void *context);
209
210 acpi_status
211 acpi_remove_address_space_handler(acpi_handle device,
212                                   acpi_adr_space_type space_id,
213                                   acpi_adr_space_handler handler);
214
215 acpi_status
216 acpi_install_gpe_handler(acpi_handle gpe_device,
217                          u32 gpe_number,
218                          u32 type, acpi_event_handler address, void *context);
219
220 #ifdef ACPI_FUTURE_USAGE
221 acpi_status acpi_install_exception_handler(acpi_exception_handler handler);
222 #endif
223
224 /*
225  * Event interfaces
226  */
227 acpi_status acpi_acquire_global_lock(u16 timeout, u32 * handle);
228
229 acpi_status acpi_release_global_lock(u32 handle);
230
231 acpi_status
232 acpi_remove_gpe_handler(acpi_handle gpe_device,
233                         u32 gpe_number, acpi_event_handler address);
234
235 acpi_status acpi_enable_event(u32 event, u32 flags);
236
237 acpi_status acpi_disable_event(u32 event, u32 flags);
238
239 acpi_status acpi_clear_event(u32 event);
240
241 #ifdef ACPI_FUTURE_USAGE
242 acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status);
243 #endif                          /*  ACPI_FUTURE_USAGE  */
244
245 acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type);
246
247 acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
248
249 acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
250
251 acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
252
253 #ifdef ACPI_FUTURE_USAGE
254 acpi_status
255 acpi_get_gpe_status(acpi_handle gpe_device,
256                     u32 gpe_number,
257                     u32 flags, acpi_event_status * event_status);
258 #endif                          /*  ACPI_FUTURE_USAGE  */
259
260 acpi_status
261 acpi_install_gpe_block(acpi_handle gpe_device,
262                        struct acpi_generic_address *gpe_block_address,
263                        u32 register_count, u32 interrupt_number);
264
265 acpi_status acpi_remove_gpe_block(acpi_handle gpe_device);
266
267 /*
268  * Resource interfaces
269  */
270 typedef
271 acpi_status(*acpi_walk_resource_callback) (struct acpi_resource * resource,
272                                            void *context);
273
274 acpi_status
275 acpi_get_vendor_resource(acpi_handle device_handle,
276                          char *name,
277                          struct acpi_vendor_uuid *uuid,
278                          struct acpi_buffer *ret_buffer);
279
280 acpi_status
281 acpi_get_current_resources(acpi_handle device_handle,
282                            struct acpi_buffer *ret_buffer);
283
284 #ifdef ACPI_FUTURE_USAGE
285 acpi_status
286 acpi_get_possible_resources(acpi_handle device_handle,
287                             struct acpi_buffer *ret_buffer);
288 #endif
289
290 acpi_status
291 acpi_walk_resources(acpi_handle device_handle,
292                     char *name,
293                     acpi_walk_resource_callback user_function, void *context);
294
295 acpi_status
296 acpi_set_current_resources(acpi_handle device_handle,
297                            struct acpi_buffer *in_buffer);
298
299 acpi_status
300 acpi_get_irq_routing_table(acpi_handle bus_device_handle,
301                            struct acpi_buffer *ret_buffer);
302
303 acpi_status
304 acpi_resource_to_address64(struct acpi_resource *resource,
305                            struct acpi_resource_address64 *out);
306
307 /*
308  * Hardware (ACPI device) interfaces
309  */
310 acpi_status acpi_get_register(u32 register_id, u32 * return_value, u32 flags);
311
312 acpi_status acpi_set_register(u32 register_id, u32 value, u32 flags);
313
314 acpi_status
315 acpi_set_firmware_waking_vector(acpi_physical_address physical_address);
316
317 #ifdef ACPI_FUTURE_USAGE
318 acpi_status
319 acpi_get_firmware_waking_vector(acpi_physical_address * physical_address);
320 #endif
321
322 acpi_status
323 acpi_get_sleep_type_data(u8 sleep_state, u8 * slp_typ_a, u8 * slp_typ_b);
324
325 acpi_status acpi_enter_sleep_state_prep(u8 sleep_state);
326
327 acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state);
328
329 acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void);
330
331 acpi_status acpi_leave_sleep_state(u8 sleep_state);
332
333 #endif                          /* __ACXFACE_H__ */