Lines Matching refs:f
102 static void emit_label(FILE *f, const char *prefix, const char *label) in emit_label() argument
104 fprintf(f, "\t.globl\t%s_%s\n", prefix, label); in emit_label()
105 fprintf(f, "%s_%s:\n", prefix, label); in emit_label()
106 fprintf(f, "_%s_%s:\n", prefix, label); in emit_label()
109 static void emit_offset_label(FILE *f, const char *label, int offset) in emit_offset_label() argument
111 fprintf(f, "\t.globl\t%s\n", label); in emit_offset_label()
112 fprintf(f, "%s\t= . + %d\n", label, offset); in emit_offset_label()
115 #define ASM_EMIT_BELONG(f, fmt, ...) \ argument
117 fprintf((f), "\t.byte\t((" fmt ") >> 24) & 0xff\n", __VA_ARGS__); \
118 fprintf((f), "\t.byte\t((" fmt ") >> 16) & 0xff\n", __VA_ARGS__); \
119 fprintf((f), "\t.byte\t((" fmt ") >> 8) & 0xff\n", __VA_ARGS__); \
120 fprintf((f), "\t.byte\t(" fmt ") & 0xff\n", __VA_ARGS__); \
125 FILE *f = e; in asm_emit_cell() local
127 fprintf(f, "\t.byte 0x%02x; .byte 0x%02x; .byte 0x%02x; .byte 0x%02x\n", in asm_emit_cell()
134 FILE *f = e; in asm_emit_string() local
137 fprintf(f, "\t.string\t\"%.*s\"\n", len, str); in asm_emit_string()
139 fprintf(f, "\t.string\t\"%s\"\n", str); in asm_emit_string()
144 FILE *f = e; in asm_emit_align() local
146 fprintf(f, "\t.balign\t%d, 0\n", a); in asm_emit_align()
151 FILE *f = e; in asm_emit_data() local
156 emit_offset_label(f, m->ref, m->offset); in asm_emit_data()
164 fprintf(f, "\t.byte\t0x%hhx\n", d.val[off]); in asm_emit_data()
173 FILE *f = e; in asm_emit_beginnode() local
177 fprintf(f, "\t.globl\t%s\n", l->label); in asm_emit_beginnode()
178 fprintf(f, "%s:\n", l->label); in asm_emit_beginnode()
180 fprintf(f, "\t/* FDT_BEGIN_NODE */\n"); in asm_emit_beginnode()
186 FILE *f = e; in asm_emit_endnode() local
189 fprintf(f, "\t/* FDT_END_NODE */\n"); in asm_emit_endnode()
192 fprintf(f, "\t.globl\t%s_end\n", l->label); in asm_emit_endnode()
193 fprintf(f, "%s_end:\n", l->label); in asm_emit_endnode()
199 FILE *f = e; in asm_emit_property() local
203 fprintf(f, "\t.globl\t%s\n", l->label); in asm_emit_property()
204 fprintf(f, "%s:\n", l->label); in asm_emit_property()
206 fprintf(f, "\t/* FDT_PROP */\n"); in asm_emit_property()
345 void dt_to_blob(FILE *f, struct dt_info *dti, int version) in dt_to_blob() argument
417 if (fwrite(blob.val, blob.len, 1, f) != 1) { in dt_to_blob()
418 if (ferror(f)) in dt_to_blob()
432 static void dump_stringtable_asm(FILE *f, struct data strbuf) in dump_stringtable_asm() argument
441 fprintf(f, "\t.string \"%s\"\n", p); in dump_stringtable_asm()
446 void dt_to_asm(FILE *f, struct dt_info *dti, int version) in dt_to_asm() argument
461 fprintf(f, "/* autogenerated by dtc, do not edit */\n\n"); in dt_to_asm()
463 emit_label(f, symprefix, "blob_start"); in dt_to_asm()
464 emit_label(f, symprefix, "header"); in dt_to_asm()
465 fprintf(f, "\t/* magic */\n"); in dt_to_asm()
466 asm_emit_cell(f, FDT_MAGIC); in dt_to_asm()
467 fprintf(f, "\t/* totalsize */\n"); in dt_to_asm()
468 ASM_EMIT_BELONG(f, "_%s_blob_abs_end - _%s_blob_start", in dt_to_asm()
470 fprintf(f, "\t/* off_dt_struct */\n"); in dt_to_asm()
471 ASM_EMIT_BELONG(f, "_%s_struct_start - _%s_blob_start", in dt_to_asm()
473 fprintf(f, "\t/* off_dt_strings */\n"); in dt_to_asm()
474 ASM_EMIT_BELONG(f, "_%s_strings_start - _%s_blob_start", in dt_to_asm()
476 fprintf(f, "\t/* off_mem_rsvmap */\n"); in dt_to_asm()
477 ASM_EMIT_BELONG(f, "_%s_reserve_map - _%s_blob_start", in dt_to_asm()
479 fprintf(f, "\t/* version */\n"); in dt_to_asm()
480 asm_emit_cell(f, vi->version); in dt_to_asm()
481 fprintf(f, "\t/* last_comp_version */\n"); in dt_to_asm()
482 asm_emit_cell(f, vi->last_comp_version); in dt_to_asm()
485 fprintf(f, "\t/* boot_cpuid_phys */\n"); in dt_to_asm()
486 asm_emit_cell(f, dti->boot_cpuid_phys); in dt_to_asm()
490 fprintf(f, "\t/* size_dt_strings */\n"); in dt_to_asm()
491 ASM_EMIT_BELONG(f, "_%s_strings_end - _%s_strings_start", in dt_to_asm()
496 fprintf(f, "\t/* size_dt_struct */\n"); in dt_to_asm()
497 ASM_EMIT_BELONG(f, "_%s_struct_end - _%s_struct_start", in dt_to_asm()
507 asm_emit_align(f, 8); in dt_to_asm()
508 emit_label(f, symprefix, "reserve_map"); in dt_to_asm()
510 fprintf(f, "/* Memory reserve map from source file */\n"); in dt_to_asm()
520 fprintf(f, "\t.globl\t%s\n", l->label); in dt_to_asm()
521 fprintf(f, "%s:\n", l->label); in dt_to_asm()
523 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->address >> 32)); in dt_to_asm()
524 ASM_EMIT_BELONG(f, "0x%08x", in dt_to_asm()
526 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->size >> 32)); in dt_to_asm()
527 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->size & 0xffffffff)); in dt_to_asm()
530 fprintf(f, "\t.long\t0, 0\n\t.long\t0, 0\n"); in dt_to_asm()
533 fprintf(f, "\t.long\t0, 0\n\t.long\t0, 0\n"); in dt_to_asm()
535 emit_label(f, symprefix, "struct_start"); in dt_to_asm()
536 flatten_tree(dti->dt, &asm_emitter, f, &strbuf, vi); in dt_to_asm()
538 fprintf(f, "\t/* FDT_END */\n"); in dt_to_asm()
539 asm_emit_cell(f, FDT_END); in dt_to_asm()
540 emit_label(f, symprefix, "struct_end"); in dt_to_asm()
542 emit_label(f, symprefix, "strings_start"); in dt_to_asm()
543 dump_stringtable_asm(f, strbuf); in dt_to_asm()
544 emit_label(f, symprefix, "strings_end"); in dt_to_asm()
546 emit_label(f, symprefix, "blob_end"); in dt_to_asm()
552 fprintf(f, "\t.space\t%d - (_%s_blob_end - _%s_blob_start), 0\n", in dt_to_asm()
556 fprintf(f, "\t.space\t%d, 0\n", padsize); in dt_to_asm()
559 asm_emit_align(f, alignsize); in dt_to_asm()
560 emit_label(f, symprefix, "blob_abs_end"); in dt_to_asm()
797 FILE *f; in dt_from_blob() local
813 f = srcfile_relative_open(fname, NULL); in dt_from_blob()
815 rc = fread(&magic_buf, sizeof(magic_buf), 1, f); in dt_from_blob()
816 if (ferror(f)) in dt_from_blob()
820 if (feof(f)) in dt_from_blob()
830 rc = fread(&totalsize_buf, sizeof(totalsize_buf), 1, f); in dt_from_blob()
831 if (ferror(f)) in dt_from_blob()
834 if (feof(f)) in dt_from_blob()
854 if (feof(f)) in dt_from_blob()
858 rc = fread(p, 1, sizeleft, f); in dt_from_blob()
859 if (ferror(f)) in dt_from_blob()
922 fclose(f); in dt_from_blob()