Android soinfo 结构体


#define SOINFO_NAME_LEN 128
struct link_map
{
	uintptr_t l_addr;
	char * l_name;
	uintptr_t l_ld;
	struct link_map * l_next;
	struct link_map * l_prev;
};
typedef struct soinfo soinfo;
struct soinfo
{
	const char name[SOINFO_NAME_LEN];
	Elf32_Phdr *phdr;
	int phnum;
	unsigned entry;
	unsigned base;
	unsigned size;

	unsigned *dynamic;

	unsigned wrprotect_start;
	unsigned wrprotect_end;

	soinfo *next;
	unsigned flags;

	const char *strtab;
	Elf32_Sym *symtab;
	unsigned strsz;     //添加strsz字段,便于操作

	unsigned nbucket;
	unsigned nchain;
	unsigned *bucket;
	unsigned *chain;

	unsigned *plt_got;

	Elf32_Rel *plt_rel;
	unsigned plt_rel_count;

	Elf32_Rel *rel;
	unsigned rel_count;

	unsigned *preinit_array;
	unsigned preinit_array_count;

	unsigned *init_array;
	unsigned init_array_count;
	unsigned *fini_array;
	unsigned fini_array_count;

	void(*init_func)(void);
	void(*fini_func)(void);

#ifdef ANDROID_ARM_LINKER
	unsigned *ARM_exidx;
	unsigned ARM_exidx_count;
#endif
	unsigned refcount;
	struct link_map linkmap;
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值