1 /* $Id: addLibrary.h,v 1.2 2002/03/22 21:55:17 chadd Exp $ */
\r
3 #if defined(BPATCH_LIBRARY) && defined(sparc_sun_solaris2_4)
\r
13 #include <sys/link.h>
\r
15 typedef struct _Elf_element{
\r
16 Elf32_Shdr *sec_hdr;
\r
28 Elf_element *newElfFileSec;
\r
29 Elf32_Phdr *newElfFilePhdr;
\r
30 Elf32_Ehdr *newElfFileEhdr;
\r
31 Elf *oldElf, *newElf;
\r
33 Elf_Data *strTabData;
\r
35 int numberExtraSegs;
\r
37 unsigned int newPhdrAddr;
\r
38 unsigned int newPhdrOffset;
\r
40 unsigned int phdrSize;
\r
43 void createNewElf();
\r
44 int findSection(char *name);
\r
45 void updateDynamic(Elf_Data*newData,unsigned int hashOff, unsigned int dynsymOff, unsigned int dynstrOff);
\r
46 void updateProgramHeaders(Elf32_Phdr *phdr, unsigned int dynstrOffset, Elf32_Shdr**newSegs);
\r
47 void addStr(Elf_Data* newData, Elf_Data* oldData, char *str);
\r
48 int writeNewElf(char* filename, char* libname);
\r
50 int findNewPhdrAddr();
\r
51 int findNewPhdrOffset();
\r
53 unsigned int _pageSize, realPageSize;
\r
55 int driver(Elf *elf, char *newfilename, char *libname);
\r