2 * SPDX-License-Identifier: LGPL-2.1-or-later
4 * Copyright (C) 2015 Antoine Busque <abusque@efficios.com>
7 #ifndef _LTTNG_UST_ELF_H
8 #define _LTTNG_UST_ELF_H
14 struct lttng_ust_elf_ehdr
{
30 struct lttng_ust_elf_phdr
{
39 struct lttng_ust_elf_shdr
{
48 uint64_t sh_addralign
;
52 struct lttng_ust_elf_nhdr
{
58 struct lttng_ust_elf
{
59 /* Offset in bytes to start of section names string table. */
60 off_t section_names_offset
;
61 /* Size in bytes of section names string table. */
62 size_t section_names_size
;
65 struct lttng_ust_elf_ehdr
*ehdr
;
70 struct lttng_ust_elf
*lttng_ust_elf_create(const char *path
);
71 void lttng_ust_elf_destroy(struct lttng_ust_elf
*elf
);
72 uint8_t lttng_ust_elf_is_pic(struct lttng_ust_elf
*elf
);
73 int lttng_ust_elf_get_memsz(struct lttng_ust_elf
*elf
, uint64_t *memsz
);
74 int lttng_ust_elf_get_build_id(struct lttng_ust_elf
*elf
, uint8_t **build_id
,
75 size_t *length
, int *found
);
76 int lttng_ust_elf_get_debug_link(struct lttng_ust_elf
*elf
, char **filename
,
77 uint32_t *crc
, int *found
);
79 #endif /* _LTTNG_UST_ELF_H */