1 /* Control an ELF file desrciptor.
2 Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
3 Written by Ulrich Drepper <drepper@redhat.com>, 1998.
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License version 2 as
7 published by the Free Software Foundation.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software Foundation,
16 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
28 elf_cntl (Elf *elf, Elf_Cmd cmd)
35 if (elf->fildes == -1)
37 __libelf_seterrno (ELF_E_INVALID_HANDLE);
41 rwlock_wrlock (elf->lock);
46 /* If not all of the file is in the memory read it now. */
47 if (elf->map_address == NULL && __libelf_readall (elf) == NULL)
49 /* We were not able to read everything. */
56 /* Mark the file descriptor as not usable. */
61 __libelf_seterrno (ELF_E_INVALID_CMD);
66 rwlock_unlock (elf->lock);