477,12 → 477,6 |
__address symaddr; |
char *symbol; |
__native (*f)(void); |
#ifdef ia64 |
struct { |
__native f; |
__native gp; |
}fptr; |
#endif |
|
symaddr = get_symbol_addr(argv->buffer); |
if (!symaddr) |
493,13 → 487,7 |
} else { |
symbol = get_symtab_entry(symaddr); |
printf("Calling f(): %.*p: %s\n", sizeof(__address) * 2, symaddr, symbol); |
#ifdef ia64 |
fptr.f = symaddr; |
fptr.gp = ((__native *)cmd_call2)[1]; |
f = (__native (*)(void)) &fptr; |
#else |
f = (__native (*)(void)) symaddr; |
#endif |
printf("Result: %#zx\n", f()); |
} |
|
513,12 → 501,6 |
char *symbol; |
__native (*f)(__native,...); |
__native arg1 = argv[1].intval; |
#ifdef ia64 |
struct { |
__native f; |
__native gp; |
}fptr; |
#endif |
|
symaddr = get_symbol_addr(argv->buffer); |
if (!symaddr) |
528,15 → 510,8 |
printf("Duplicate symbol, be more specific.\n"); |
} else { |
symbol = get_symtab_entry(symaddr); |
|
printf("Calling f(0x%zX): %.*p: %s\n", arg1, sizeof(__address) * 2, symaddr, symbol); |
#ifdef ia64 |
fptr.f = symaddr; |
fptr.gp = ((__native *)cmd_call2)[1]; |
f = (__native (*)(__native,...)) &fptr; |
#else |
f = (__native (*)(__native,...)) symaddr; |
#endif |
printf("Result: %#zx\n", f(arg1)); |
} |
|
551,12 → 526,6 |
__native (*f)(__native,__native,...); |
__native arg1 = argv[1].intval; |
__native arg2 = argv[2].intval; |
#ifdef ia64 |
struct { |
__native f; |
__native gp; |
}fptr; |
#endif |
|
symaddr = get_symbol_addr(argv->buffer); |
if (!symaddr) |
568,13 → 537,7 |
symbol = get_symtab_entry(symaddr); |
printf("Calling f(0x%zx,0x%zx): %.*p: %s\n", |
arg1, arg2, sizeof(__address) * 2, symaddr, symbol); |
#ifdef ia64 |
fptr.f = symaddr; |
fptr.gp = ((__native *)cmd_call2)[1]; |
f = (__native (*)(__native,__native,...)) &fptr; |
#else |
f = (__native (*)(__native,__native,...)) symaddr; |
#endif |
printf("Result: %#zx\n", f(arg1, arg2)); |
} |
|
590,12 → 553,6 |
__native arg1 = argv[1].intval; |
__native arg2 = argv[2].intval; |
__native arg3 = argv[3].intval; |
#ifdef ia64 |
struct { |
__native f; |
__native gp; |
}fptr; |
#endif |
|
symaddr = get_symbol_addr(argv->buffer); |
if (!symaddr) |
607,13 → 564,7 |
symbol = get_symtab_entry(symaddr); |
printf("Calling f(0x%zx,0x%zx, 0x%zx): %.*p: %s\n", |
arg1, arg2, arg3, sizeof(__address) * 2, symaddr, symbol); |
#ifdef ia64 |
fptr.f = symaddr; |
fptr.gp = ((__native *)cmd_call2)[1]; |
f = (__native (*)(__native,__native,__native,...)) &fptr; |
#else |
f = (__native (*)(__native,__native,__native,...)) symaddr; |
#endif |
printf("Result: %#zx\n", f(arg1, arg2, arg3)); |
} |
|