summaryrefslogtreecommitdiffstats
path: root/runtime/runtime.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/runtime.h')
-rw-r--r--runtime/runtime.h13
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();
}