2 * This file does the necessary interface mapping between the bootwrapper
3 * device tree operations and the interface provided by shared source
4 * files flatdevicetree.[ch].
6 * Author: Mark A. Greer <mgreer@mvista.com>
8 * 2006 (c) MontaVista Software, Inc. This file is licensed under
9 * the terms of the GNU General Public License version 2. This program
10 * is licensed "as is" without any warranty of any kind, whether express
14 #include "flatdevtree.h"
17 static struct ft_cxt cxt
;
19 static void *fdtm_finddevice(const char *name
)
21 return ft_find_device(&cxt
, NULL
, name
);
24 static int fdtm_getprop(const void *phandle
, const char *propname
,
25 void *buf
, const int buflen
)
27 return ft_get_prop(&cxt
, phandle
, propname
, buf
, buflen
);
30 static int fdtm_setprop(const void *phandle
, const char *propname
,
31 const void *buf
, const int buflen
)
33 return ft_set_prop(&cxt
, phandle
, propname
, buf
, buflen
);
36 static void *fdtm_get_parent(const void *phandle
)
38 return ft_get_parent(&cxt
, phandle
);
41 static void *fdtm_create_node(const void *phandle
, const char *name
)
43 return ft_create_node(&cxt
, phandle
, name
);
46 static void *fdtm_find_node_by_prop_value(const void *prev
,
51 return ft_find_node_by_prop_value(&cxt
, prev
, propname
,
55 static unsigned long fdtm_finalize(void)
58 return (unsigned long)cxt
.bph
;
61 static char *fdtm_get_path(const void *phandle
, char *buf
, int len
)
63 return ft_get_path(&cxt
, phandle
, buf
, len
);
66 int ft_init(void *dt_blob
, unsigned int max_size
, unsigned int max_find_device
)
68 dt_ops
.finddevice
= fdtm_finddevice
;
69 dt_ops
.getprop
= fdtm_getprop
;
70 dt_ops
.setprop
= fdtm_setprop
;
71 dt_ops
.get_parent
= fdtm_get_parent
;
72 dt_ops
.create_node
= fdtm_create_node
;
73 dt_ops
.find_node_by_prop_value
= fdtm_find_node_by_prop_value
;
74 dt_ops
.finalize
= fdtm_finalize
;
75 dt_ops
.get_path
= fdtm_get_path
;
77 return ft_open(&cxt
, dt_blob
, max_size
, max_find_device
,
78 platform_ops
.realloc
);