void find_rel( int *plt, int *offset, int fd, const char *string, Elf32_Ehdr *ehdr, Elf32_Shdr *shdr, const char *sh_function ) { Elf32_Shdr *shdrp = shdr; int sym; int i; sym = get_sym_number(fd, ehdr, shdr, sh_function); if (sym < 0) { *plt = -1; *offset = -1; return; } for (i = 0; i < ehdr->e_shnum; i++) { if (!strcmp(&string[shdrp->sh_name], ".rel.plt")) { do_rel(plt, offset, fd, shdrp, sym); return; } ++shdrp; } }
static void task_waiter(rtems_task_argument arg) { while (true) { rtems_bdbuf_buffer *bd = NULL; suspend(RTEMS_SELF); bd = do_get('W'); do_rel('W', bd); } rtems_task_delete(RTEMS_SELF); }