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\t0x%02x\n" "\t.byte\t0x%02x\n" in asm_emit_cell()
135 FILE *f = e; in asm_emit_string() local
138 fprintf(f, "\t.asciz\t\"%.*s\"\n", len, str); in asm_emit_string()
140 fprintf(f, "\t.asciz\t\"%s\"\n", str); in asm_emit_string()
145 FILE *f = e; in asm_emit_align() local
147 fprintf(f, "\t.balign\t%d, 0\n", a); in asm_emit_align()
152 FILE *f = e; in asm_emit_data() local
157 emit_offset_label(f, m->ref, m->offset); in asm_emit_data()
165 fprintf(f, "\t.byte\t0x%hhx\n", d.val[off]); in asm_emit_data()
174 FILE *f = e; in asm_emit_beginnode() local
178 fprintf(f, "\t.globl\t%s\n", l->label); in asm_emit_beginnode()
179 fprintf(f, "%s:\n", l->label); in asm_emit_beginnode()
181 fprintf(f, "\t/* FDT_BEGIN_NODE */\n"); in asm_emit_beginnode()
187 FILE *f = e; in asm_emit_endnode() local
190 fprintf(f, "\t/* FDT_END_NODE */\n"); in asm_emit_endnode()
193 fprintf(f, "\t.globl\t%s_end\n", l->label); in asm_emit_endnode()
194 fprintf(f, "%s_end:\n", l->label); in asm_emit_endnode()
200 FILE *f = e; in asm_emit_property() local
204 fprintf(f, "\t.globl\t%s\n", l->label); in asm_emit_property()
205 fprintf(f, "%s:\n", l->label); in asm_emit_property()
207 fprintf(f, "\t/* FDT_PROP */\n"); in asm_emit_property()
346 void dt_to_blob(FILE *f, struct dt_info *dti, int version) in dt_to_blob() argument
418 if (fwrite(blob.val, blob.len, 1, f) != 1) { in dt_to_blob()
419 if (ferror(f)) in dt_to_blob()
433 static void dump_stringtable_asm(FILE *f, struct data strbuf) in dump_stringtable_asm() argument
442 fprintf(f, "\t.asciz \"%s\"\n", p); in dump_stringtable_asm()
447 void dt_to_asm(FILE *f, struct dt_info *dti, int version) in dt_to_asm() argument
462 fprintf(f, "/* autogenerated by dtc, do not edit */\n\n"); in dt_to_asm()
464 emit_label(f, symprefix, "blob_start"); in dt_to_asm()
465 emit_label(f, symprefix, "header"); in dt_to_asm()
466 fprintf(f, "\t/* magic */\n"); in dt_to_asm()
467 asm_emit_cell(f, FDT_MAGIC); in dt_to_asm()
468 fprintf(f, "\t/* totalsize */\n"); in dt_to_asm()
469 ASM_EMIT_BELONG(f, "_%s_blob_abs_end - _%s_blob_start", in dt_to_asm()
471 fprintf(f, "\t/* off_dt_struct */\n"); in dt_to_asm()
472 ASM_EMIT_BELONG(f, "_%s_struct_start - _%s_blob_start", in dt_to_asm()
474 fprintf(f, "\t/* off_dt_strings */\n"); in dt_to_asm()
475 ASM_EMIT_BELONG(f, "_%s_strings_start - _%s_blob_start", in dt_to_asm()
477 fprintf(f, "\t/* off_mem_rsvmap */\n"); in dt_to_asm()
478 ASM_EMIT_BELONG(f, "_%s_reserve_map - _%s_blob_start", in dt_to_asm()
480 fprintf(f, "\t/* version */\n"); in dt_to_asm()
481 asm_emit_cell(f, vi->version); in dt_to_asm()
482 fprintf(f, "\t/* last_comp_version */\n"); in dt_to_asm()
483 asm_emit_cell(f, vi->last_comp_version); in dt_to_asm()
486 fprintf(f, "\t/* boot_cpuid_phys */\n"); in dt_to_asm()
487 asm_emit_cell(f, dti->boot_cpuid_phys); in dt_to_asm()
491 fprintf(f, "\t/* size_dt_strings */\n"); in dt_to_asm()
492 ASM_EMIT_BELONG(f, "_%s_strings_end - _%s_strings_start", in dt_to_asm()
497 fprintf(f, "\t/* size_dt_struct */\n"); in dt_to_asm()
498 ASM_EMIT_BELONG(f, "_%s_struct_end - _%s_struct_start", in dt_to_asm()
508 asm_emit_align(f, 8); in dt_to_asm()
509 emit_label(f, symprefix, "reserve_map"); in dt_to_asm()
511 fprintf(f, "/* Memory reserve map from source file */\n"); in dt_to_asm()
521 fprintf(f, "\t.globl\t%s\n", l->label); in dt_to_asm()
522 fprintf(f, "%s:\n", l->label); in dt_to_asm()
524 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->address >> 32)); in dt_to_asm()
525 ASM_EMIT_BELONG(f, "0x%08x", in dt_to_asm()
527 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->size >> 32)); in dt_to_asm()
528 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->size & 0xffffffff)); in dt_to_asm()
531 fprintf(f, "\t.long\t0, 0\n\t.long\t0, 0\n"); in dt_to_asm()
534 fprintf(f, "\t.long\t0, 0\n\t.long\t0, 0\n"); in dt_to_asm()
536 emit_label(f, symprefix, "struct_start"); in dt_to_asm()
537 flatten_tree(dti->dt, &asm_emitter, f, &strbuf, vi); in dt_to_asm()
539 fprintf(f, "\t/* FDT_END */\n"); in dt_to_asm()
540 asm_emit_cell(f, FDT_END); in dt_to_asm()
541 emit_label(f, symprefix, "struct_end"); in dt_to_asm()
543 emit_label(f, symprefix, "strings_start"); in dt_to_asm()
544 dump_stringtable_asm(f, strbuf); in dt_to_asm()
545 emit_label(f, symprefix, "strings_end"); in dt_to_asm()
547 emit_label(f, symprefix, "blob_end"); in dt_to_asm()
553 fprintf(f, "\t.space\t%d - (_%s_blob_end - _%s_blob_start), 0\n", in dt_to_asm()
557 fprintf(f, "\t.space\t%d, 0\n", padsize); in dt_to_asm()
560 asm_emit_align(f, alignsize); in dt_to_asm()
561 emit_label(f, symprefix, "blob_abs_end"); in dt_to_asm()
795 FILE *f; in dt_from_blob() local
811 f = srcfile_relative_open(fname, NULL); in dt_from_blob()
813 rc = fread(&magic_buf, sizeof(magic_buf), 1, f); in dt_from_blob()
814 if (ferror(f)) in dt_from_blob()
818 if (feof(f)) in dt_from_blob()
828 rc = fread(&totalsize_buf, sizeof(totalsize_buf), 1, f); in dt_from_blob()
829 if (ferror(f)) in dt_from_blob()
832 if (feof(f)) in dt_from_blob()
852 if (feof(f)) in dt_from_blob()
856 rc = fread(p, 1, sizeleft, f); in dt_from_blob()
857 if (ferror(f)) in dt_from_blob()
920 fclose(f); in dt_from_blob()