File: /usr/src/linux/drivers/acpi/include/acresrc.h
1 /******************************************************************************
2 *
3 * Name: acresrc.h - Resource Manager function prototypes
4 * $Revision: 25 $
5 *
6 *****************************************************************************/
7
8 /*
9 * Copyright (C) 2000, 2001 R. Byron Moore
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */
25
26 #ifndef __ACRESRC_H__
27 #define __ACRESRC_H__
28
29
30 /*
31 * Function prototypes called from Acpi* APIs
32 */
33
34 acpi_status
35 acpi_rs_get_prt_method_data (
36 acpi_handle handle,
37 acpi_buffer *ret_buffer);
38
39
40 acpi_status
41 acpi_rs_get_crs_method_data (
42 acpi_handle handle,
43 acpi_buffer *ret_buffer);
44
45 acpi_status
46 acpi_rs_get_prs_method_data (
47 acpi_handle handle,
48 acpi_buffer *ret_buffer);
49
50 acpi_status
51 acpi_rs_set_srs_method_data (
52 acpi_handle handle,
53 acpi_buffer *ret_buffer);
54
55 acpi_status
56 acpi_rs_create_resource_list (
57 acpi_operand_object *byte_stream_buffer,
58 u8 *output_buffer,
59 u32 *output_buffer_length);
60
61 acpi_status
62 acpi_rs_create_byte_stream (
63 acpi_resource *linked_list_buffer,
64 u8 *output_buffer,
65 u32 *output_buffer_length);
66
67 acpi_status
68 acpi_rs_create_pci_routing_table (
69 acpi_operand_object *method_return_object,
70 u8 *output_buffer,
71 u32 *output_buffer_length);
72
73
74 /*
75 *Function prototypes called from Acpi_rs_create*APIs
76 */
77
78 void
79 acpi_rs_dump_resource_list (
80 acpi_resource *resource);
81
82 void
83 acpi_rs_dump_irq_list (
84 u8 *route_table);
85
86 acpi_status
87 acpi_rs_get_byte_stream_start (
88 u8 *byte_stream_buffer,
89 u8 **byte_stream_start,
90 u32 *size);
91
92 acpi_status
93 acpi_rs_calculate_list_length (
94 u8 *byte_stream_buffer,
95 u32 byte_stream_buffer_length,
96 u32 *size_needed);
97
98 acpi_status
99 acpi_rs_calculate_byte_stream_length (
100 acpi_resource *linked_list_buffer,
101 u32 *size_needed);
102
103 acpi_status
104 acpi_rs_calculate_pci_routing_table_length (
105 acpi_operand_object *package_object,
106 u32 *buffer_size_needed);
107
108 acpi_status
109 acpi_rs_byte_stream_to_list (
110 u8 *byte_stream_buffer,
111 u32 byte_stream_buffer_length,
112 u8 **output_buffer);
113
114 acpi_status
115 acpi_rs_list_to_byte_stream (
116 acpi_resource *linked_list,
117 u32 byte_stream_size_needed,
118 u8 **output_buffer);
119
120 acpi_status
121 acpi_rs_io_resource (
122 u8 *byte_stream_buffer,
123 u32 *bytes_consumed,
124 u8 **output_buffer,
125 u32 *structure_size);
126
127 acpi_status
128 acpi_rs_fixed_io_resource (
129 u8 *byte_stream_buffer,
130 u32 *bytes_consumed,
131 u8 **output_buffer,
132 u32 *structure_size);
133
134 acpi_status
135 acpi_rs_io_stream (
136 acpi_resource *linked_list,
137 u8 **output_buffer,
138 u32 *bytes_consumed);
139
140 acpi_status
141 acpi_rs_fixed_io_stream (
142 acpi_resource *linked_list,
143 u8 **output_buffer,
144 u32 *bytes_consumed);
145
146 acpi_status
147 acpi_rs_irq_resource (
148 u8 *byte_stream_buffer,
149 u32 *bytes_consumed,
150 u8 **output_buffer,
151 u32 *structure_size);
152
153 acpi_status
154 acpi_rs_irq_stream (
155 acpi_resource *linked_list,
156 u8 **output_buffer,
157 u32 *bytes_consumed);
158
159 acpi_status
160 acpi_rs_dma_resource (
161 u8 *byte_stream_buffer,
162 u32 *bytes_consumed,
163 u8 **output_buffer,
164 u32 *structure_size);
165
166 acpi_status
167 acpi_rs_dma_stream (
168 acpi_resource *linked_list,
169 u8 **output_buffer,
170 u32 *bytes_consumed);
171
172 acpi_status
173 acpi_rs_address16_resource (
174 u8 *byte_stream_buffer,
175 u32 *bytes_consumed,
176 u8 **output_buffer,
177 u32 *structure_size);
178
179 acpi_status
180 acpi_rs_address16_stream (
181 acpi_resource *linked_list,
182 u8 **output_buffer,
183 u32 *bytes_consumed);
184
185 acpi_status
186 acpi_rs_address32_resource (
187 u8 *byte_stream_buffer,
188 u32 *bytes_consumed,
189 u8 **output_buffer,
190 u32 *structure_size);
191
192 acpi_status
193 acpi_rs_address32_stream (
194 acpi_resource *linked_list,
195 u8 **output_buffer,
196 u32 *bytes_consumed);
197
198 acpi_status
199 acpi_rs_address64_resource (
200 u8 *byte_stream_buffer,
201 u32 *bytes_consumed,
202 u8 **output_buffer,
203 u32 *structure_size);
204
205 acpi_status
206 acpi_rs_address64_stream (
207 acpi_resource *linked_list,
208 u8 **output_buffer,
209 u32 *bytes_consumed);
210
211 acpi_status
212 acpi_rs_start_dependent_functions_resource (
213 u8 *byte_stream_buffer,
214 u32 *bytes_consumed,
215 u8 **output_buffer,
216 u32 *structure_size);
217
218 acpi_status
219 acpi_rs_end_dependent_functions_resource (
220 u8 *byte_stream_buffer,
221 u32 *bytes_consumed,
222 u8 **output_buffer,
223 u32 *structure_size);
224
225 acpi_status
226 acpi_rs_start_dependent_functions_stream (
227 acpi_resource *linked_list,
228 u8 **output_buffer,
229 u32 *bytes_consumed);
230
231 acpi_status
232 acpi_rs_end_dependent_functions_stream (
233 acpi_resource *linked_list,
234 u8 **output_buffer,
235 u32 *bytes_consumed);
236
237 acpi_status
238 acpi_rs_memory24_resource (
239 u8 *byte_stream_buffer,
240 u32 *bytes_consumed,
241 u8 **output_buffer,
242 u32 *structure_size);
243
244 acpi_status
245 acpi_rs_memory24_stream (
246 acpi_resource *linked_list,
247 u8 **output_buffer,
248 u32 *bytes_consumed);
249
250 acpi_status
251 acpi_rs_memory32_range_resource (
252 u8 *byte_stream_buffer,
253 u32 *bytes_consumed,
254 u8 **output_buffer,
255 u32 *structure_size
256 );
257
258 acpi_status
259 acpi_rs_fixed_memory32_resource (
260 u8 *byte_stream_buffer,
261 u32 *bytes_consumed,
262 u8 **output_buffer,
263 u32 *structure_size);
264
265 acpi_status
266 acpi_rs_memory32_range_stream (
267 acpi_resource *linked_list,
268 u8 **output_buffer,
269 u32 *bytes_consumed);
270
271 acpi_status
272 acpi_rs_fixed_memory32_stream (
273 acpi_resource *linked_list,
274 u8 **output_buffer,
275 u32 *bytes_consumed);
276
277 acpi_status
278 acpi_rs_extended_irq_resource (
279 u8 *byte_stream_buffer,
280 u32 *bytes_consumed,
281 u8 **output_buffer,
282 u32 *structure_size);
283
284 acpi_status
285 acpi_rs_extended_irq_stream (
286 acpi_resource *linked_list,
287 u8 **output_buffer,
288 u32 *bytes_consumed);
289
290 acpi_status
291 acpi_rs_end_tag_resource (
292 u8 *byte_stream_buffer,
293 u32 *bytes_consumed,
294 u8 **output_buffer,
295 u32 *structure_size);
296
297 acpi_status
298 acpi_rs_end_tag_stream (
299 acpi_resource *linked_list,
300 u8 **output_buffer,
301 u32 *bytes_consumed);
302
303 acpi_status
304 acpi_rs_vendor_resource (
305 u8 *byte_stream_buffer,
306 u32 *bytes_consumed,
307 u8 **output_buffer,
308 u32 *structure_size);
309
310 acpi_status
311 acpi_rs_vendor_stream (
312 acpi_resource *linked_list,
313 u8 **output_buffer,
314 u32 *bytes_consumed);
315
316 u8
317 acpi_rs_get_resource_type (
318 u8 resource_start_byte);
319
320 #endif /* __ACRESRC_H__ */
321