summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2014-09-10 13:10:45 +1000
committerChris Johns <chrisj@rtems.org>2014-09-10 13:10:45 +1000
commit07e8c5eacb30efd33f14811573c02c5e7ee78c41 (patch)
treeaedb2db57a8a53ac4815072451ba62cbf82e5340
parent16eee5f6407ec55347115aa4fd10205f15638369 (diff)
rtems-tld: Add a printk generator.
-rw-r--r--rtld-base.ini73
1 files changed, 58 insertions, 15 deletions
diff --git a/rtld-base.ini b/rtld-base.ini
index badb40d..1927dcc 100644
--- a/rtld-base.ini
+++ b/rtld-base.ini
@@ -15,20 +15,20 @@ generator = printf-generator
;
[printf-generator]
headers = printf-generator-headers
-entry-trace = "rtld_pg_print_entry(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
-arg-trace = "rtld_pg_print_arg(@ARG_NUM@, @ARG_TYPE@, @ARG_SIZE@, (void*) &@ARG_LABEL@);"
-exit-trace = "rtld_pg_print_exit(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
-ret-trace = "rtld_pg_print_ret(@RET_TYPE@, @RET_SIZE@, (void*) &@RET_LABEL@);"
+entry-trace = "rtld_pg_printf_entry(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
+arg-trace = "rtld_pg_printf_arg(@ARG_NUM@, @ARG_TYPE@, @ARG_SIZE@, (void*) &@ARG_LABEL@);"
+exit-trace = "rtld_pg_printf_exit(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
+ret-trace = "rtld_pg_printf_ret(@RET_TYPE@, @RET_SIZE@, (void*) &@RET_LABEL@);"
code = <<<CODE
-static inline void rtld_pg_print_entry(const char* func_name,
- void* func_addr)
+static inline void rtld_pg_printf_entry(const char* func_name,
+ void* func_addr)
{
printf (" >> %s (0x%08x)\n", func_name, func_addr);
}
-static inline void rtld_pg_print_arg(int arg_num,
- const char* arg_type,
- int arg_size,
- void* arg)
+static inline void rtld_pg_printf_arg(int arg_num,
+ const char* arg_type,
+ int arg_size,
+ void* arg)
{
const unsigned char* p = arg;
int i;
@@ -36,14 +36,14 @@ static inline void rtld_pg_print_arg(int arg_num,
for (i = 0; i < arg_size; ++i, ++p) printf ("%02x", (unsigned int) *p);
printf ("\n");
}
-static inline void rtld_pg_print_exit(const char* func_name,
- void* func_addr)
+static inline void rtld_pg_printf_exit(const char* func_name,
+ void* func_addr)
{
printf (" << %s (0x%08x)\n", func_name, func_addr);
}
-static inline void rtld_pg_print_ret(const char* ret_type,
- int ret_size,
- void* ret)
+static inline void rtld_pg_printf_ret(const char* ret_type,
+ int ret_size,
+ void* ret)
{
const unsigned char* p = ret;
int i;
@@ -55,3 +55,46 @@ CODE
[printf-generator-headers]
header = "#include <stdio.h>"
+
+[printk-generator]
+headers = printk-generator-headers
+entry-trace = "rtld_pg_printk_entry(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
+arg-trace = "rtld_pg_printk_arg(@ARG_NUM@, @ARG_TYPE@, @ARG_SIZE@, (void*) &@ARG_LABEL@);"
+exit-trace = "rtld_pg_printk_exit(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
+ret-trace = "rtld_pg_printk_ret(@RET_TYPE@, @RET_SIZE@, (void*) &@RET_LABEL@);"
+code = <<<CODE
+static inline void rtld_pg_printk_entry(const char* func_name,
+ void* func_addr)
+{
+ printk (" >> %s (0x%08x)\n", func_name, func_addr);
+}
+static inline void rtld_pg_printk_arg(int arg_num,
+ const char* arg_type,
+ int arg_size,
+ void* arg)
+{
+ const unsigned char* p = arg;
+ int i;
+ printk (" %2d] %s(%d) = ", arg_num, arg_type, arg_size);
+ for (i = 0; i < arg_size; ++i, ++p) printk ("%02x", (unsigned int) *p);
+ printk ("\n");
+}
+static inline void rtld_pg_printk_exit(const char* func_name,
+ void* func_addr)
+{
+ printk (" << %s (0x%08x)\n", func_name, func_addr);
+}
+static inline void rtld_pg_printk_ret(const char* ret_type,
+ int ret_size,
+ void* ret)
+{
+ const unsigned char* p = ret;
+ int i;
+ printk (" rt] %s(%d) = ", ret_type, ret_size);
+ for (i = 0; i < ret_size; ++i, ++p) printk ("%02x", (unsigned int) *p);
+ printk ("\n");
+}
+CODE
+
+[printk-generator-headers]
+header = "#include <stdio.h>"