diff options
author | askeshav <askeshav> | 2005-10-28 22:49:28 +0000 |
---|---|---|
committer | askeshav <askeshav> | 2005-10-28 22:49:28 +0000 |
commit | 1c9db4fdf66fe88a731319b99942872fa567d742 (patch) | |
tree | 33a86507a7fcf9a9c771cf9a1801c8f81c566cf8 /runtime/runtime.h | |
parent | 063b69fe3f1109ec81b5e4c1f1333a442ccb3734 (diff) | |
download | systemtap-steved-1c9db4fdf66fe88a731319b99942872fa567d742.tar.gz systemtap-steved-1c9db4fdf66fe88a731319b99942872fa567d742.tar.xz systemtap-steved-1c9db4fdf66fe88a731319b99942872fa567d742.zip |
IA64 Runtime support patches. With this in place
Systemtap should now be able to build on Ia64.
Includes supports for - function probes, return probes,
function parameter access and dumping stack backtrace.
Added by Anil S Keshavamurthy <Anil.s.keshavamurthy@intel.com>
Diffstat (limited to 'runtime/runtime.h')
-rw-r--r-- | runtime/runtime.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/runtime/runtime.h b/runtime/runtime.h index e077c29a..3bc6671b 100644 --- a/runtime/runtime.h +++ b/runtime/runtime.h @@ -1,5 +1,6 @@ /* main header file * Copyright (C) 2005 Red Hat Inc. + * Copyright (C) 2005 Intel Corporation. * * This file is part of systemtap, and is free software. You can * redistribute it and/or modify it under the terms of the GNU General @@ -125,6 +126,9 @@ static const char * _stp_kallsyms_lookup_tabled (unsigned long addr, } #endif +#ifdef __ia64__ + struct fnptr func_entry, *pfunc_entry; +#endif int init_module (void) { _stp_kta = (int (*)(unsigned long))kallsyms_lookup_name("__kernel_text_address"); @@ -134,8 +138,17 @@ int init_module (void) _stp_kallsyms_lookup = & _stp_kallsyms_lookup_tabled; else #endif +#ifdef __ia64__ + { + func_entry.gp = ((struct fnptr *) kallsyms_lookup_name)->gp; + func_entry.ip = kallsyms_lookup_name("kallsyms_lookup"); + _stp_kallsyms_lookup = (const char * (*)(unsigned long,unsigned long *,unsigned long *,char **,char *))&func_entry; + + } +#else _stp_kallsyms_lookup = (const char * (*)(unsigned long,unsigned long *,unsigned long *,char **,char *)) kallsyms_lookup_name("kallsyms_lookup"); +#endif return _stp_transport_init(); } |