track function symbols
This commit is contained in:
parent
5a0baa09f2
commit
7b58e65f24
4 changed files with 22 additions and 15 deletions
|
@ -47,7 +47,7 @@ grub_register_exported_symbols (void)
|
|||
EOF
|
||||
|
||||
cat <<EOF
|
||||
struct symtab { const char *name; void *addr; };
|
||||
struct symtab { const char *name; void *addr; int isfunc; };
|
||||
struct symtab *p;
|
||||
static struct symtab tab[] =
|
||||
{
|
||||
|
@ -56,16 +56,16 @@ EOF
|
|||
(while read LINE; do echo $LINE; done) \
|
||||
| grep -v '^#' \
|
||||
| sed -n \
|
||||
-e '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/ {"\1", \1},/;p;}' \
|
||||
-e '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/ {"\1", \&\1},/;p;}' \
|
||||
-e '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/ {"\1", \1, 1},/;p;}' \
|
||||
-e '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/ {"\1", \&\1, 0},/;p;}' \
|
||||
| sort -u
|
||||
|
||||
cat <<EOF
|
||||
{0, 0}
|
||||
{0, 0, 0}
|
||||
};
|
||||
|
||||
COMPILE_TIME_ASSERT (sizeof (tab) > sizeof (tab[0]));
|
||||
for (p = tab; p->name; p++)
|
||||
grub_dl_register_symbol (p->name, p->addr, 0);
|
||||
grub_dl_register_symbol (p->name, p->addr, p->isfunc, 0);
|
||||
}
|
||||
EOF
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue