Lines Matching refs:fdt

53 #include <fdt.h>
63 int fdt_ro_probe_(const void *fdt)
65 if (fdt_magic(fdt) == FDT_MAGIC) {
67 if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
69 if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
71 } else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
73 if (fdt_size_dt_struct(fdt) == 0)
113 int fdt_check_header(const void *fdt)
117 if (fdt_magic(fdt) != FDT_MAGIC)
119 hdrsize = fdt_header_size(fdt);
120 if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
121 || (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION))
123 if (fdt_version(fdt) < fdt_last_comp_version(fdt))
126 if ((fdt_totalsize(fdt) < hdrsize)
127 || (fdt_totalsize(fdt) > INT_MAX))
131 if (!check_off_(hdrsize, fdt_totalsize(fdt), fdt_off_mem_rsvmap(fdt)))
135 if (fdt_version(fdt) < 17) {
136 if (!check_off_(hdrsize, fdt_totalsize(fdt),
137 fdt_off_dt_struct(fdt)))
140 if (!check_block_(hdrsize, fdt_totalsize(fdt),
141 fdt_off_dt_struct(fdt),
142 fdt_size_dt_struct(fdt)))
147 if (!check_block_(hdrsize, fdt_totalsize(fdt),
148 fdt_off_dt_strings(fdt), fdt_size_dt_strings(fdt)))
154 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
156 unsigned absoffset = offset + fdt_off_dt_struct(fdt);
160 || (absoffset + len) > fdt_totalsize(fdt))
163 if (fdt_version(fdt) >= 0x11)
165 || ((offset + len) > fdt_size_dt_struct(fdt)))
168 return fdt_offset_ptr_(fdt, offset);
171 uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
179 tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
190 p = fdt_offset_ptr(fdt, offset++, 1);
197 lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp));
203 if (fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >= 8 &&
217 if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset))
224 int fdt_check_node_offset_(const void *fdt, int offset)
227 || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE))
233 int fdt_check_prop_offset_(const void *fdt, int offset)
236 || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP))
242 int fdt_next_node(const void *fdt, int offset, int *depth)
248 if ((nextoffset = fdt_check_node_offset_(fdt, offset)) < 0)
253 tag = fdt_next_tag(fdt, offset, &nextoffset);
282 int fdt_first_subnode(const void *fdt, int offset)
286 offset = fdt_next_node(fdt, offset, &depth);
293 int fdt_next_subnode(const void *fdt, int offset)
302 offset = fdt_next_node(fdt, offset, &depth);
322 int fdt_move(const void *fdt, void *buf, int bufsize)
324 FDT_RO_PROBE(fdt);
326 if (fdt_totalsize(fdt) > bufsize)
329 memmove(buf, fdt, fdt_totalsize(fdt));