/linux-4.1.27/scripts/dtc/libfdt/ |
H A D | fdt_rw.c | 53 #include <fdt.h> 58 static int _fdt_blocks_misordered(const void *fdt, _fdt_blocks_misordered() argument 61 return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8)) _fdt_blocks_misordered() 62 || (fdt_off_dt_struct(fdt) < _fdt_blocks_misordered() 63 (fdt_off_mem_rsvmap(fdt) + mem_rsv_size)) _fdt_blocks_misordered() 64 || (fdt_off_dt_strings(fdt) < _fdt_blocks_misordered() 65 (fdt_off_dt_struct(fdt) + struct_size)) _fdt_blocks_misordered() 66 || (fdt_totalsize(fdt) < _fdt_blocks_misordered() 67 (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt))); _fdt_blocks_misordered() 70 static int _fdt_rw_check_header(void *fdt) _fdt_rw_check_header() argument 72 FDT_CHECK_HEADER(fdt); _fdt_rw_check_header() 74 if (fdt_version(fdt) < 17) _fdt_rw_check_header() 76 if (_fdt_blocks_misordered(fdt, sizeof(struct fdt_reserve_entry), _fdt_rw_check_header() 77 fdt_size_dt_struct(fdt))) _fdt_rw_check_header() 79 if (fdt_version(fdt) > 17) _fdt_rw_check_header() 80 fdt_set_version(fdt, 17); _fdt_rw_check_header() 85 #define FDT_RW_CHECK_HEADER(fdt) \ 88 if ((err = _fdt_rw_check_header(fdt)) != 0) \ 92 static inline int _fdt_data_size(void *fdt) _fdt_data_size() argument 94 return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt); _fdt_data_size() 97 static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen) _fdt_splice() argument 100 char *end = (char *)fdt + _fdt_data_size(fdt); _fdt_splice() 104 if ((end - oldlen + newlen) > ((char *)fdt + fdt_totalsize(fdt))) _fdt_splice() 110 static int _fdt_splice_mem_rsv(void *fdt, struct fdt_reserve_entry *p, _fdt_splice_mem_rsv() argument 115 err = _fdt_splice(fdt, p, oldn * sizeof(*p), newn * sizeof(*p)); _fdt_splice_mem_rsv() 118 fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta); _fdt_splice_mem_rsv() 119 fdt_set_off_dt_strings(fdt, fdt_off_dt_strings(fdt) + delta); _fdt_splice_mem_rsv() 123 static int _fdt_splice_struct(void *fdt, void *p, _fdt_splice_struct() argument 129 if ((err = _fdt_splice(fdt, p, oldlen, newlen))) _fdt_splice_struct() 132 fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta); _fdt_splice_struct() 133 fdt_set_off_dt_strings(fdt, fdt_off_dt_strings(fdt) + delta); _fdt_splice_struct() 137 static int _fdt_splice_string(void *fdt, int newlen) _fdt_splice_string() argument 139 void *p = (char *)fdt _fdt_splice_string() 140 + fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt); _fdt_splice_string() 143 if ((err = _fdt_splice(fdt, p, 0, newlen))) _fdt_splice_string() 146 fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen); _fdt_splice_string() 150 static int _fdt_find_add_string(void *fdt, const char *s) _fdt_find_add_string() argument 152 char *strtab = (char *)fdt + fdt_off_dt_strings(fdt); _fdt_find_add_string() 158 p = _fdt_find_string(strtab, fdt_size_dt_strings(fdt), s); _fdt_find_add_string() 163 new = strtab + fdt_size_dt_strings(fdt); _fdt_find_add_string() 164 err = _fdt_splice_string(fdt, len); _fdt_find_add_string() 172 int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size) fdt_add_mem_rsv() argument 177 FDT_RW_CHECK_HEADER(fdt); fdt_add_mem_rsv() 179 re = _fdt_mem_rsv_w(fdt, fdt_num_mem_rsv(fdt)); fdt_add_mem_rsv() 180 err = _fdt_splice_mem_rsv(fdt, re, 0, 1); fdt_add_mem_rsv() 189 int fdt_del_mem_rsv(void *fdt, int n) fdt_del_mem_rsv() argument 191 struct fdt_reserve_entry *re = _fdt_mem_rsv_w(fdt, n); fdt_del_mem_rsv() 194 FDT_RW_CHECK_HEADER(fdt); fdt_del_mem_rsv() 196 if (n >= fdt_num_mem_rsv(fdt)) fdt_del_mem_rsv() 199 err = _fdt_splice_mem_rsv(fdt, re, 1, 0); fdt_del_mem_rsv() 205 static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name, _fdt_resize_property() argument 211 *prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen); _fdt_resize_property() 215 if ((err = _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen), _fdt_resize_property() 223 static int _fdt_add_property(void *fdt, int nodeoffset, const char *name, _fdt_add_property() argument 231 if ((nextoffset = _fdt_check_node_offset(fdt, nodeoffset)) < 0) _fdt_add_property() 234 namestroff = _fdt_find_add_string(fdt, name); _fdt_add_property() 238 *prop = _fdt_offset_ptr_w(fdt, nextoffset); _fdt_add_property() 241 err = _fdt_splice_struct(fdt, *prop, 0, proplen); _fdt_add_property() 251 int fdt_set_name(void *fdt, int nodeoffset, const char *name) fdt_set_name() argument 257 FDT_RW_CHECK_HEADER(fdt); fdt_set_name() 259 namep = (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen); fdt_set_name() 265 err = _fdt_splice_struct(fdt, namep, FDT_TAGALIGN(oldlen+1), fdt_set_name() 274 int fdt_setprop(void *fdt, int nodeoffset, const char *name, fdt_setprop() argument 280 FDT_RW_CHECK_HEADER(fdt); fdt_setprop() 282 err = _fdt_resize_property(fdt, nodeoffset, name, len, &prop); fdt_setprop() 284 err = _fdt_add_property(fdt, nodeoffset, name, len, &prop); fdt_setprop() 292 int fdt_appendprop(void *fdt, int nodeoffset, const char *name, fdt_appendprop() argument 298 FDT_RW_CHECK_HEADER(fdt); fdt_appendprop() 300 prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen); fdt_appendprop() 303 err = _fdt_splice_struct(fdt, prop->data, fdt_appendprop() 311 err = _fdt_add_property(fdt, nodeoffset, name, len, &prop); fdt_appendprop() 319 int fdt_delprop(void *fdt, int nodeoffset, const char *name) fdt_delprop() argument 324 FDT_RW_CHECK_HEADER(fdt); fdt_delprop() 326 prop = fdt_get_property_w(fdt, nodeoffset, name, &len); fdt_delprop() 331 return _fdt_splice_struct(fdt, prop, proplen, 0); fdt_delprop() 334 int fdt_add_subnode_namelen(void *fdt, int parentoffset, fdt_add_subnode_namelen() argument 344 FDT_RW_CHECK_HEADER(fdt); fdt_add_subnode_namelen() 346 offset = fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen); fdt_add_subnode_namelen() 353 fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */ fdt_add_subnode_namelen() 356 tag = fdt_next_tag(fdt, offset, &nextoffset); fdt_add_subnode_namelen() 359 nh = _fdt_offset_ptr_w(fdt, offset); fdt_add_subnode_namelen() 362 err = _fdt_splice_struct(fdt, nh, 0, nodelen); fdt_add_subnode_namelen() 375 int fdt_add_subnode(void *fdt, int parentoffset, const char *name) fdt_add_subnode() argument 377 return fdt_add_subnode_namelen(fdt, parentoffset, name, strlen(name)); fdt_add_subnode() 380 int fdt_del_node(void *fdt, int nodeoffset) fdt_del_node() argument 384 FDT_RW_CHECK_HEADER(fdt); fdt_del_node() 386 endoffset = _fdt_node_end_offset(fdt, nodeoffset); fdt_del_node() 390 return _fdt_splice_struct(fdt, _fdt_offset_ptr_w(fdt, nodeoffset), fdt_del_node() 416 int fdt_open_into(const void *fdt, void *buf, int bufsize) fdt_open_into() argument 421 const char *fdtstart = fdt; fdt_open_into() 422 const char *fdtend = fdtstart + fdt_totalsize(fdt); fdt_open_into() 425 FDT_CHECK_HEADER(fdt); fdt_open_into() 427 mem_rsv_size = (fdt_num_mem_rsv(fdt)+1) fdt_open_into() 430 if (fdt_version(fdt) >= 17) { fdt_open_into() 431 struct_size = fdt_size_dt_struct(fdt); fdt_open_into() 434 while (fdt_next_tag(fdt, struct_size, &struct_size) != FDT_END) fdt_open_into() 440 if (!_fdt_blocks_misordered(fdt, mem_rsv_size, struct_size)) { fdt_open_into() 442 err = fdt_move(fdt, buf, bufsize); fdt_open_into() 453 + struct_size + fdt_size_dt_strings(fdt); fdt_open_into() 468 _fdt_packblocks(fdt, tmp, mem_rsv_size, struct_size); fdt_open_into() 475 fdt_set_boot_cpuid_phys(buf, fdt_boot_cpuid_phys(fdt)); fdt_open_into() 480 int fdt_pack(void *fdt) fdt_pack() argument 484 FDT_RW_CHECK_HEADER(fdt); fdt_pack() 486 mem_rsv_size = (fdt_num_mem_rsv(fdt)+1) fdt_pack() 488 _fdt_packblocks(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt)); fdt_pack() 489 fdt_set_totalsize(fdt, _fdt_data_size(fdt)); fdt_pack()
|
H A D | fdt_sw.c | 53 #include <fdt.h> 58 static int _fdt_sw_check_header(void *fdt) _fdt_sw_check_header() argument 60 if (fdt_magic(fdt) != FDT_SW_MAGIC) _fdt_sw_check_header() 66 #define FDT_SW_CHECK_HEADER(fdt) \ 69 if ((err = _fdt_sw_check_header(fdt)) != 0) \ 73 static void *_fdt_grab_space(void *fdt, size_t len) _fdt_grab_space() argument 75 int offset = fdt_size_dt_struct(fdt); _fdt_grab_space() 78 spaceleft = fdt_totalsize(fdt) - fdt_off_dt_struct(fdt) _fdt_grab_space() 79 - fdt_size_dt_strings(fdt); _fdt_grab_space() 84 fdt_set_size_dt_struct(fdt, offset + len); _fdt_grab_space() 85 return _fdt_offset_ptr_w(fdt, offset); _fdt_grab_space() 90 void *fdt = buf; fdt_create() local 97 fdt_set_magic(fdt, FDT_SW_MAGIC); fdt_create() 98 fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION); fdt_create() 99 fdt_set_last_comp_version(fdt, FDT_FIRST_SUPPORTED_VERSION); fdt_create() 100 fdt_set_totalsize(fdt, bufsize); fdt_create() 102 fdt_set_off_mem_rsvmap(fdt, FDT_ALIGN(sizeof(struct fdt_header), fdt_create() 104 fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt)); fdt_create() 105 fdt_set_off_dt_strings(fdt, bufsize); fdt_create() 110 int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size) fdt_add_reservemap_entry() argument 115 FDT_SW_CHECK_HEADER(fdt); fdt_add_reservemap_entry() 117 if (fdt_size_dt_struct(fdt)) fdt_add_reservemap_entry() 120 offset = fdt_off_dt_struct(fdt); fdt_add_reservemap_entry() 121 if ((offset + sizeof(*re)) > fdt_totalsize(fdt)) fdt_add_reservemap_entry() 124 re = (struct fdt_reserve_entry *)((char *)fdt + offset); fdt_add_reservemap_entry() 128 fdt_set_off_dt_struct(fdt, offset + sizeof(*re)); fdt_add_reservemap_entry() 133 int fdt_finish_reservemap(void *fdt) fdt_finish_reservemap() argument 135 return fdt_add_reservemap_entry(fdt, 0, 0); fdt_finish_reservemap() 138 int fdt_begin_node(void *fdt, const char *name) fdt_begin_node() argument 143 FDT_SW_CHECK_HEADER(fdt); fdt_begin_node() 145 nh = _fdt_grab_space(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen)); fdt_begin_node() 154 int fdt_end_node(void *fdt) fdt_end_node() argument 158 FDT_SW_CHECK_HEADER(fdt); fdt_end_node() 160 en = _fdt_grab_space(fdt, FDT_TAGSIZE); fdt_end_node() 168 static int _fdt_find_add_string(void *fdt, const char *s) _fdt_find_add_string() argument 170 char *strtab = (char *)fdt + fdt_totalsize(fdt); _fdt_find_add_string() 172 int strtabsize = fdt_size_dt_strings(fdt); _fdt_find_add_string() 182 struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt); _fdt_find_add_string() 183 if (fdt_totalsize(fdt) + offset < struct_top) _fdt_find_add_string() 187 fdt_set_size_dt_strings(fdt, strtabsize + len); _fdt_find_add_string() 191 int fdt_property(void *fdt, const char *name, const void *val, int len) fdt_property() argument 196 FDT_SW_CHECK_HEADER(fdt); fdt_property() 198 nameoff = _fdt_find_add_string(fdt, name); fdt_property() 202 prop = _fdt_grab_space(fdt, sizeof(*prop) + FDT_TAGALIGN(len)); fdt_property() 213 int fdt_finish(void *fdt) fdt_finish() argument 215 char *p = (char *)fdt; fdt_finish() 221 FDT_SW_CHECK_HEADER(fdt); fdt_finish() 224 end = _fdt_grab_space(fdt, sizeof(*end)); fdt_finish() 230 oldstroffset = fdt_totalsize(fdt) - fdt_size_dt_strings(fdt); fdt_finish() 231 newstroffset = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt); fdt_finish() 232 memmove(p + newstroffset, p + oldstroffset, fdt_size_dt_strings(fdt)); fdt_finish() 233 fdt_set_off_dt_strings(fdt, newstroffset); fdt_finish() 237 while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) { fdt_finish() 240 _fdt_offset_ptr_w(fdt, offset); fdt_finish() 244 nameoff += fdt_size_dt_strings(fdt); fdt_finish() 253 fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt)); fdt_finish() 254 fdt_set_magic(fdt, FDT_MAGIC); fdt_finish()
|
H A D | fdt_ro.c | 53 #include <fdt.h> 58 static int _fdt_nodename_eq(const void *fdt, int offset, _fdt_nodename_eq() argument 61 const char *p = fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1); _fdt_nodename_eq() 78 const char *fdt_string(const void *fdt, int stroffset) fdt_string() argument 80 return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset; fdt_string() 83 static int _fdt_string_eq(const void *fdt, int stroffset, _fdt_string_eq() argument 86 const char *p = fdt_string(fdt, stroffset); _fdt_string_eq() 91 int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size) fdt_get_mem_rsv() argument 93 FDT_CHECK_HEADER(fdt); fdt_get_mem_rsv() 94 *address = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address); fdt_get_mem_rsv() 95 *size = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size); fdt_get_mem_rsv() 99 int fdt_num_mem_rsv(const void *fdt) fdt_num_mem_rsv() argument 103 while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) != 0) fdt_num_mem_rsv() 108 static int _nextprop(const void *fdt, int offset) _nextprop() argument 114 tag = fdt_next_tag(fdt, offset, &nextoffset); _nextprop() 132 int fdt_subnode_offset_namelen(const void *fdt, int offset, fdt_subnode_offset_namelen() argument 137 FDT_CHECK_HEADER(fdt); fdt_subnode_offset_namelen() 141 offset = fdt_next_node(fdt, offset, &depth)) fdt_subnode_offset_namelen() 143 && _fdt_nodename_eq(fdt, offset, name, namelen)) fdt_subnode_offset_namelen() 151 int fdt_subnode_offset(const void *fdt, int parentoffset, fdt_subnode_offset() argument 154 return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name)); fdt_subnode_offset() 157 int fdt_path_offset(const void *fdt, const char *path) fdt_path_offset() argument 163 FDT_CHECK_HEADER(fdt); fdt_path_offset() 172 p = fdt_get_alias_namelen(fdt, p, q - p); fdt_path_offset() 175 offset = fdt_path_offset(fdt, p); fdt_path_offset() 191 offset = fdt_subnode_offset_namelen(fdt, offset, p, q-p); fdt_path_offset() 201 const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) fdt_get_name() argument 203 const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); fdt_get_name() 206 if (((err = fdt_check_header(fdt)) != 0) fdt_get_name() 207 || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) fdt_get_name() 221 int fdt_first_property_offset(const void *fdt, int nodeoffset) fdt_first_property_offset() argument 225 if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0) fdt_first_property_offset() 228 return _nextprop(fdt, offset); fdt_first_property_offset() 231 int fdt_next_property_offset(const void *fdt, int offset) fdt_next_property_offset() argument 233 if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0) fdt_next_property_offset() 236 return _nextprop(fdt, offset); fdt_next_property_offset() 239 const struct fdt_property *fdt_get_property_by_offset(const void *fdt, fdt_get_property_by_offset() argument 246 if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) { fdt_get_property_by_offset() 252 prop = _fdt_offset_ptr(fdt, offset); fdt_get_property_by_offset() 260 const struct fdt_property *fdt_get_property_namelen(const void *fdt, fdt_get_property_namelen() argument 265 for (offset = fdt_first_property_offset(fdt, offset); fdt_get_property_namelen() 267 (offset = fdt_next_property_offset(fdt, offset))) { fdt_get_property_namelen() 270 if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { fdt_get_property_namelen() 274 if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff), fdt_get_property_namelen() 284 const struct fdt_property *fdt_get_property(const void *fdt, fdt_get_property() argument 288 return fdt_get_property_namelen(fdt, nodeoffset, name, fdt_get_property() 292 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset, fdt_getprop_namelen() argument 297 prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp); fdt_getprop_namelen() 304 const void *fdt_getprop_by_offset(const void *fdt, int offset, fdt_getprop_by_offset() argument 309 prop = fdt_get_property_by_offset(fdt, offset, lenp); fdt_getprop_by_offset() 313 *namep = fdt_string(fdt, fdt32_to_cpu(prop->nameoff)); fdt_getprop_by_offset() 317 const void *fdt_getprop(const void *fdt, int nodeoffset, fdt_getprop() argument 320 return fdt_getprop_namelen(fdt, nodeoffset, name, strlen(name), lenp); fdt_getprop() 323 uint32_t fdt_get_phandle(const void *fdt, int nodeoffset) fdt_get_phandle() argument 330 php = fdt_getprop(fdt, nodeoffset, "phandle", &len); fdt_get_phandle() 332 php = fdt_getprop(fdt, nodeoffset, "linux,phandle", &len); fdt_get_phandle() 340 const char *fdt_get_alias_namelen(const void *fdt, fdt_get_alias_namelen() argument 345 aliasoffset = fdt_path_offset(fdt, "/aliases"); fdt_get_alias_namelen() 349 return fdt_getprop_namelen(fdt, aliasoffset, name, namelen, NULL); fdt_get_alias_namelen() 352 const char *fdt_get_alias(const void *fdt, const char *name) fdt_get_alias() argument 354 return fdt_get_alias_namelen(fdt, name, strlen(name)); fdt_get_alias() 357 int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen) fdt_get_path() argument 363 FDT_CHECK_HEADER(fdt); fdt_get_path() 370 offset = fdt_next_node(fdt, offset, &depth)) { fdt_get_path() 379 name = fdt_get_name(fdt, offset, &namelen); fdt_get_path() 409 int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset, fdt_supernode_atdepth_offset() argument 415 FDT_CHECK_HEADER(fdt); fdt_supernode_atdepth_offset() 422 offset = fdt_next_node(fdt, offset, &depth)) { fdt_supernode_atdepth_offset() 445 int fdt_node_depth(const void *fdt, int nodeoffset) fdt_node_depth() argument 450 err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth); fdt_node_depth() 456 int fdt_parent_offset(const void *fdt, int nodeoffset) fdt_parent_offset() argument 458 int nodedepth = fdt_node_depth(fdt, nodeoffset); fdt_parent_offset() 462 return fdt_supernode_atdepth_offset(fdt, nodeoffset, fdt_parent_offset() 466 int fdt_node_offset_by_prop_value(const void *fdt, int startoffset, fdt_node_offset_by_prop_value() argument 474 FDT_CHECK_HEADER(fdt); fdt_node_offset_by_prop_value() 481 for (offset = fdt_next_node(fdt, startoffset, NULL); fdt_node_offset_by_prop_value() 483 offset = fdt_next_node(fdt, offset, NULL)) { fdt_node_offset_by_prop_value() 484 val = fdt_getprop(fdt, offset, propname, &len); fdt_node_offset_by_prop_value() 493 int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle) fdt_node_offset_by_phandle() argument 500 FDT_CHECK_HEADER(fdt); fdt_node_offset_by_phandle() 508 for (offset = fdt_next_node(fdt, -1, NULL); fdt_node_offset_by_phandle() 510 offset = fdt_next_node(fdt, offset, NULL)) { fdt_node_offset_by_phandle() 511 if (fdt_get_phandle(fdt, offset) == phandle) fdt_node_offset_by_phandle() 536 int fdt_node_check_compatible(const void *fdt, int nodeoffset, fdt_node_check_compatible() argument 542 prop = fdt_getprop(fdt, nodeoffset, "compatible", &len); fdt_node_check_compatible() 551 int fdt_node_offset_by_compatible(const void *fdt, int startoffset, fdt_node_offset_by_compatible() argument 556 FDT_CHECK_HEADER(fdt); fdt_node_offset_by_compatible() 563 for (offset = fdt_next_node(fdt, startoffset, NULL); fdt_node_offset_by_compatible() 565 offset = fdt_next_node(fdt, offset, NULL)) { fdt_node_offset_by_compatible() 566 err = fdt_node_check_compatible(fdt, offset, compatible); fdt_node_offset_by_compatible()
|
H A D | libfdt_internal.h | 53 #include <fdt.h> 58 #define FDT_CHECK_HEADER(fdt) \ 61 if ((err = fdt_check_header(fdt)) != 0) \ 65 int _fdt_check_node_offset(const void *fdt, int offset); 66 int _fdt_check_prop_offset(const void *fdt, int offset); 68 int _fdt_node_end_offset(void *fdt, int nodeoffset); 70 static inline const void *_fdt_offset_ptr(const void *fdt, int offset) _fdt_offset_ptr() argument 72 return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; _fdt_offset_ptr() 75 static inline void *_fdt_offset_ptr_w(void *fdt, int offset) _fdt_offset_ptr_w() argument 77 return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset); _fdt_offset_ptr_w() 80 static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int n) _fdt_mem_rsv() argument 84 ((const char *)fdt + fdt_off_mem_rsvmap(fdt)); _fdt_mem_rsv() 88 static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n) _fdt_mem_rsv_w() argument 90 return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n); _fdt_mem_rsv_w()
|
H A D | fdt.c | 53 #include <fdt.h> 58 int fdt_check_header(const void *fdt) fdt_check_header() argument 60 if (fdt_magic(fdt) == FDT_MAGIC) { fdt_check_header() 62 if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) fdt_check_header() 64 if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION) fdt_check_header() 66 } else if (fdt_magic(fdt) == FDT_SW_MAGIC) { fdt_check_header() 68 if (fdt_size_dt_struct(fdt) == 0) fdt_check_header() 77 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) fdt_offset_ptr() argument 81 if (fdt_version(fdt) >= 0x11) fdt_offset_ptr() 83 || ((offset + len) > fdt_size_dt_struct(fdt))) fdt_offset_ptr() 86 p = _fdt_offset_ptr(fdt, offset); fdt_offset_ptr() 93 uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) fdt_next_tag() argument 101 tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); fdt_next_tag() 112 p = fdt_offset_ptr(fdt, offset++, 1); fdt_next_tag() 119 lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); fdt_next_tag() 136 if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) fdt_next_tag() 143 int _fdt_check_node_offset(const void *fdt, int offset) _fdt_check_node_offset() argument 146 || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) _fdt_check_node_offset() 152 int _fdt_check_prop_offset(const void *fdt, int offset) _fdt_check_prop_offset() argument 155 || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)) _fdt_check_prop_offset() 161 int fdt_next_node(const void *fdt, int offset, int *depth) fdt_next_node() argument 167 if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) fdt_next_node() 172 tag = fdt_next_tag(fdt, offset, &nextoffset); fdt_next_node() 213 int fdt_move(const void *fdt, void *buf, int bufsize) fdt_move() argument 215 FDT_CHECK_HEADER(fdt); fdt_move() 217 if (fdt_totalsize(fdt) > bufsize) fdt_move() 220 memmove(buf, fdt, fdt_totalsize(fdt)); fdt_move()
|
H A D | libfdt.h | 55 #include <fdt.h> 125 const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen); fdt_offset_ptr_w() 126 static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen) fdt_offset_ptr_w() argument 128 return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen); fdt_offset_ptr_w() 131 uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset); 137 int fdt_next_node(const void *fdt, int offset, int *depth); 143 #define fdt_get_header(fdt, field) \ 144 (fdt32_to_cpu(((const struct fdt_header *)(fdt))->field)) 145 #define fdt_magic(fdt) (fdt_get_header(fdt, magic)) 146 #define fdt_totalsize(fdt) (fdt_get_header(fdt, totalsize)) 147 #define fdt_off_dt_struct(fdt) (fdt_get_header(fdt, off_dt_struct)) 148 #define fdt_off_dt_strings(fdt) (fdt_get_header(fdt, off_dt_strings)) 149 #define fdt_off_mem_rsvmap(fdt) (fdt_get_header(fdt, off_mem_rsvmap)) 150 #define fdt_version(fdt) (fdt_get_header(fdt, version)) 151 #define fdt_last_comp_version(fdt) (fdt_get_header(fdt, last_comp_version)) 152 #define fdt_boot_cpuid_phys(fdt) (fdt_get_header(fdt, boot_cpuid_phys)) 153 #define fdt_size_dt_strings(fdt) (fdt_get_header(fdt, size_dt_strings)) 154 #define fdt_size_dt_struct(fdt) (fdt_get_header(fdt, size_dt_struct)) 157 static inline void fdt_set_##name(void *fdt, uint32_t val) \ 159 struct fdt_header *fdth = (struct fdt_header*)fdt; \ 176 * @fdt: pointer to data which might be a flattened device tree 188 int fdt_check_header(const void *fdt); 192 * @fdt: pointer to the device tree to move 197 * fdt to the buffer at buf of size bufsize. The buffer may overlap 198 * with the existing device tree blob at fdt. Therefore, 199 * fdt_move(fdt, fdt, fdt_totalsize(fdt)) 209 int fdt_move(const void *fdt, void *buf, int bufsize); 217 * @fdt: pointer to the device tree blob 221 * strings block of the device tree blob at fdt. 227 const char *fdt_string(const void *fdt, int stroffset); 231 * @fdt: pointer to the device tree blob 240 int fdt_num_mem_rsv(const void *fdt); 244 * @fdt: pointer to the device tree blob 257 int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size); 261 * @fdt: pointer to the device tree blob 271 int fdt_subnode_offset_namelen(const void *fdt, int parentoffset, 275 * @fdt: pointer to the device tree blob 296 int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name); 300 * @fdt: pointer to the device tree blob 320 int fdt_path_offset(const void *fdt, const char *path); 324 * @fdt: pointer to the device tree blob 343 const char *fdt_get_name(const void *fdt, int nodeoffset, int *lenp); 347 * @fdt: pointer to the device tree blob 363 int fdt_first_property_offset(const void *fdt, int nodeoffset); 367 * @fdt: pointer to the device tree blob 384 int fdt_next_property_offset(const void *fdt, int offset); 388 * @fdt: pointer to the device tree blob 410 const struct fdt_property *fdt_get_property_by_offset(const void *fdt, 416 * @fdt: pointer to the device tree blob 425 const struct fdt_property *fdt_get_property_namelen(const void *fdt, 432 * @fdt: pointer to the device tree blob 457 const struct fdt_property *fdt_get_property(const void *fdt, int nodeoffset, 459 static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset, fdt_get_property_w() argument 464 fdt_get_property(fdt, nodeoffset, name, lenp); fdt_get_property_w() 469 * @fdt: pointer to the device tree blob 498 const void *fdt_getprop_by_offset(const void *fdt, int offset, 503 * @fdt: pointer to the device tree blob 512 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset, 517 * @fdt: pointer to the device tree blob 542 const void *fdt_getprop(const void *fdt, int nodeoffset, 544 static inline void *fdt_getprop_w(void *fdt, int nodeoffset, fdt_getprop_w() argument 547 return (void *)(uintptr_t)fdt_getprop(fdt, nodeoffset, name, lenp); fdt_getprop_w() 552 * @fdt: pointer to the device tree blob 562 uint32_t fdt_get_phandle(const void *fdt, int nodeoffset); 566 * @fdt: pointer to the device tree blob 573 const char *fdt_get_alias_namelen(const void *fdt, 578 * @fdt: pointer to the device tree blob 588 const char *fdt_get_alias(const void *fdt, const char *name); 592 * @fdt: pointer to the device tree blob 615 int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen); 619 * @fdt: pointer to the device tree blob 627 * fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, NULL); 630 * fdt_supernode_atdepth_offset(fdt, nodeoffset, D, NULL); 647 int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset, 652 * @fdt: pointer to the device tree blob 669 int fdt_node_depth(const void *fdt, int nodeoffset); 673 * @fdt: pointer to the device tree blob 692 int fdt_parent_offset(const void *fdt, int nodeoffset); 696 * @fdt: pointer to the device tree blob 709 * offset = fdt_node_offset_by_prop_value(fdt, -1, propname, 713 * offset = fdt_node_offset_by_prop_value(fdt, offset, propname, 732 int fdt_node_offset_by_prop_value(const void *fdt, int startoffset, 738 * @fdt: pointer to the device tree blob 755 int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle); 759 * @fdt: pointer to the device tree blob 779 int fdt_node_check_compatible(const void *fdt, int nodeoffset, 784 * @fdt: pointer to the device tree blob 795 * offset = fdt_node_offset_by_compatible(fdt, -1, compatible); 798 * offset = fdt_node_offset_by_compatible(fdt, offset, compatible); 816 int fdt_node_offset_by_compatible(const void *fdt, int startoffset, 825 * @fdt: pointer to the device tree blob 851 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name, 856 * @fdt: pointer to the device tree blob 882 static inline int fdt_setprop_inplace_u32(void *fdt, int nodeoffset, fdt_setprop_inplace_u32() argument 886 return fdt_setprop_inplace(fdt, nodeoffset, name, &val, sizeof(val)); fdt_setprop_inplace_u32() 891 * @fdt: pointer to the device tree blob 917 static inline int fdt_setprop_inplace_u64(void *fdt, int nodeoffset, fdt_setprop_inplace_u64() argument 921 return fdt_setprop_inplace(fdt, nodeoffset, name, &val, sizeof(val)); fdt_setprop_inplace_u64() 929 static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset, fdt_setprop_inplace_cell() argument 932 return fdt_setprop_inplace_u32(fdt, nodeoffset, name, val); fdt_setprop_inplace_cell() 937 * @fdt: pointer to the device tree blob 959 int fdt_nop_property(void *fdt, int nodeoffset, const char *name); 963 * @fdt: pointer to the device tree blob 983 int fdt_nop_node(void *fdt, int nodeoffset); 990 int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size); 991 int fdt_finish_reservemap(void *fdt); 992 int fdt_begin_node(void *fdt, const char *name); 993 int fdt_property(void *fdt, const char *name, const void *val, int len); fdt_property_u32() 994 static inline int fdt_property_u32(void *fdt, const char *name, uint32_t val) fdt_property_u32() argument 997 return fdt_property(fdt, name, &val, sizeof(val)); fdt_property_u32() 999 static inline int fdt_property_u64(void *fdt, const char *name, uint64_t val) fdt_property_u64() argument 1002 return fdt_property(fdt, name, &val, sizeof(val)); fdt_property_u64() 1004 static inline int fdt_property_cell(void *fdt, const char *name, uint32_t val) fdt_property_cell() argument 1006 return fdt_property_u32(fdt, name, val); fdt_property_cell() 1008 #define fdt_property_string(fdt, name, str) \ 1009 fdt_property(fdt, name, str, strlen(str)+1) 1010 int fdt_end_node(void *fdt); 1011 int fdt_finish(void *fdt); 1018 int fdt_open_into(const void *fdt, void *buf, int bufsize); 1019 int fdt_pack(void *fdt); 1023 * @fdt: pointer to the device tree blob 1043 int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size); 1047 * @fdt: pointer to the device tree blob 1067 int fdt_del_mem_rsv(void *fdt, int n); 1071 * @fdt: pointer to the device tree blob 1093 int fdt_set_name(void *fdt, int nodeoffset, const char *name); 1097 * @fdt: pointer to the device tree blob 1123 int fdt_setprop(void *fdt, int nodeoffset, const char *name, 1128 * @fdt: pointer to the device tree blob 1154 static inline int fdt_setprop_u32(void *fdt, int nodeoffset, const char *name, fdt_setprop_u32() argument 1158 return fdt_setprop(fdt, nodeoffset, name, &val, sizeof(val)); fdt_setprop_u32() 1163 * @fdt: pointer to the device tree blob 1189 static inline int fdt_setprop_u64(void *fdt, int nodeoffset, const char *name, fdt_setprop_u64() argument 1193 return fdt_setprop(fdt, nodeoffset, name, &val, sizeof(val)); fdt_setprop_u64() 1201 static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name, fdt_setprop_cell() argument 1204 return fdt_setprop_u32(fdt, nodeoffset, name, val); fdt_setprop_cell() 1209 * @fdt: pointer to the device tree blob 1235 #define fdt_setprop_string(fdt, nodeoffset, name, str) \ 1236 fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1) 1240 * @fdt: pointer to the device tree blob 1265 int fdt_appendprop(void *fdt, int nodeoffset, const char *name, 1270 * @fdt: pointer to the device tree blob 1296 static inline int fdt_appendprop_u32(void *fdt, int nodeoffset, fdt_appendprop_u32() argument 1300 return fdt_appendprop(fdt, nodeoffset, name, &val, sizeof(val)); fdt_appendprop_u32() 1305 * @fdt: pointer to the device tree blob 1331 static inline int fdt_appendprop_u64(void *fdt, int nodeoffset, fdt_appendprop_u64() argument 1335 return fdt_appendprop(fdt, nodeoffset, name, &val, sizeof(val)); fdt_appendprop_u64() 1343 static inline int fdt_appendprop_cell(void *fdt, int nodeoffset, fdt_appendprop_cell() argument 1346 return fdt_appendprop_u32(fdt, nodeoffset, name, val); fdt_appendprop_cell() 1351 * @fdt: pointer to the device tree blob 1376 #define fdt_appendprop_string(fdt, nodeoffset, name, str) \ 1377 fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1) 1381 * @fdt: pointer to the device tree blob 1401 int fdt_delprop(void *fdt, int nodeoffset, const char *name); 1405 * @fdt: pointer to the device tree blob 1415 int fdt_add_subnode_namelen(void *fdt, int parentoffset, 1420 * @fdt: pointer to the device tree blob 1447 int fdt_add_subnode(void *fdt, int parentoffset, const char *name); 1451 * @fdt: pointer to the device tree blob 1470 int fdt_del_node(void *fdt, int nodeoffset);
|
H A D | fdt_wip.c | 53 #include <fdt.h> 58 int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name, fdt_setprop_inplace() argument 64 propval = fdt_getprop_w(fdt, nodeoffset, name, &proplen); fdt_setprop_inplace() 83 int fdt_nop_property(void *fdt, int nodeoffset, const char *name) fdt_nop_property() argument 88 prop = fdt_get_property_w(fdt, nodeoffset, name, &len); fdt_nop_property() 97 int _fdt_node_end_offset(void *fdt, int offset) _fdt_node_end_offset() argument 102 offset = fdt_next_node(fdt, offset, &depth); _fdt_node_end_offset() 107 int fdt_nop_node(void *fdt, int nodeoffset) fdt_nop_node() argument 111 endoffset = _fdt_node_end_offset(fdt, nodeoffset); fdt_nop_node() 115 _fdt_nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0), fdt_nop_node()
|
H A D | fdt_empty_tree.c | 53 #include <fdt.h>
|
H A D | fdt_strerror.c | 53 #include <fdt.h>
|
/linux-4.1.27/include/linux/ |
H A D | libfdt.h | 5 #include "../../scripts/dtc/libfdt/fdt.h"
|
H A D | fdtable.h | 32 static inline bool close_on_exec(int fd, const struct fdtable *fdt) close_on_exec() argument 34 return test_bit(fd, fdt->close_on_exec); close_on_exec() 37 static inline bool fd_is_open(int fd, const struct fdtable *fdt) fd_is_open() argument 39 return test_bit(fd, fdt->open_fds); fd_is_open() 50 struct fdtable __rcu *fdt; member in struct:files_struct 70 rcu_dereference_check_fdtable((files), (files)->fdt) 77 struct fdtable *fdt = rcu_dereference_raw(files->fdt); __fcheck_files() local 79 if (fd < fdt->max_fds) __fcheck_files() 80 return rcu_dereference_raw(fdt->fd[fd]); __fcheck_files()
|
H A D | of_fdt.h | 43 /* TBD: Temporary export of fdt globals - remove when code fully merged */
|
/linux-4.1.27/arch/arm/boot/compressed/ |
H A D | atags_to_fdt.c | 12 static int node_offset(void *fdt, const char *node_path) node_offset() argument 14 int offset = fdt_path_offset(fdt, node_path); node_offset() 16 offset = fdt_add_subnode(fdt, 0, node_path); node_offset() 20 static int setprop(void *fdt, const char *node_path, const char *property, setprop() argument 23 int offset = node_offset(fdt, node_path); setprop() 26 return fdt_setprop(fdt, offset, property, val_array, size); setprop() 29 static int setprop_string(void *fdt, const char *node_path, setprop_string() argument 32 int offset = node_offset(fdt, node_path); setprop_string() 35 return fdt_setprop_string(fdt, offset, property, string); setprop_string() 38 static int setprop_cell(void *fdt, const char *node_path, setprop_cell() argument 41 int offset = node_offset(fdt, node_path); setprop_cell() 44 return fdt_setprop_cell(fdt, offset, property, val); setprop_cell() 47 static const void *getprop(const void *fdt, const char *node_path, getprop() argument 50 int offset = fdt_path_offset(fdt, node_path); getprop() 55 return fdt_getprop(fdt, offset, property, len); getprop() 58 static uint32_t get_cell_size(const void *fdt) get_cell_size() argument 62 const uint32_t *size_len = getprop(fdt, "/", "#size-cells", &len); get_cell_size() 69 static void merge_fdt_bootargs(void *fdt, const char *fdt_cmdline) merge_fdt_bootargs() argument 76 /* copy the fdt command line into the buffer */ merge_fdt_bootargs() 77 fdt_bootargs = getprop(fdt, "/chosen", "bootargs", &len); merge_fdt_bootargs() 97 setprop_string(fdt, "/chosen", "bootargs", cmdline); merge_fdt_bootargs() 108 int atags_to_fdt(void *atag_list, void *fdt, int total_space) atags_to_fdt() argument 132 ret = fdt_open_into(fdt, fdt, total_space); atags_to_fdt() 145 merge_fdt_bootargs(fdt, for_each_tag() 148 setprop_string(fdt, "/chosen", "bootargs", for_each_tag() 155 memsize = get_cell_size(fdt); for_each_tag() 178 setprop_cell(fdt, "/chosen", "linux,initrd-start", for_each_tag() 180 setprop_cell(fdt, "/chosen", "linux,initrd-end", for_each_tag() 186 setprop(fdt, "/memory", "reg", mem_reg_property, 190 return fdt_pack(fdt);
|
H A D | Makefile | 81 libfdt := fdt_rw.c fdt_ro.c fdt_wip.c fdt.c 82 libfdt_hdrs := fdt.h libfdt.h libfdt_internal.h
|
/linux-4.1.27/arch/powerpc/boot/ |
H A D | libfdt-wrapper.c | 54 static void *fdt; variable 61 int size = fdt_totalsize(fdt); expand_buf() 68 rc = fdt_open_into(fdt, buf, size); expand_buf() 70 fatal("Couldn't expand fdt into new buffer: %s\n\r", expand_buf() 73 fdt = buf; expand_buf() 78 return offset_devp(fdt_path_offset(fdt, path)); fdt_wrapper_finddevice() 87 p = fdt_getprop(fdt, devp_offset(devp), name, &len); fdt_wrapper_getprop() 99 rc = fdt_setprop(fdt, devp_offset(devp), name, buf, len); fdt_wrapper_setprop() 102 rc = fdt_setprop(fdt, devp_offset(devp), name, buf, len); fdt_wrapper_setprop() 110 return fdt_del_node(fdt, devp_offset(devp)); fdt_wrapper_del_node() 115 return offset_devp(fdt_parent_offset(fdt, devp_offset(devp))); fdt_wrapper_get_parent() 122 offset = fdt_add_subnode(fdt, devp_offset(devp), name); fdt_wrapper_create_node() 125 offset = fdt_add_subnode(fdt, devp_offset(devp), name); fdt_wrapper_create_node() 136 int offset = fdt_node_offset_by_prop_value(fdt, devp_offset_find(prev), fdt_wrapper_find_node_by_prop_value() 144 int offset = fdt_node_offset_by_compatible(fdt, devp_offset_find(prev), fdt_wrapper_find_node_by_compatible() 153 rc = fdt_get_path(fdt, devp_offset(devp), buf, len); fdt_wrapper_get_path() 163 rc = fdt_pack(fdt); fdt_wrapper_finalize() 167 return (unsigned long)fdt; fdt_wrapper_finalize() 187 fdt = blob; fdt_init() 188 bufsize = fdt_totalsize(fdt) + EXPAND_GRANULARITY; fdt_init() 193 err = fdt_open_into(fdt, buf, bufsize); fdt_init() 198 fdt = buf; fdt_init()
|
H A D | cuboot-hotfoot.c | 67 /* Fix up flash size in fdt for 4M boards. */ hotfoot_fixups()
|
H A D | Makefile | 70 libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c 71 libfdtheader := fdt.h libfdt.h libfdt_internal.h
|
H A D | prpmc2800.c | 523 if (dt_size <= 0) /* No fdt */ platform_init()
|
/linux-4.1.27/fs/ |
H A D | file.c | 47 static void __free_fdtable(struct fdtable *fdt) __free_fdtable() argument 49 kvfree(fdt->fd); __free_fdtable() 50 kvfree(fdt->open_fds); __free_fdtable() 51 kfree(fdt); __free_fdtable() 84 struct fdtable *fdt; alloc_fdtable() local 108 fdt = kmalloc(sizeof(struct fdtable), GFP_KERNEL); alloc_fdtable() 109 if (!fdt) alloc_fdtable() 111 fdt->max_fds = nr; alloc_fdtable() 115 fdt->fd = data; alloc_fdtable() 121 fdt->open_fds = data; alloc_fdtable() 123 fdt->close_on_exec = data; alloc_fdtable() 125 return fdt; alloc_fdtable() 128 kvfree(fdt->fd); alloc_fdtable() 130 kfree(fdt); alloc_fdtable() 169 rcu_assign_pointer(files->fdt, new_fdt); 189 struct fdtable *fdt; expand_files() local 191 fdt = files_fdtable(files); expand_files() 194 if (nr < fdt->max_fds) expand_files() 205 static inline void __set_close_on_exec(int fd, struct fdtable *fdt) __set_close_on_exec() argument 207 __set_bit(fd, fdt->close_on_exec); __set_close_on_exec() 210 static inline void __clear_close_on_exec(int fd, struct fdtable *fdt) __clear_close_on_exec() argument 212 __clear_bit(fd, fdt->close_on_exec); __clear_close_on_exec() 215 static inline void __set_open_fd(int fd, struct fdtable *fdt) __set_open_fd() argument 217 __set_bit(fd, fdt->open_fds); __set_open_fd() 220 static inline void __clear_open_fd(int fd, struct fdtable *fdt) __clear_open_fd() argument 222 __clear_bit(fd, fdt->open_fds); __clear_open_fd() 225 static int count_open_files(struct fdtable *fdt) count_open_files() argument 227 int size = fdt->max_fds; count_open_files() 232 if (fdt->open_fds[--i]) count_open_files() 339 rcu_assign_pointer(newf->fdt, new_fdt); dup_fd() 356 struct fdtable *fdt = rcu_dereference_raw(files->fdt); close_files() local 362 if (i >= fdt->max_fds) close_files() 364 set = fdt->open_fds[j++]; close_files() 367 struct file * file = xchg(&fdt->fd[i], NULL); close_files() 378 return fdt; close_files() 397 struct fdtable *fdt = close_files(files); put_files_struct() local 400 if (fdt != &files->fdtab) put_files_struct() 401 __free_fdtable(fdt); put_files_struct() 432 .fdt = &init_files.fdtab, 450 struct fdtable *fdt; __alloc_fd() local 454 fdt = files_fdtable(files); __alloc_fd() 459 if (fd < fdt->max_fds) __alloc_fd() 460 fd = find_next_zero_bit(fdt->open_fds, fdt->max_fds, fd); __alloc_fd() 484 __set_open_fd(fd, fdt); __alloc_fd() 486 __set_close_on_exec(fd, fdt); __alloc_fd() 488 __clear_close_on_exec(fd, fdt); __alloc_fd() 492 if (rcu_access_pointer(fdt->fd[fd]) != NULL) { __alloc_fd() 494 rcu_assign_pointer(fdt->fd[fd], NULL); __alloc_fd() 516 struct fdtable *fdt = files_fdtable(files); __put_unused_fd() local 517 __clear_open_fd(fd, fdt); __put_unused_fd() 555 struct fdtable *fdt; __fd_install() local 557 fdt = files_fdtable(files); __fd_install() 558 BUG_ON(fdt->fd[fd] != NULL); __fd_install() 559 rcu_assign_pointer(fdt->fd[fd], file); __fd_install() 576 struct fdtable *fdt; __close_fd() local 579 fdt = files_fdtable(files); __close_fd() 580 if (fd >= fdt->max_fds) __close_fd() 582 file = fdt->fd[fd]; __close_fd() 585 rcu_assign_pointer(fdt->fd[fd], NULL); __close_fd() 586 __clear_close_on_exec(fd, fdt); __close_fd() 599 struct fdtable *fdt; do_close_on_exec() local 606 fdt = files_fdtable(files); do_close_on_exec() 607 if (fd >= fdt->max_fds) do_close_on_exec() 609 set = fdt->close_on_exec[i]; do_close_on_exec() 612 fdt->close_on_exec[i] = 0; do_close_on_exec() 617 file = fdt->fd[fd]; do_close_on_exec() 620 rcu_assign_pointer(fdt->fd[fd], NULL); do_close_on_exec() 728 struct fdtable *fdt; set_close_on_exec() local 730 fdt = files_fdtable(files); set_close_on_exec() 732 __set_close_on_exec(fd, fdt); set_close_on_exec() 734 __clear_close_on_exec(fd, fdt); set_close_on_exec() 741 struct fdtable *fdt; get_close_on_exec() local 744 fdt = files_fdtable(files); get_close_on_exec() 745 res = close_on_exec(fd, fdt); get_close_on_exec() 755 struct fdtable *fdt; variable in typeref:struct:fdtable 771 fdt = files_fdtable(files); 772 tofree = fdt->fd[fd]; 773 if (!tofree && fd_is_open(fd, fdt)) 776 rcu_assign_pointer(fdt->fd[fd], file); 777 __set_open_fd(fd, fdt); 779 __set_close_on_exec(fd, fdt); 781 __clear_close_on_exec(fd, fdt); 897 struct fdtable *fdt; iterate_fd() local 902 for (fdt = files_fdtable(files); n < fdt->max_fds; n++) { iterate_fd() 904 file = rcu_dereference_check_fdtable(files, fdt->fd[n]); iterate_fd()
|
H A D | select.c | 347 struct fdtable *fdt; max_select_fd() local 352 fdt = files_fdtable(current->files); max_select_fd() 353 open_fds = fdt->open_fds + n; max_select_fd() 554 struct fdtable *fdt; core_sys_select() local 564 fdt = files_fdtable(current->files); core_sys_select() 565 max_fds = fdt->max_fds; core_sys_select()
|
H A D | compat.c | 1241 struct fdtable *fdt; compat_core_sys_select() local 1249 fdt = files_fdtable(current->files); compat_core_sys_select() 1250 max_fds = fdt->max_fds; compat_core_sys_select()
|
H A D | exec.c | 1549 if (close_on_exec(fd, rcu_dereference_raw(current->files->fdt))) do_execveat_common()
|
/linux-4.1.27/drivers/firmware/efi/libstub/ |
H A D | fdt.c | 21 void *fdt, int new_fdt_size, char *cmdline_ptr, update_fdt() 49 status = fdt_open_into(orig_fdt, fdt, new_fdt_size); update_fdt() 51 status = fdt_create_empty_tree(fdt, new_fdt_size); update_fdt() 65 node = fdt_next_node(fdt, prev, NULL); update_fdt() 69 type = fdt_getprop(fdt, node, "device_type", &len); update_fdt() 71 fdt_del_node(fdt, node); update_fdt() 82 num_rsv = fdt_num_mem_rsv(fdt); update_fdt() 84 fdt_del_mem_rsv(fdt, num_rsv); update_fdt() 86 node = fdt_subnode_offset(fdt, 0, "chosen"); update_fdt() 88 node = fdt_add_subnode(fdt, 0, "chosen"); update_fdt() 96 status = fdt_setprop(fdt, node, "bootargs", cmdline_ptr, update_fdt() 107 status = fdt_setprop(fdt, node, "linux,initrd-start", update_fdt() 112 status = fdt_setprop(fdt, node, "linux,initrd-end", update_fdt() 119 node = fdt_subnode_offset(fdt, 0, "chosen"); update_fdt() 121 status = fdt_setprop(fdt, node, "linux,uefi-system-table", update_fdt() 127 status = fdt_setprop(fdt, node, "linux,uefi-mmap-start", update_fdt() 133 status = fdt_setprop(fdt, node, "linux,uefi-mmap-size", update_fdt() 139 status = fdt_setprop(fdt, node, "linux,uefi-mmap-desc-size", update_fdt() 145 status = fdt_setprop(fdt, node, "linux,uefi-mmap-desc-ver", update_fdt() 154 status = fdt_setprop_string(fdt, node, "linux,uefi-stub-kern-ver", update_fdt() 330 void *fdt; get_fdt() local 334 fdt = NULL; get_fdt() 338 fdt = (void *) tables[i].table; get_fdt() 339 if (fdt_check_header(fdt) != 0) { get_fdt() 343 *fdt_size = fdt_totalsize(fdt); get_fdt() 347 return fdt; get_fdt() 19 update_fdt(efi_system_table_t *sys_table, void *orig_fdt, unsigned long orig_fdt_size, void *fdt, int new_fdt_size, char *cmdline_ptr, u64 initrd_addr, u64 initrd_size, efi_memory_desc_t *memory_map, unsigned long map_size, unsigned long desc_size, u32 desc_ver) update_fdt() argument
|
H A D | efistub.h | 29 void *fdt, int new_fdt_size, char *cmdline_ptr,
|
H A D | Makefile | 25 lib-$(CONFIG_EFI_ARMSTUB) += arm-stub.o fdt.o
|
H A D | efi-stub-helper.c | 38 * with the allocations for initrd and fdt more efficiently.
|
/linux-4.1.27/drivers/of/ |
H A D | Makefile | 3 obj-$(CONFIG_OF_FLATTREE) += fdt.o
|
H A D | fdt.c | 790 const void *fdt = initial_boot_params; early_init_dt_scan_chosen_serial() local 792 offset = fdt_path_offset(fdt, "/chosen"); early_init_dt_scan_chosen_serial() 794 offset = fdt_path_offset(fdt, "/chosen@0"); early_init_dt_scan_chosen_serial() 798 p = fdt_getprop(fdt, offset, "stdout-path", &l); early_init_dt_scan_chosen_serial() 800 p = fdt_getprop(fdt, offset, "linux,stdout-path", &l); early_init_dt_scan_chosen_serial() 805 offset = fdt_path_offset(fdt, p); early_init_dt_scan_chosen_serial() 811 if (fdt_node_check_compatible(fdt, offset, match->compatible)) { early_init_dt_scan_chosen_serial() 816 addr = fdt_translate_address(fdt, offset); early_init_dt_scan_chosen_serial() 1131 __BIN_ATTR(fdt, S_IRUSR, of_fdt_raw_read, NULL, 0); of_fdt_raw_init() 1138 pr_warn("fdt: not creating '/sys/firmware/fdt': CRC check failed\n"); of_fdt_raw_init()
|
H A D | of_reserved_mem.c | 69 * res_mem_save_node() - save fdt node for second pass initialization
|
/linux-4.1.27/scripts/dtc/ |
H A D | flattree.c | 337 static void make_fdt_header(struct fdt_header *fdt, make_fdt_header() argument 346 memset(fdt, 0xff, sizeof(*fdt)); make_fdt_header() 348 fdt->magic = cpu_to_fdt32(FDT_MAGIC); make_fdt_header() 349 fdt->version = cpu_to_fdt32(vi->version); make_fdt_header() 350 fdt->last_comp_version = cpu_to_fdt32(vi->last_comp_version); make_fdt_header() 355 fdt->off_mem_rsvmap = cpu_to_fdt32(reserve_off); make_fdt_header() 356 fdt->off_dt_struct = cpu_to_fdt32(reserve_off + reservesize); make_fdt_header() 357 fdt->off_dt_strings = cpu_to_fdt32(reserve_off + reservesize make_fdt_header() 359 fdt->totalsize = cpu_to_fdt32(reserve_off + reservesize + dtsize + strsize); make_fdt_header() 362 fdt->boot_cpuid_phys = cpu_to_fdt32(boot_cpuid_phys); make_fdt_header() 364 fdt->size_dt_strings = cpu_to_fdt32(strsize); make_fdt_header() 366 fdt->size_dt_struct = cpu_to_fdt32(dtsize); make_fdt_header() 377 struct fdt_header fdt; dt_to_blob() local 393 make_fdt_header(&fdt, vi, reservebuf.len, dtbuf.len, strbuf.len, dt_to_blob() 400 padlen = minsize - fdt32_to_cpu(fdt.totalsize); dt_to_blob() 404 fdt32_to_cpu(fdt.totalsize), minsize); dt_to_blob() 411 int tsize = fdt32_to_cpu(fdt.totalsize); dt_to_blob() 413 fdt.totalsize = cpu_to_fdt32(tsize); dt_to_blob() 421 blob = data_append_data(blob, &fdt, vi->hdr_size); dt_to_blob() 811 struct fdt_header *fdt; dt_from_blob() local 854 fdt = (struct fdt_header *)blob; dt_from_blob() 855 fdt->magic = cpu_to_fdt32(magic); dt_from_blob() 856 fdt->totalsize = cpu_to_fdt32(totalsize); dt_from_blob() 875 off_dt = fdt32_to_cpu(fdt->off_dt_struct); dt_from_blob() 876 off_str = fdt32_to_cpu(fdt->off_dt_strings); dt_from_blob() 877 off_mem_rsvmap = fdt32_to_cpu(fdt->off_mem_rsvmap); dt_from_blob() 878 version = fdt32_to_cpu(fdt->version); dt_from_blob() 879 boot_cpuid_phys = fdt32_to_cpu(fdt->boot_cpuid_phys); dt_from_blob() 891 uint32_t size_str = fdt32_to_cpu(fdt->size_dt_strings); dt_from_blob() 900 size_dt = fdt32_to_cpu(fdt->size_dt_struct); dt_from_blob()
|
H A D | util.h | 86 * @return Pointer to allocated buffer containing fdt, or NULL on error 103 * @param buffp Returns pointer to buffer containing fdt 120 * @param blob Poiner to buffer containing fdt 131 * @param blob Poiner to buffer containing fdt
|
H A D | fdtdump.c | 11 #include <fdt.h>
|
H A D | fdtput.c | 196 * Create a new node in the fdt. 318 * - pack fdt before writing main() 320 * - expand fdt if value doesn't fit main()
|
H A D | dtc.h | 36 #include <fdt.h>
|
/linux-4.1.27/arch/microblaze/include/asm/ |
H A D | setup.h | 39 unsigned int fdt, unsigned int msr, unsigned int tlb0,
|
/linux-4.1.27/arch/openrisc/kernel/ |
H A D | setup.c | 211 void __init or32_early_setup(void *fdt) or32_early_setup() argument 213 if (fdt) or32_early_setup() 214 pr_info("FDT at %p\n", fdt); or32_early_setup() 216 fdt = __dtb_start; or32_early_setup() 217 pr_info("Compiled-in FDT at %p\n", fdt); or32_early_setup() 219 early_init_devtree(fdt); or32_early_setup()
|
H A D | head.S | 446 l.or r25,r0,r3 /* pointer to fdt */ 572 /* check fdt header magic word */ 573 l.lwz r3,0(r25) /* load magic from fdt into r3 */ 579 /* magic number mismatch, set fdt pointer to null */ 582 /* pass fdt pointer to or32_early_setup in r3 */
|
/linux-4.1.27/include/linux/fsl/bestcomm/ |
H A D | bestcomm_priv.h | 56 u32 fdt; member in struct:bcom_tdt 76 u32 *fdt; member in struct:bcom_engine 330 u32 *fdt = &bcom_eng->tdt[task].fdt; bcom_set_task_pragma() local 331 *fdt = (*fdt & ~0xff) | pragma; bcom_set_task_pragma()
|
/linux-4.1.27/drivers/dma/bestcomm/ |
H A D | bestcomm.c | 291 bcom_eng->fdt = bcom_sram_alloc(fdt_size, BCOM_FDT_ALIGN, &fdt_pa); bcom_engine_init() 293 if (!bcom_eng->tdt || !bcom_eng->ctx || !bcom_eng->var || !bcom_eng->fdt) { bcom_engine_init() 299 bcom_sram_free(bcom_eng->fdt); bcom_engine_init() 307 memset(bcom_eng->fdt, 0x00, fdt_size); bcom_engine_init() 310 memcpy(&bcom_eng->fdt[48], fdt_ops, sizeof(fdt_ops)); bcom_engine_init() 320 bcom_eng->tdt[task].fdt = fdt_pa; bcom_engine_init() 359 bcom_sram_free(bcom_eng->fdt); bcom_engine_cleanup()
|
/linux-4.1.27/arch/microblaze/kernel/ |
H A D | setup.c | 100 unsigned int fdt, unsigned int msr, unsigned int tlb0, machine_early_init() 149 if (fdt) machine_early_init() 150 pr_info("FDT at 0x%08x\n", fdt); machine_early_init() 99 machine_early_init(const char *cmdline, unsigned int ram, unsigned int fdt, unsigned int msr, unsigned int tlb0, unsigned int tlb1) machine_early_init() argument
|
H A D | vmlinux.lds.S | 45 _fdt_start = . ; /* place for fdt blob */
|
/linux-4.1.27/arch/microblaze/ |
H A D | Makefile | 87 echo ' - stripped elf with fdt blob' 88 echo ' simpleImage.<dt>.unstrip - full ELF image with fdt blob'
|
/linux-4.1.27/arch/c6x/ |
H A D | Makefile | 61 @echo ' - stripped elf with fdt blob'
|
/linux-4.1.27/arch/c6x/kernel/ |
H A D | vmlinux.lds.S | 93 _fdt_start = . ; /* place for fdt blob */
|
H A D | setup.c | 273 void *fdt = _fdt_start; machine_init() local 288 * fdt is linked in blob. machine_init() 290 if (dtb && dtb != fdt) machine_init() 291 fdt = dtb; machine_init() 294 early_init_dt_scan(fdt); machine_init()
|
/linux-4.1.27/drivers/usb/host/ |
H A D | ehci-ppc-of.c | 144 pr_debug("%s: no ohci offset in fdt\n", __FILE__); ehci_hcd_ppc_of_probe() 212 pr_debug("%s: no ohci offset in fdt\n", __FILE__); ehci_hcd_ppc_of_remove()
|
H A D | ohci-ppc-of.c | 170 pr_debug("%s: cannot get ehci offset from fdt\n", __FILE__); ohci_hcd_ppc_of_probe()
|
/linux-4.1.27/arch/openrisc/include/asm/ |
H A D | page.h | 37 * drivers/of/fdt.c
|
/linux-4.1.27/drivers/scsi/qla2xxx/ |
H A D | qla_sup.c | 869 "fdt=0x%x flt=0x%x npiv=0x%x fcp_prif_cfg=0x%x.\n", qla2xxx_get_flt_info() 885 struct qla_fdt_layout *fdt; qla2xxx_get_fdt_info() local 892 fdt = (struct qla_fdt_layout *)req->ring; qla2xxx_get_fdt_info() 897 if (fdt->sig[0] != 'Q' || fdt->sig[1] != 'L' || fdt->sig[2] != 'I' || qla2xxx_get_fdt_info() 898 fdt->sig[3] != 'D') qla2xxx_get_fdt_info() 908 fdt->sig[0], le16_to_cpu(fdt->version)); qla2xxx_get_fdt_info() 910 (uint8_t *)fdt, sizeof(*fdt)); qla2xxx_get_fdt_info() 915 mid = le16_to_cpu(fdt->man_id); qla2xxx_get_fdt_info() 916 fid = le16_to_cpu(fdt->id); qla2xxx_get_fdt_info() 917 ha->fdt_wrt_disable = fdt->wrt_disable_bits; qla2xxx_get_fdt_info() 918 ha->fdt_wrt_enable = fdt->wrt_enable_bits; qla2xxx_get_fdt_info() 919 ha->fdt_wrt_sts_reg_cmd = fdt->wrt_sts_reg_cmd; qla2xxx_get_fdt_info() 921 ha->fdt_erase_cmd = fdt->erase_cmd; qla2xxx_get_fdt_info() 924 flash_conf_addr(ha, 0x0300 | fdt->erase_cmd); qla2xxx_get_fdt_info() 925 ha->fdt_block_size = le32_to_cpu(fdt->block_size); qla2xxx_get_fdt_info() 926 if (fdt->unprotect_sec_cmd) { qla2xxx_get_fdt_info() 928 fdt->unprotect_sec_cmd); qla2xxx_get_fdt_info() 929 ha->fdt_protect_sec_cmd = fdt->protect_sec_cmd ? qla2xxx_get_fdt_info() 930 flash_conf_addr(ha, 0x0300 | fdt->protect_sec_cmd): qla2xxx_get_fdt_info()
|
/linux-4.1.27/fs/proc/ |
H A D | fd.c | 39 struct fdtable *fdt = files_fdtable(files); seq_show() local 42 if (close_on_exec(fd, fdt)) seq_show()
|
/linux-4.1.27/drivers/scsi/qla4xxx/ |
H A D | ql4_nx.c | 3819 "FLT[%s]: flt=0x%x fdt=0x%x boot=0x%x bootload=0x%x fw=0x%x chap=0x%x chap_size=0x%x ddb=0x%x ddb_size=0x%x\n", qla4_8xxx_get_flt_info() 3836 struct qla_fdt_layout *fdt; qla4_82xx_get_fdt_info() local 3845 fdt = (struct qla_fdt_layout *)ha->request_ring; qla4_82xx_get_fdt_info() 3852 if (fdt->sig[0] != 'Q' || fdt->sig[1] != 'L' || fdt->sig[2] != 'I' || qla4_82xx_get_fdt_info() 3853 fdt->sig[3] != 'D') qla4_82xx_get_fdt_info() 3862 "checksum=0x%x id=%c version=0x%x.\n", chksum, fdt->sig[0], qla4_82xx_get_fdt_info() 3863 le16_to_cpu(fdt->version))); qla4_82xx_get_fdt_info() 3868 mid = le16_to_cpu(fdt->man_id); qla4_82xx_get_fdt_info() 3869 fid = le16_to_cpu(fdt->id); qla4_82xx_get_fdt_info() 3870 hw->fdt_wrt_disable = fdt->wrt_disable_bits; qla4_82xx_get_fdt_info() 3871 hw->fdt_erase_cmd = flash_conf_addr(hw, 0x0300 | fdt->erase_cmd); qla4_82xx_get_fdt_info() 3872 hw->fdt_block_size = le32_to_cpu(fdt->block_size); qla4_82xx_get_fdt_info() 3874 if (fdt->unprotect_sec_cmd) { qla4_82xx_get_fdt_info() 3876 fdt->unprotect_sec_cmd); qla4_82xx_get_fdt_info() 3877 hw->fdt_protect_sec_cmd = fdt->protect_sec_cmd ? qla4_82xx_get_fdt_info() 3878 flash_conf_addr(hw, 0x0300 | fdt->protect_sec_cmd) : qla4_82xx_get_fdt_info()
|
/linux-4.1.27/arch/nios2/kernel/ |
H A D | setup.c | 100 * @r6: initrd end or fdt
|
/linux-4.1.27/lib/ |
H A D | Makefile | 160 libfdt_files = fdt.o fdt_ro.o fdt_wip.o fdt_rw.o fdt_sw.o fdt_strerror.o \
|
/linux-4.1.27/drivers/net/ethernet/qlogic/qlcnic/ |
H A D | qlcnic_sysfs.c | 1011 if (adapter->ahw->fdt.mfg_id == adapter->flash_mfg_id) { qlcnic_83xx_sysfs_flash_bulk_write() 1026 if (adapter->ahw->fdt.mfg_id == adapter->flash_mfg_id) { qlcnic_83xx_sysfs_flash_bulk_write() 1044 if (adapter->ahw->fdt.mfg_id == adapter->flash_mfg_id) { qlcnic_83xx_sysfs_flash_bulk_write() 1079 if (adapter->ahw->fdt.mfg_id == adapter->flash_mfg_id) { qlcnic_83xx_sysfs_flash_write() 1091 if (adapter->ahw->fdt.mfg_id == adapter->flash_mfg_id) { qlcnic_83xx_sysfs_flash_write() 1108 if (adapter->ahw->fdt.mfg_id == adapter->flash_mfg_id) { qlcnic_83xx_sysfs_flash_write()
|
H A D | qlcnic_83xx_hw.c | 2717 cmd = adapter->ahw->fdt.write_statusreg_cmd; qlcnic_83xx_enable_flash_write() 2721 adapter->ahw->fdt.write_enable_bits); qlcnic_83xx_enable_flash_write() 2737 adapter->ahw->fdt.write_statusreg_cmd)); qlcnic_83xx_disable_flash_write() 2739 adapter->ahw->fdt.write_disable_bits); qlcnic_83xx_disable_flash_write() 2789 memset(&adapter->ahw->fdt, 0, fdt_size); qlcnic_83xx_read_flash_descriptor_table() 2791 (u8 *)&adapter->ahw->fdt, qlcnic_83xx_read_flash_descriptor_table() 2793 qlcnic_swap32_buffer((u32 *)&adapter->ahw->fdt, count); qlcnic_83xx_read_flash_descriptor_table() 2807 if (adapter->ahw->fdt.mfg_id == adapter->flash_mfg_id) { qlcnic_83xx_erase_flash_sector() 2832 cmd = QLC_83XX_FLASH_FDT_ERASE_DEF_SIG | adapter->ahw->fdt.erase_cmd; qlcnic_83xx_erase_flash_sector() 2833 if (adapter->ahw->fdt.mfg_id == adapter->flash_mfg_id) qlcnic_83xx_erase_flash_sector() 2849 if (adapter->ahw->fdt.mfg_id == adapter->flash_mfg_id) { qlcnic_83xx_erase_flash_sector()
|
H A D | qlcnic.h | 527 struct qlcnic_fdt fdt; member in struct:qlcnic_hardware_context
|
/linux-4.1.27/arch/mips/cavium-octeon/ |
H A D | setup.c | 1088 const void *fdt; device_tree_init() local 1092 fdt = phys_to_virt(octeon_bootinfo->fdt_addr); device_tree_init() 1093 if (fdt_check_header(fdt)) device_tree_init() 1097 fdt = &__dtb_octeon_68xx_begin; device_tree_init() 1100 fdt = &__dtb_octeon_3xxx_begin; device_tree_init() 1104 initial_boot_params = (void *)fdt; device_tree_init()
|
/linux-4.1.27/arch/metag/kernel/ |
H A D | setup.c | 258 /* append the bootloader cmdline to any builtin fdt cmdline */ setup_arch()
|