ft_nm/inc/ft_nm.h

79 lines
1.9 KiB
C
Raw Normal View History

2019-05-10 18:29:21 +03:00
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_nm.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gtertysh <gtertysh@student.unit.ua> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/05/06 22:37:16 by foton #+# #+# */
2019-07-20 15:42:21 +03:00
/* Updated: 2019/07/20 15:38:47 by gtertysh ### ########.fr */
2019-05-10 18:29:21 +03:00
/* */
/* ************************************************************************** */
#ifndef FT_NM_H
2019-07-20 15:42:21 +03:00
#define FT_NM_H
2019-05-10 18:29:21 +03:00
2019-07-20 15:42:21 +03:00
#include <mach-o/loader.h>
#include <mach-o/nlist.h>
2019-07-13 19:35:42 +03:00
typedef struct load_command t_load_command;
typedef struct mach_header_64 t_mach_header_64;
typedef struct symtab_command t_symtab_command;
typedef struct segment_command_64 t_segment_command_64;
typedef struct nlist_64 t_nlist_64;
typedef struct section_64 t_section_64;
2019-07-20 15:42:21 +03:00
typedef struct s_nm_file
{
void *file;
uint32_t size;
int fd;
} t_nm_file;
typedef struct s_nm_mach_64
{
t_mach_header_64 *header;
t_load_command *commands;
t_symtab_command *symbol_table_command;
t_nlist_64 *symbol_table;
char *string_table;
} t_nm_mach_64;
void init_file
(
t_nm_file *file
);
void open_file
(
const char *filename,
t_nm_file *file
);
void close_file
(
t_nm_file *file
);
void macho64
(
t_nm_file *file
);
t_symtab_command *find_symbol_table_command
(
t_load_command *lc,
uint32_t count
);
void print_addr
(
void *addr
);
2019-05-10 18:29:21 +03:00
#endif