/*-1* Copyright (c) 2011 Joseph Koshy2* All rights reserved.3*4* Redistribution and use in source and binary forms, with or without5* modification, are permitted provided that the following conditions6* are met:7* 1. Redistributions of source code must retain the above copyright8* notice, this list of conditions and the following disclaimer.9* 2. Redistributions in binary form must reproduce the above copyright10* notice, this list of conditions and the following disclaimer in the11* documentation and/or other materials provided with the distribution.12*13* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND14* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE15* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE16* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE17* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL18* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS19* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)20* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT21* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY22* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF23* SUCH DAMAGE.24*/2526#include <libelf.h>2728#include "_libelf.h"2930ELFTC_VCSID("$Id$");3132/*33* Extension API: open a file for reading, ignoring parse errors.34*/3536Elf *37elf_open(int fd)38{39if (LIBELF_PRIVATE(version) == EV_NONE) {40LIBELF_SET_ERROR(SEQUENCE, 0);41return (NULL);42}4344return (_libelf_open_object(fd, ELF_C_READ, 0));45}4647/*48* Extension API: create an ELF descriptor for an in-memory object,49* ignoring parse errors.50*/5152Elf *53elf_openmemory(char *image, size_t sz)54{55if (LIBELF_PRIVATE(version) == EV_NONE) {56LIBELF_SET_ERROR(SEQUENCE, 0);57return (NULL);58}5960if (image == NULL || sz == 0) {61LIBELF_SET_ERROR(ARGUMENT, 0);62return (NULL);63}6465return (_libelf_memory((unsigned char *) image, sz, 0));66}676869