Home | History | Annotate | Download | only in libasm

Lines Matching refs:result

48 prepare_text_output (AsmCtx_t *result)
50 if (result->fd == -1)
51 result->out.file = stdout;
54 result->out.file = fdopen (result->fd, "a");
55 if (result->out.file == NULL)
57 close (result->fd);
58 free (result);
59 result = NULL;
62 __fsetlocking (result->out.file, FSETLOCKING_BYCALLER);
65 return result;
70 prepare_binary_output (AsmCtx_t *result, Ebl *ebl)
76 result->out.elf = elf_begin (result->fd, ELF_C_WRITE_MMAP, NULL);
77 if (result->out.elf == NULL)
80 unlink (result->tmp_fname);
81 close (result->fd);
82 free (result);
89 if (gelf_newehdr (result->out.elf, class) == 0)
92 ehdr = gelf_getehdr (result->out.elf, &ehdr_mem);
109 (void) gelf_update_ehdr (result->out.elf, ehdr);
112 result->section_list = NULL;
115 asm_symbol_tab_init (&result->symbol_tab, 67);
116 result->nsymbol_tab = 0;
118 result->section_strtab = ebl_strtabinit (true);
119 result->symbol_strtab = ebl_strtabinit (true);
122 result->groups = NULL;
123 result->ngroups = 0;
125 return result;
141 AsmCtx_t *result
143 if (result == NULL)
147 rwlock_init (result->lock);
152 result->fname = stpcpy (mempcpy (result->tmp_fname, fname, fname_len),
154 memcpy (result->fname, fname, fname_len + 1);
157 result->fd = mkstemp (result->tmp_fname);
158 if (result->fd == -1)
161 free (result);
168 result->fd = -1;
171 result->tempsym_count = 0;
174 result->textp = textp;
176 result = prepare_text_output (result);
178 result = prepare_binary_output (result, ebl);
180 return result;