58static int _fdt_sw_check_header(
void *fdt)
66#define FDT_SW_CHECK_HEADER(fdt) \
69 if ((err = _fdt_sw_check_header(fdt)) != 0) \
73static void *_fdt_grab_space(
void *fdt,
size_t len)
81 if ((offset + len < offset) || (offset + len > spaceleft))
84 fdt_set_size_dt_struct(fdt, offset + len);
85 return _fdt_offset_ptr_w(fdt, offset);
95 memset(buf, 0, bufsize);
100 fdt_set_totalsize(fdt, bufsize);
105 fdt_set_off_dt_strings(fdt, bufsize);
128 fdt_set_off_dt_struct(fdt, offset +
sizeof(*re));
141 int namelen = strlen(
name) + 1;
145 nh = _fdt_grab_space(fdt,
sizeof(*nh) +
FDT_TAGALIGN(namelen));
168static int _fdt_find_add_string(
void *fdt,
const char *s)
173 int len = strlen(s) + 1;
174 int struct_top, offset;
181 offset = -strtabsize - len;
186 memcpy(strtab + offset, s, len);
187 fdt_set_size_dt_strings(fdt, strtabsize + len);
198 nameoff = _fdt_find_add_string(fdt, name);
215 char *p = (
char *)fdt;
217 int oldstroffset, newstroffset;
219 int offset, nextoffset;
224 end = _fdt_grab_space(fdt,
sizeof(*end));
233 fdt_set_off_dt_strings(fdt, newstroffset);
240 _fdt_offset_ptr_w(fdt, offset);
const char * _fdt_find_string(const char *strtab, int tabsize, const char *s)
uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
int fdt_finish_reservemap(void *fdt)
int fdt_create(void *buf, int bufsize)
int fdt_finish(void *fdt)
int fdt_begin_node(void *fdt, const char *name)
int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
int fdt_end_node(void *fdt)
#define FDT_SW_CHECK_HEADER(fdt)
#define fdt_totalsize(fdt)
#define FDT_LAST_SUPPORTED_VERSION
#define fdt_size_dt_struct(fdt)
#define fdt_size_dt_strings(fdt)
#define FDT_FIRST_SUPPORTED_VERSION
#define fdt_off_mem_rsvmap(fdt)
#define fdt_off_dt_struct(fdt)