• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Abort operations on the assembler context, free all resources.
2    Copyright (C) 2002 Red Hat, Inc.
3    Written by Ulrich Drepper <drepper@redhat.com>, 2002.
4 
5    This program is Open Source software; you can redistribute it and/or
6    modify it under the terms of the Open Software License version 1.0 as
7    published by the Open Source Initiative.
8 
9    You should have received a copy of the Open Software License along
10    with this program; if not, you may obtain a copy of the Open Software
11    License version 1.0 from http://www.opensource.org/licenses/osl.php or
12    by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
13    3001 King Ranch Road, Ukiah, CA 95482.   */
14 
15 #ifdef HAVE_CONFIG_H
16 # include <config.h>
17 #endif
18 
19 #include <stdlib.h>
20 #include <unistd.h>
21 
22 #include <libasmP.h>
23 #include <libelf.h>
24 
25 
26 int
asm_abort(ctx)27 asm_abort (ctx)
28      AsmCtx_t *ctx;
29 {
30   if (ctx == NULL)
31     /* Something went wrong earlier.  */
32     return -1;
33 
34   if (likely (! ctx->textp))
35     /* First free the ELF file.  We don't care about the result.  */
36     (void) elf_end (ctx->out.elf);
37 
38   /* Now close the temporary file and remove it.  */
39   (void) unlink (ctx->tmp_fname);
40 
41   /* Free the resources.  */
42   __libasm_finictx (ctx);
43 
44   return 0;
45 }
46