Rev 3689 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3689 | Rev 3869 | ||
---|---|---|---|
Line 58... | Line 58... | ||
58 | : "%r3","%r9" |
58 | : "%r3","%r9" |
59 | ); |
59 | ); |
60 | */ |
60 | */ |
61 | } |
61 | } |
62 | 62 | ||
63 | typedef void (*fptr_t)(void); |
63 | typedef int (*fptr_t)(void); |
64 | 64 | ||
65 | int main(int argc, char *argv[]) |
65 | int main(int argc, char *argv[]) |
66 | { |
66 | { |
67 | void *a; |
67 | void *a; |
68 | void *s; |
68 | void *s; |
69 | fptr_t fun; |
69 | fptr_t fun; |
- | 70 | int i; |
|
70 | 71 | ||
71 | char *lib_name; |
72 | char *lib_name; |
72 | char *sym_name; |
73 | char *sym_name; |
73 | 74 | ||
74 | // kputint(-1); |
75 | // kputint(-1); |
Line 85... | Line 86... | ||
85 | printf("failed to dlopen() library '%s'\n", lib_name); |
86 | printf("failed to dlopen() library '%s'\n", lib_name); |
86 | } |
87 | } |
87 | 88 | ||
88 | printf("Run dynamically-resolved function '%s'...\n", sym_name); |
89 | printf("Run dynamically-resolved function '%s'...\n", sym_name); |
89 | fun = (fptr_t) s; |
90 | fun = (fptr_t) s; |
90 | (*fun)(); |
91 | i = (*fun)(); |
91 | printf("OK\n"); |
92 | printf("Done. (returned 0x%x)\n", i); |
92 | 93 | ||
93 | return 0; |
94 | return 0; |
94 | } |
95 | } |
95 | 96 | ||
96 | /** @} |
97 | /** @} |