Home | History | Annotate | Download | only in libasm
      1 /* Abort operations on the assembler context, free all resources.
      2    Copyright (C) 2002 Red Hat, Inc.
      3    Written by Ulrich Drepper <drepper (at) 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
     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