summaryrefslogtreecommitdiff
path: root/rts/linker/elf_util.c
blob: fe7e2c35a43a60028c63bf21d4ed4af187265106 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "Rts.h"
#include "linker/elf_util.h"

#if defined(OBJFORMAT_ELF)

ElfSymbolTable *
findSymbolTable(ObjectCode * oc, unsigned symbolTableIndex) {
    for(ElfSymbolTable * t=oc->info->symbolTables; t != NULL; t = t->next)
        if(t->index == symbolTableIndex)
            return t;
    return NULL;
}

ElfSymbol *
findSymbol(ObjectCode * oc, unsigned symbolTableIndex,
           unsigned long symbolIndex) {
    ElfSymbolTable * t = findSymbolTable(oc, symbolTableIndex);
    if(NULL != t && symbolIndex < t->n_symbols) {
        return &t->symbols[symbolIndex];
    }
    return NULL;
}

#endif