Lines Matching full:disp
108 * @disp: Display structure, holding info about our options
114 static int value_add(struct display_info *disp, struct value_node **headp, in value_add() argument
127 disp->types_inc |= type; in value_add()
129 disp->types_exc |= type; in value_add()
130 if (disp->types_inc & disp->types_exc & type) { in value_add()
225 * @disp: Display structure, holding info about our options
230 static int display_fdt_by_regions(struct display_info *disp, const void *blob, in display_fdt_by_regions() argument
239 FILE *f = disp->fout; in display_fdt_by_regions()
245 if (disp->show_dts_version) in display_fdt_by_regions()
248 if (disp->header) { in display_fdt_by_regions()
275 if (disp->flags & FDT_REG_ADD_MEM_RSVMAP) { in display_fdt_by_regions()
316 show = in_region || disp->all; in display_fdt_by_regions()
317 if (show && disp->diff) in display_fdt_by_regions()
329 if (disp->show_addr) in display_fdt_by_regions()
331 if (disp->show_offset) in display_fdt_by_regions()
336 if (disp->colour) in display_fdt_by_regions()
365 if (disp->colour) in display_fdt_by_regions()
371 if (disp->list_strings) { in display_fdt_by_regions()
387 show = in_region || disp->all; in display_fdt_by_regions()
388 if (show && disp->diff) in display_fdt_by_regions()
390 if (disp->show_addr) in display_fdt_by_regions()
392 if (disp->show_offset) in display_fdt_by_regions()
409 * is, these disp->flags must be set:
420 * @disp: Display structure, holding info about our options
426 static int dump_fdt_regions(struct display_info *disp, const void *blob, in dump_fdt_regions() argument
454 if (count > 0 && (disp->flags & FDT_REG_ADD_MEM_RSVMAP)) { in dump_fdt_regions()
461 if (count >= 2 && (disp->flags & FDT_REG_ADD_STRING_TAB)) { in dump_fdt_regions()
473 if (disp->header) { in dump_fdt_regions()
512 struct display_info *disp = priv; in check_type_include() local
518 if (!((disp->types_inc | disp->types_exc) & type)) { in check_type_include()
529 for (val = disp->value_head; val; val = val->next) { in check_type_include()
549 if ((type & disp->types_exc) && (none_match & type)) { in check_type_include()
555 if (type == FDT_IS_NODE && disp->types_exc == FDT_ANY_GLOBAL) { in check_type_include()
566 if (type == FDT_IS_NODE && disp->types_inc == FDT_ANY_GLOBAL) in check_type_include()
570 disp->types_inc, disp->types_exc, none_match); in check_type_include()
581 * The algorithm is documented in the code - disp->invert is 0 for normal
589 struct display_info *disp = priv; in h_include() local
593 if (disp->include_root && type == FDT_IS_PROP && offset == 0 && inc) in h_include()
608 (disp->types_inc & FDT_NODE_HAS_PROP)) { in h_include()
630 inc = !disp->invert; in h_include()
633 inc = disp->invert; in h_include()
651 struct display_info *disp, struct fdt_region *region, in fdtgrep_find_regions() argument
659 ret = fdt_first_region(fdt, include_func, disp, in fdtgrep_find_regions()
661 disp->flags, &state); in fdtgrep_find_regions()
663 ret = fdt_next_region(fdt, include_func, disp, in fdtgrep_find_regions()
665 path, path_len, disp->flags, &state); in fdtgrep_find_regions()
673 if (disp->add_aliases && count < max_regions) { in fdtgrep_find_regions()
771 * @param disp Display information / options
775 static int do_fdtgrep(struct display_info *disp, const char *filename) in do_fdtgrep() argument
794 if (fdt_version(blob) < 17 && disp->value_head) { in do_fdtgrep()
814 h_include, disp, in do_fdtgrep()
816 disp->flags); in do_fdtgrep()
827 if (disp->region_list) in do_fdtgrep()
831 if (disp->output == OUT_DTS) { in do_fdtgrep()
832 ret = display_fdt_by_regions(disp, blob, region, count); in do_fdtgrep()
844 size = dump_fdt_regions(disp, blob, region, count, fdt); in do_fdtgrep()
845 if (disp->remove_strings) { in do_fdtgrep()
872 if (size != fwrite(fdt, 1, size, disp->fout)) { in do_fdtgrep()
1070 static void scan_args(struct display_info *disp, int argc, char *argv[]) in scan_args() argument
1081 disp->show_addr = 1; in scan_args()
1084 disp->all = 1; in scan_args()
1096 disp->diff = 1; in scan_args()
1099 disp->flags |= FDT_REG_DIRECT_SUBNODES; in scan_args()
1102 disp->show_offset = 1; in scan_args()
1111 disp->header = 1; in scan_args()
1114 disp->region_list = 1; in scan_args()
1117 disp->list_strings = 1; in scan_args()
1120 disp->flags |= FDT_REG_ADD_MEM_RSVMAP; in scan_args()
1129 disp->output_fname = optarg; in scan_args()
1133 disp->output = OUT_DTB; in scan_args()
1135 disp->output = OUT_DTS; in scan_args()
1137 disp->output = OUT_BIN; in scan_args()
1148 disp->remove_strings = 1; in scan_args()
1151 disp->include_root = 1; in scan_args()
1154 disp->flags |= FDT_REG_ALL_SUBNODES; in scan_args()
1157 disp->flags &= ~FDT_REG_SUPERNODES; in scan_args()
1160 disp->flags |= FDT_REG_ADD_STRING_TAB; in scan_args()
1163 disp->add_aliases = 1; in scan_args()
1166 disp->invert = 1; in scan_args()
1169 disp->show_dts_version = 1; in scan_args()
1173 if (type && value_add(disp, &disp->value_head, type, inc, in scan_args()
1178 if (disp->invert && disp->types_exc) in scan_args()
1185 struct display_info disp; in main() local
1189 memset(&disp, '\0', sizeof(disp)); in main()
1190 disp.flags = FDT_REG_SUPERNODES; /* Default flags */ in main()
1192 scan_args(&disp, argc, argv); in main()
1195 disp.colour = disp.all && isatty(0); in main()
1199 if (value_add(&disp, &disp.value_head, FDT_IS_ANY, 1, in main()
1210 if (disp.output == OUT_DTB) { in main()
1211 disp.header = 1; in main()
1212 disp.flags |= FDT_REG_ADD_MEM_RSVMAP | FDT_REG_ADD_STRING_TAB; in main()
1215 if (disp.output_fname) { in main()
1216 disp.fout = fopen(disp.output_fname, "w"); in main()
1217 if (!disp.fout) in main()
1220 disp.fout = stdout; in main()
1224 ret = do_fdtgrep(&disp, filename); in main()
1225 if (disp.output_fname) in main()
1226 fclose(disp.fout); in main()