]>
Commit | Line | Data |
---|---|---|
3cfc535c AS |
1 | /* |
2 | * Definitions for building a device tree by calling into the | |
3 | * Open Firmware PROM. | |
4 | * | |
5 | * Copyright (C) 2010 Andres Salomon <[email protected]> | |
6 | * | |
7 | * This program is free software; you can redistribute it and/or | |
8 | * modify it under the terms of the GNU General Public License | |
9 | * as published by the Free Software Foundation; either version | |
10 | * 2 of the License, or (at your option) any later version. | |
11 | */ | |
12 | ||
13 | #ifndef _LINUX_OF_PDT_H | |
14 | #define _LINUX_OF_PDT_H | |
15 | ||
f90c34bd AS |
16 | /* overridable operations for calling into the PROM */ |
17 | struct of_pdt_ops { | |
18 | /* | |
19 | * buf should be 32 bytes; return 0 on success. | |
20 | * If prev is NULL, the first property will be returned. | |
21 | */ | |
22 | int (*nextprop)(phandle node, char *prev, char *buf); | |
23 | ||
24 | /* for both functions, return proplen on success; -1 on error */ | |
25 | int (*getproplen)(phandle node, const char *prop); | |
26 | int (*getproperty)(phandle node, const char *prop, char *buf, | |
27 | int bufsize); | |
28 | ||
29 | /* phandles are 0 if no child or sibling exists */ | |
30 | phandle (*getchild)(phandle parent); | |
31 | phandle (*getsibling)(phandle node); | |
e2f2a93b AS |
32 | |
33 | /* return 0 on success; fill in 'len' with number of bytes in path */ | |
34 | int (*pkg2path)(phandle node, char *buf, const int buflen, int *len); | |
f90c34bd AS |
35 | }; |
36 | ||
3cfc535c AS |
37 | extern void *prom_early_alloc(unsigned long size); |
38 | ||
39 | /* for building the device tree */ | |
f90c34bd | 40 | extern void of_pdt_build_devicetree(phandle root_node, struct of_pdt_ops *ops); |
3cfc535c | 41 | |
ed418502 | 42 | extern void (*of_pdt_build_more)(struct device_node *dp, |
3cfc535c AS |
43 | struct device_node ***nextp); |
44 | ||
45 | #endif /* _LINUX_OF_PDT_H */ |