File: /usr/src/linux/arch/ppc/boot/prep/of1275.h

1     /*
2      * BK Id: SCCS/s.of1275.h 1.6 05/18/01 15:16:42 cort
3      */
4     /* 6.3.2.1 Client interface */
5     
6     
7     typedef struct _of_test_service {
8     	const char *service;
9     	int n_args;
10     	int n_returns;
11     	/*in*/
12     	const char *name;
13     	/*out*/
14     	int missing;
15     } of_test_service;
16     
17     int of_test(const char *name, int *missing);
18     
19     
20     /* 6.3.2.2 Device tree */
21     
22     
23     typedef struct _of_peer_service {
24     	const char *service;
25     	int n_args;
26     	int n_returns;
27     	/*in*/
28     	int phandle;
29     	/*out*/
30     	int sibling_phandle;
31     } of_peer_service;
32     
33     int of_peer(int phandle, int *sibling_phandle);
34     
35     
36     typedef struct _of_child_service {
37     	const char *service;
38     	int n_args;
39     	int n_returns;
40     	/*in*/
41     	int phandle;
42     	/*out*/
43     	int child_phandle;
44     } of_child_service;
45     
46     int of_child(int phandle, int *child_phandle);
47     
48     
49     typedef struct _of_parent_service {
50     	const char *service;
51     	int n_args;
52     	int n_returns;
53     	/*in*/
54     	int phandle;
55     	/*out*/
56     	int parent_phandle;
57     } of_parent_service;
58     
59     int of_child(int phandle, int *parent_phandle);
60     
61     
62     typedef struct _of_instance_to_package_service {
63     	const char *service;
64     	int n_args;
65     	int n_returns;
66     	/*in*/
67     	int ihandle;
68     	/*out*/
69     	int phandle;
70     } of_instance_to_package_service;
71     
72     int of_instance_to_package(int ihandle, int *phandle);
73     
74     
75     typedef struct _of_getproplen_service {
76     	const char *service;
77     	int n_args;
78     	int n_returns;
79     	/*in*/
80     	int phandle;
81     	const char *name;
82     	/*out*/
83     	int proplen;
84     } of_getproplen_service;
85     
86     int of_getproplen(int phandle, const char *name, int *proplen);
87     
88     
89     typedef struct _of_getprop_service {
90     	const char *service;
91     	int n_args;
92     	int n_returns;
93     	/*in*/
94     	int phandle;
95     	const char *name;
96     	void *buf;
97     	int buflen;
98     	/*out*/
99     	int size;
100     } of_getprop_service;
101     
102     int of_getprop(int phandle, const char *name, void *buf, int buflen,
103     	       int *size);
104     
105     
106     typedef struct _of_nextprop_service {
107     	const char *service;
108     	int n_args;
109     	int n_returns;
110     	/*in*/
111     	int phandle;
112     	const char *previous;
113     	void *buf;
114     	/*out*/
115     	int flag;
116     } of_nextprop_service;
117     
118     int of_nextprop(int phandle, const char *previous, void *buf, int *flag);
119     
120     
121     typedef struct _of_setprop_service {
122     	const char *service;
123     	int n_args;
124     	int n_returns;
125     	/*in*/
126     	int phandle;
127     	const char *name;
128     	void *buf;
129     	int len;
130     	/*out*/
131     	int size;
132     } of_setprop_service;
133     
134     int of_setprop(int phandle, const char *name, void *buf, int len, int *size);
135     
136     
137     typedef struct _of_canon_service {
138     	const char *service;
139     	int n_args;
140     	int n_returns;
141     	/*in*/
142     	const char *device_specifier;
143     	void *buf;
144     	int buflen;
145     	/*out*/
146     	int length;
147     } of_canon_service;
148     
149     int of_canon(const char *device_specifier, void *buf, int buflen, int *length);
150     
151     
152     typedef struct _of_finddevice_service {
153     	const char *service;
154     	int n_args;
155     	int n_returns;
156     	/*in*/
157     	const char *device_specifier;
158     	/*out*/
159     	int phandle;
160     } of_finddevice_service;
161     
162     int of_finddevice(const char *device_specifier, int *phandle);
163     
164     
165     typedef struct _of_instance_to_path_service {
166     	const char *service;
167     	int n_args;
168     	int n_returns;
169     	/*in*/
170     	int ihandle;
171     	void *buf;
172     	int buflen;
173     	/*out*/
174     	int length;
175     } of_instance_to_path_service;
176     
177     int of_instance_to_path(int ihandle, void *buf, int buflen, int *length);
178     
179     
180     typedef struct _of_package_to_path_service {
181     	const char *service;
182     	int n_args;
183     	int n_returns;
184     	/*in*/
185     	int phandle;
186     	void *buf;
187     	int buflen;
188     	/*out*/
189     	int length;
190     } of_package_to_path_service;
191     
192     int of_package_to_path(int phandle, void *buf, int buflen, int *length);
193     
194     
195     typedef struct _of_call_method_service {
196     	const char *service;
197     	int n_args;
198     	int n_returns;
199     	/*in*/
200     	const char *method;
201     	int ihandle;
202     	/*...*/
203     	int args[0]; 
204     } of_call_method_service;
205     
206     int of_call_method(const char *method, int ihandle, ...);
207     
208     
209     /* 6.3.2.3 Device I/O */
210     
211     
212     typedef struct _of_open_service {
213     	const char *service;
214     	int n_args;
215     	int n_returns;
216     	/*in*/
217     	const char *device_specifier;
218     	/*out*/
219     	int ihandle;
220     } of_open_service;
221     
222     int of_open(const char *device_specifier,
223     	    int *ihandle);
224     
225     
226     typedef struct _of_close_service {
227     	const char *service;
228     	int n_args;
229     	int n_returns;
230     	/*in*/
231     	int ihandle;
232     	/*out*/
233     } of_close_service;
234     
235     int of_close(int ihandle);
236     
237     
238     typedef struct _of_read_service {
239     	const char *service;
240     	int n_args;
241     	int n_returns;
242     	/*in*/
243     	int ihandle;
244     	void *addr;
245     	int len;
246     	/*out*/
247     	int actual;
248     } of_read_service;
249     
250     int of_read(int ihandle, void *addr, int len, int *actual);
251     
252     
253     typedef struct _of_write_service {
254     	const char *service;
255     	int n_args;
256     	int n_returns;
257     	/*in*/
258     	int ihandle;
259     	void *addr;
260     	int len;
261     	/*out*/
262     	int actual;
263     } of_write_service;
264     
265     int of_write(int ihandle, void *addr, int len, int *actual);
266     
267     
268     typedef struct _of_seek_service {
269     	const char *service;
270     	int n_args;
271     	int n_returns;
272     	/*in*/
273     	int ihandle;
274     	int pos_hi;
275     	int pos_lo;
276     	/*out*/
277     	int status;
278     } of_seek_service;
279     
280     int of_seek(int ihandle, int pos_hi, int pos_lo, int *status);
281     
282     
283     /* 6.3.2.4 Memory */
284     
285     
286     typedef struct _of_claim_service {
287     	const char *service;
288     	int n_args;
289     	int n_returns;
290     	/*in*/
291     	void *virt;
292     	int size;
293     	int align;
294     	/*out*/
295     	void *baseaddr;
296     } of_claim_service;
297     
298     int of_claim(void *virt, int size, int align, void **baseaddr);
299     
300     
301     typedef struct _of_release_service {
302     	const char *service;
303     	int n_args;
304     	int n_returns;
305     	/*in*/
306     	void *virt;
307     	int size;
308     	int align;
309     	/*out*/
310     } of_release_service;
311     
312     int of_release(void *virt, int size);
313     
314     
315     /* 6.3.2.5 Control transfer */
316     
317     
318     typedef struct _of_boot_service {
319     	const char *service;
320     	int n_args;
321     	int n_returns;
322     	/*in*/
323     	const char *bootspec;
324     	/*out*/
325     } of_boot_service;
326     
327     int of_boot(const char *bootspec);
328     
329     
330     typedef struct _of_enter_service {
331     	const char *service;
332     	int n_args;
333     	int n_returns;
334     	/*in*/
335     	/*out*/
336     } of_enter_service;
337     
338     int of_enter(void);
339     
340     
341     typedef struct _of_exit_service {
342     	const char *service;
343     	int n_args;
344     	int n_returns;
345     	/*in*/
346     	/*out*/
347     } of_exit_service;
348     
349     int of_exit(void);
350     
351     
352     typedef struct _of_chain_service {
353     	const char *service;
354     	int n_args;
355     	int n_returns;
356     	/*in*/
357     	void *virt;
358     	int size;
359     	void *entry;
360     	void *args;
361     	int len;
362     	/*out*/
363     } of_chain_service;
364     
365     int of_chain(void *virt, int size, void *entry, void *args, int len);
366     
367     
368     /* 6.3.2.6 User interface */
369     
370     
371     typedef struct _of_interpret_service {
372     	const char *service;
373     	int n_args;
374     	int n_returns;
375     	/*in*/
376     	const char *cmd;
377     	int args[0];
378     	/*...*/
379     	/*out*/
380     	/*...*/
381     } of_interpret_service;
382     
383     int of_interpret(const char *arg, ...);
384     
385     
386     typedef struct _of_set_callback_service {
387     	const char *service;
388     	int n_args;
389     	int n_returns;
390     	/*in*/
391     	void *newfunc;
392     	/*out*/
393     	void *oldfunc;
394     } of_set_callback_service;
395     
396     int of_set_callback(void *newfunc, void **oldfunc);
397     
398     
399     typedef struct _of_set_symbol_lookup_service {
400     	const char *service;
401     	int n_args;
402     	int n_returns;
403     	/*in*/
404     	void *sym_to_value;
405     	void *value_to_sym;
406     	/*out*/
407     } of_set_symbol_lookup_service;
408     
409     int of_set_symbol_lookup(void *sym_to_value, void *value_to_sym);
410     
411     
412     /* 6.3.2.7 Time */
413     
414     
415     typedef struct _of_milliseconds_service {
416     	const char *service;
417     	int n_args;
418     	int n_returns;
419     	/*in*/
420     	/*out*/
421     	int ms;
422     } of_milliseconds_service;
423     
424     int of_milliseconds(int *ms);
425