linker: New sources to manage the ELF program header table.
This patch introduces two new source files containing a set of functions to manage the program header table in an ELF binary, including the ability to load PT_LOAD segments, and apply PT_GNU_RELRO protection. Note: the files are not used currently, this will appear in a series of future patches that will gradually modify linker.c to use the phdr_table_xxx functions properly. Change-Id: Ia3d4c1ff5fc3e265d8258b64b492f4e643f51bdc
This commit is contained in:
@@ -37,7 +37,23 @@
|
||||
#undef PAGE_MASK
|
||||
#undef PAGE_SIZE
|
||||
#define PAGE_SIZE 4096
|
||||
#define PAGE_MASK 4095
|
||||
#define PAGE_MASK (PAGE_SIZE-1)
|
||||
|
||||
/* Convenience macros to make page address/offset computations more explicit */
|
||||
|
||||
/* Returns the address of the page starting at address 'x' */
|
||||
#define PAGE_START(x) ((x) & ~PAGE_MASK)
|
||||
|
||||
/* Returns the offset of address 'x' in its memory page, i.e. this is the
|
||||
* same than 'x' - PAGE_START(x) */
|
||||
#define PAGE_OFFSET(x) ((x) & PAGE_MASK)
|
||||
|
||||
/* Returns the address of the next page after address 'x', unless 'x' is
|
||||
* itself at the start of a page. Equivalent to:
|
||||
*
|
||||
* (x == PAGE_START(x)) ? x : PAGE_START(x)+PAGE_SIZE
|
||||
*/
|
||||
#define PAGE_END(x) PAGE_START((x) + (PAGE_SIZE-1))
|
||||
|
||||
void debugger_init();
|
||||
const char *addr_to_name(unsigned addr);
|
||||
|
Reference in New Issue
Block a user