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
26int
27asm_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