• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Return the size of an object file type.
2    Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc.
3    Written by Ulrich Drepper <drepper@redhat.com>, 1998.
4 
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation, version 2.
8 
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.
13 
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.  */
17 
18 #ifdef HAVE_CONFIG_H
19 # include <config.h>
20 #endif
21 
22 #include <libelf.h>
23 #include "libelfP.h"
24 
25 #ifndef LIBELFBITS
26 # define LIBELFBITS 32
27 #endif
28 
29 
30 size_t
31 elfw2(LIBELFBITS, fsize) (type, count, version)
32      Elf_Type type;
33      size_t count;
34      unsigned int version;
35 {
36   /* We do not have differences between file and memory sizes.  Better
37      not since otherwise `mmap' would not work.  */
38   if (unlikely (version == EV_NONE) || unlikely (version >= EV_NUM))
39     {
40       __libelf_seterrno (ELF_E_UNKNOWN_VERSION);
41       return 0;
42     }
43 
44   if (unlikely (type >= ELF_T_NUM))
45     {
46       __libelf_seterrno (ELF_E_UNKNOWN_TYPE);
47       return 0;
48     }
49 
50 #if EV_NUM != 2
51   return (count
52 	  * __libelf_type_sizes[version - 1][ELFW(ELFCLASS,LIBELFBITS) - 1][type]);
53 #else
54   return (count
55 	  * __libelf_type_sizes[0][ELFW(ELFCLASS,LIBELFBITS) - 1][type]);
56 #endif
57 }
58 #define local_strong_alias(n1, n2) strong_alias (n1, n2)
59 //local_strong_alias (elfw2(LIBELFBITS, fsize), __elfw2(LIBELFBITS, msize))
60