8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / cmd / sgs / libelf / common / llib-lelf
blobf525dde839e61c0ba5172f8e3e71aeecaa546ba1
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
23  * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
24  */ 
26 /* LINTLIBRARY */
27 /* PROTOLIB1 */
30  * Generic interface definition for usr/src/lib/libelf.
31  */
33 #include <_libelf.h>
34 #include <nlist.h>
38  * Elf32 Symbols
39  */
40 size_t          elf32_fsize(Elf_Type, size_t, uint_t);
41 Elf32_Ehdr *    elf32_getehdr(Elf *);
42 Elf32_Phdr *    elf32_getphdr(Elf *);
43 Elf32_Shdr *    elf32_getshdr(Elf_Scn *);
44 Elf32_Ehdr *    elf32_newehdr(Elf *);
45 Elf32_Phdr *    elf32_newphdr(Elf *, size_t);
46 Elf_Data *      elf32_xlatetof(Elf_Data *, const Elf_Data *, uint_t);
47 Elf_Data *      elf32_xlatetom(Elf_Data *, const Elf_Data *, uint_t);
51  * Elf64 Symbols
52  */
53 size_t          elf64_fsize(Elf_Type, size_t, uint_t);
54 Elf64_Ehdr *    elf64_getehdr(Elf *);
55 Elf64_Phdr *    elf64_getphdr(Elf *);
56 Elf64_Shdr *    elf64_getshdr(Elf_Scn *);
57 Elf64_Ehdr *    elf64_newehdr(Elf *);
58 Elf64_Phdr *    elf64_newphdr(Elf *, size_t);
59 Elf_Data *      elf64_xlatetof(Elf_Data *, const Elf_Data *, uint_t);
60 Elf_Data *      elf64_xlatetom(Elf_Data *, const Elf_Data *, uint_t);
64  * GElf Symbols
65  */
66 size_t          gelf_fsize(Elf *, Elf_Type, size_t, uint_t);
67 int             gelf_getclass(Elf *);
68 GElf_Ehdr *     gelf_getehdr(Elf *, GElf_Ehdr *);
69 int             gelf_update_ehdr(Elf *, GElf_Ehdr *);
70 ulong_t         gelf_newehdr(Elf *, int);
71 GElf_Phdr *     gelf_getphdr(Elf *, int, GElf_Phdr *);
72 int             gelf_update_phdr(Elf *, int, GElf_Phdr *);
73 ulong_t         gelf_newphdr(Elf *, size_t);
74 GElf_Shdr *     gelf_getshdr(Elf_Scn *,  GElf_Shdr *);
75 int             gelf_update_shdr(Elf_Scn *, GElf_Shdr *);
76 Elf_Data *      gelf_xlatetof(Elf *, Elf_Data *, const Elf_Data *, uint_t);
77 Elf_Data *      gelf_xlatetom(Elf *, Elf_Data *, const Elf_Data *, uint_t);
78 GElf_Sym *      gelf_getsym(Elf_Data *, int, GElf_Sym *);
79 int             gelf_update_sym(Elf_Data *, int, GElf_Sym *);
80 GElf_Syminfo *  gelf_getsyminfo(Elf_Data *, int, GElf_Syminfo *);
81 int             gelf_update_syminfo(Elf_Data *, int, GElf_Syminfo *);
82 GElf_Sym *      gelf_getsymshndx(Elf_Data *, Elf_Data *, int, GElf_Sym *,
83                     Elf32_Word *);
84 int             gelf_update_symshndx(Elf_Data *, Elf_Data *, int, GElf_Sym *,
85                     Elf32_Word);
86 GElf_Move *     gelf_getmove(Elf_Data *, int, GElf_Move *);
87 int             gelf_update_move(Elf_Data *, int, GElf_Move *);
88 GElf_Dyn *      gelf_getdyn(Elf_Data *, int, GElf_Dyn *);
89 int             gelf_update_dyn(Elf_Data *, int, GElf_Dyn *);
90 GElf_Rela *     gelf_getrela(Elf_Data *, int, GElf_Rela *);
91 int             gelf_update_rela(Elf_Data *, int, GElf_Rela *);
92 GElf_Rel *      gelf_getrel(Elf_Data *, int, GElf_Rel *);
93 int             gelf_update_rel(Elf_Data *, int, GElf_Rel *);
94 GElf_Cap *      gelf_getcap(Elf_Data *, int, GElf_Cap *);
95 int             gelf_update_cap(Elf_Data *, int, GElf_Cap *);
97 GElf_Xword      _gelf_getdyndtflags_1(Elf *);
100  * Class-Independent Elf Symbols
101  */
102 Elf *           elf_begin(int, Elf_Cmd, Elf *);
103 int             elf_cntl(Elf *, Elf_Cmd);
104 int             elf_end(Elf *);
105 const char *    elf_errmsg(int);
106 int             elf_errno(void);
107 void            elf_fill(int);
108 uint_t          elf_flagdata(Elf_Data *, Elf_Cmd, uint_t);
109 uint_t          elf_flagehdr(Elf *, Elf_Cmd,  uint_t);
110 uint_t          elf_flagelf(Elf *, Elf_Cmd,  uint_t);
111 uint_t          elf_flagphdr(Elf *, Elf_Cmd,  uint_t);
112 uint_t          elf_flagscn(Elf_Scn *, Elf_Cmd, uint_t);
113 uint_t          elf_flagshdr(Elf_Scn *, Elf_Cmd, uint_t);
114 Elf_Arhdr *     elf_getarhdr(Elf *);
115 Elf_Arsym *     elf_getarsym(Elf *, size_t *);
116 off_t           elf_getbase(Elf *);
117 Elf_Data *      elf_getdata(Elf_Scn *, Elf_Data *);
118 char *          elf_getident(Elf *, size_t *);
119 int             elf_getphnum(Elf *, size_t *);
120 int             elf_getshnum(Elf *, size_t *);
121 int             elf_getshstrndx(Elf *, size_t *);
122 Elf_Scn *       elf_getscn(Elf *elf, size_t);
123 ulong_t         elf_hash(const char *);
124 Elf_Kind        elf_kind(Elf *);
125 Elf *           elf_memory(char *, size_t);
126 size_t          elf_ndxscn(Elf_Scn *);
127 Elf_Data *      elf_newdata(Elf_Scn *);
128 Elf_Scn *       elf_newscn(Elf *);
129 Elf_Cmd         elf_next(Elf *);
130 Elf_Scn *       elf_nextscn(Elf *, Elf_Scn *);
131 size_t          _elf_outsync(int, char *, size_t, uint_t);
132 size_t          elf_rand(Elf *, size_t);
133 Elf_Data *      elf_rawdata(Elf_Scn *, Elf_Data *);
134 char *          elf_rawfile(Elf *, size_t *);
135 char *          elf_strptr(Elf *, size_t, size_t);
136 off_t           elf_update(Elf *, Elf_Cmd);
137 uint_t          elf_version(uint_t);
138 int             nlist(const char *, struct nlist *);
142  * Private Symbols
143  */
144 extern void             _elf_execfill(_elf_execfill_func_t *);
145 extern off_t            _elf_getarhdrbase(Elf *);
146 extern size_t           _elf_getarsymwordsize(Elf *);
147 extern size_t           _elf_getnextoff(Elf *);
148 Elf64_Off               _elf_getxoff(Elf_Data *);
149 int                     _elf_swap_wrimage(Elf *);
150 uint_t                  _elf_sys_encoding(void);
152 extern GElf_Xword       _gelf_getdyndtflags_1(Elf *);