ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / acpi / acresrc.h
1 /******************************************************************************
2  *
3  * Name: acresrc.h - Resource Manager function prototypes
4  *
5  *****************************************************************************/
6
7 /*
8  * Copyright (C) 2000 - 2004, R. Byron Moore
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions, and the following disclaimer,
16  *    without modification.
17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18  *    substantially similar to the "NO WARRANTY" disclaimer below
19  *    ("Disclaimer") and any redistribution must be conditioned upon
20  *    including a substantially similar Disclaimer requirement for further
21  *    binary redistribution.
22  * 3. Neither the names of the above-listed copyright holders nor the names
23  *    of any contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * Alternatively, this software may be distributed under the terms of the
27  * GNU General Public License ("GPL") version 2 as published by the Free
28  * Software Foundation.
29  *
30  * NO WARRANTY
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41  * POSSIBILITY OF SUCH DAMAGES.
42  */
43
44 #ifndef __ACRESRC_H__
45 #define __ACRESRC_H__
46
47
48 /*
49  *  Function prototypes called from Acpi* APIs
50  */
51
52 acpi_status
53 acpi_rs_get_prt_method_data (
54         acpi_handle                     handle,
55         struct acpi_buffer              *ret_buffer);
56
57
58 acpi_status
59 acpi_rs_get_crs_method_data (
60         acpi_handle                     handle,
61         struct acpi_buffer              *ret_buffer);
62
63 acpi_status
64 acpi_rs_get_prs_method_data (
65         acpi_handle                     handle,
66         struct acpi_buffer              *ret_buffer);
67
68 acpi_status
69 acpi_rs_get_method_data (
70         acpi_handle                     handle,
71         char                            *path,
72         struct acpi_buffer              *ret_buffer);
73
74 acpi_status
75 acpi_rs_set_srs_method_data (
76         acpi_handle                     handle,
77         struct acpi_buffer              *ret_buffer);
78
79 acpi_status
80 acpi_rs_create_resource_list (
81         union acpi_operand_object       *byte_stream_buffer,
82         struct acpi_buffer              *output_buffer);
83
84 acpi_status
85 acpi_rs_create_byte_stream (
86         struct acpi_resource            *linked_list_buffer,
87         struct acpi_buffer              *output_buffer);
88
89 acpi_status
90 acpi_rs_create_pci_routing_table (
91         union acpi_operand_object       *package_object,
92         struct acpi_buffer              *output_buffer);
93
94
95 /*
96  * Function prototypes called from acpi_rs_create*
97  */
98 void
99 acpi_rs_dump_irq (
100         union acpi_resource_data        *data);
101
102 void
103 acpi_rs_dump_address16 (
104         union acpi_resource_data        *data);
105
106 void
107 acpi_rs_dump_address32 (
108         union acpi_resource_data        *data);
109
110 void
111 acpi_rs_dump_address64 (
112         union acpi_resource_data        *data);
113
114 void
115 acpi_rs_dump_dma (
116         union acpi_resource_data        *data);
117
118 void
119 acpi_rs_dump_io (
120         union acpi_resource_data        *data);
121
122 void
123 acpi_rs_dump_extended_irq (
124         union acpi_resource_data        *data);
125
126 void
127 acpi_rs_dump_fixed_io (
128         union acpi_resource_data        *data);
129
130 void
131 acpi_rs_dump_fixed_memory32 (
132         union acpi_resource_data        *data);
133
134 void
135 acpi_rs_dump_memory24 (
136         union acpi_resource_data        *data);
137
138 void
139 acpi_rs_dump_memory32 (
140         union acpi_resource_data        *data);
141
142 void
143 acpi_rs_dump_start_depend_fns (
144         union acpi_resource_data        *data);
145
146 void
147 acpi_rs_dump_vendor_specific (
148         union acpi_resource_data        *data);
149
150 void
151 acpi_rs_dump_resource_list (
152         struct acpi_resource            *resource);
153
154 void
155 acpi_rs_dump_irq_list (
156         u8                              *route_table);
157
158 acpi_status
159 acpi_rs_get_byte_stream_start (
160         u8                              *byte_stream_buffer,
161         u8                              **byte_stream_start,
162         u32                             *size);
163
164 acpi_status
165 acpi_rs_get_list_length (
166         u8                              *byte_stream_buffer,
167         u32                             byte_stream_buffer_length,
168         acpi_size                       *size_needed);
169
170 acpi_status
171 acpi_rs_get_byte_stream_length (
172         struct acpi_resource            *linked_list_buffer,
173         acpi_size                       *size_needed);
174
175 acpi_status
176 acpi_rs_get_pci_routing_table_length (
177         union acpi_operand_object       *package_object,
178         acpi_size                       *buffer_size_needed);
179
180 acpi_status
181 acpi_rs_byte_stream_to_list (
182         u8                              *byte_stream_buffer,
183         u32                             byte_stream_buffer_length,
184         u8                              *output_buffer);
185
186 acpi_status
187 acpi_rs_list_to_byte_stream (
188         struct acpi_resource            *linked_list,
189         acpi_size                       byte_stream_size_needed,
190         u8                              *output_buffer);
191
192 acpi_status
193 acpi_rs_io_resource (
194         u8                              *byte_stream_buffer,
195         acpi_size                       *bytes_consumed,
196         u8                              **output_buffer,
197         acpi_size                       *structure_size);
198
199 acpi_status
200 acpi_rs_fixed_io_resource (
201         u8                              *byte_stream_buffer,
202         acpi_size                       *bytes_consumed,
203         u8                              **output_buffer,
204         acpi_size                       *structure_size);
205
206 acpi_status
207 acpi_rs_io_stream (
208         struct acpi_resource            *linked_list,
209         u8                              **output_buffer,
210         acpi_size                       *bytes_consumed);
211
212 acpi_status
213 acpi_rs_fixed_io_stream (
214         struct acpi_resource            *linked_list,
215         u8                              **output_buffer,
216         acpi_size                       *bytes_consumed);
217
218 acpi_status
219 acpi_rs_irq_resource (
220         u8                              *byte_stream_buffer,
221         acpi_size                       *bytes_consumed,
222         u8                              **output_buffer,
223         acpi_size                       *structure_size);
224
225 acpi_status
226 acpi_rs_irq_stream (
227         struct acpi_resource            *linked_list,
228         u8                              **output_buffer,
229         acpi_size                       *bytes_consumed);
230
231 acpi_status
232 acpi_rs_dma_resource (
233         u8                              *byte_stream_buffer,
234         acpi_size                       *bytes_consumed,
235         u8                              **output_buffer,
236         acpi_size                       *structure_size);
237
238 acpi_status
239 acpi_rs_dma_stream (
240         struct acpi_resource            *linked_list,
241         u8                              **output_buffer,
242         acpi_size                       *bytes_consumed);
243
244 acpi_status
245 acpi_rs_address16_resource (
246         u8                              *byte_stream_buffer,
247         acpi_size                       *bytes_consumed,
248         u8                              **output_buffer,
249         acpi_size                       *structure_size);
250
251 acpi_status
252 acpi_rs_address16_stream (
253         struct acpi_resource            *linked_list,
254         u8                              **output_buffer,
255         acpi_size                       *bytes_consumed);
256
257 acpi_status
258 acpi_rs_address32_resource (
259         u8                              *byte_stream_buffer,
260         acpi_size                       *bytes_consumed,
261         u8                              **output_buffer,
262         acpi_size                       *structure_size);
263
264 acpi_status
265 acpi_rs_address32_stream (
266         struct acpi_resource            *linked_list,
267         u8                              **output_buffer,
268         acpi_size                       *bytes_consumed);
269
270 acpi_status
271 acpi_rs_address64_resource (
272         u8                              *byte_stream_buffer,
273         acpi_size                       *bytes_consumed,
274         u8                              **output_buffer,
275         acpi_size                       *structure_size);
276
277 acpi_status
278 acpi_rs_address64_stream (
279         struct acpi_resource            *linked_list,
280         u8                              **output_buffer,
281         acpi_size                       *bytes_consumed);
282
283 acpi_status
284 acpi_rs_start_depend_fns_resource (
285         u8                              *byte_stream_buffer,
286         acpi_size                       *bytes_consumed,
287         u8                              **output_buffer,
288         acpi_size                       *structure_size);
289
290 acpi_status
291 acpi_rs_end_depend_fns_resource (
292         u8                              *byte_stream_buffer,
293         acpi_size                       *bytes_consumed,
294         u8                              **output_buffer,
295         acpi_size                       *structure_size);
296
297 acpi_status
298 acpi_rs_start_depend_fns_stream (
299         struct acpi_resource            *linked_list,
300         u8                              **output_buffer,
301         acpi_size                       *bytes_consumed);
302
303 acpi_status
304 acpi_rs_end_depend_fns_stream (
305         struct acpi_resource            *linked_list,
306         u8                              **output_buffer,
307         acpi_size                       *bytes_consumed);
308
309 acpi_status
310 acpi_rs_memory24_resource (
311         u8                              *byte_stream_buffer,
312         acpi_size                       *bytes_consumed,
313         u8                              **output_buffer,
314         acpi_size                       *structure_size);
315
316 acpi_status
317 acpi_rs_memory24_stream (
318         struct acpi_resource            *linked_list,
319         u8                              **output_buffer,
320         acpi_size                       *bytes_consumed);
321
322 acpi_status
323 acpi_rs_memory32_range_resource (
324         u8                              *byte_stream_buffer,
325         acpi_size                       *bytes_consumed,
326         u8                              **output_buffer,
327         acpi_size                       *structure_size);
328
329 acpi_status
330 acpi_rs_fixed_memory32_resource (
331         u8                              *byte_stream_buffer,
332         acpi_size                       *bytes_consumed,
333         u8                              **output_buffer,
334         acpi_size                       *structure_size);
335
336 acpi_status
337 acpi_rs_memory32_range_stream (
338         struct acpi_resource            *linked_list,
339         u8                              **output_buffer,
340         acpi_size                       *bytes_consumed);
341
342 acpi_status
343 acpi_rs_fixed_memory32_stream (
344         struct acpi_resource            *linked_list,
345         u8                              **output_buffer,
346         acpi_size                       *bytes_consumed);
347
348 acpi_status
349 acpi_rs_extended_irq_resource (
350         u8                              *byte_stream_buffer,
351         acpi_size                       *bytes_consumed,
352         u8                              **output_buffer,
353         acpi_size                       *structure_size);
354
355 acpi_status
356 acpi_rs_extended_irq_stream (
357         struct acpi_resource            *linked_list,
358         u8                              **output_buffer,
359         acpi_size                       *bytes_consumed);
360
361 acpi_status
362 acpi_rs_end_tag_resource (
363         u8                              *byte_stream_buffer,
364         acpi_size                       *bytes_consumed,
365         u8                              **output_buffer,
366         acpi_size                       *structure_size);
367
368 acpi_status
369 acpi_rs_end_tag_stream (
370         struct acpi_resource            *linked_list,
371         u8                              **output_buffer,
372         acpi_size                       *bytes_consumed);
373
374 acpi_status
375 acpi_rs_vendor_resource (
376         u8                              *byte_stream_buffer,
377         acpi_size                       *bytes_consumed,
378         u8                              **output_buffer,
379         acpi_size                       *structure_size);
380
381 acpi_status
382 acpi_rs_vendor_stream (
383         struct acpi_resource            *linked_list,
384         u8                              **output_buffer,
385         acpi_size                       *bytes_consumed);
386
387 u8
388 acpi_rs_get_resource_type (
389         u8                              resource_start_byte);
390
391 #endif  /* __ACRESRC_H__ */