From 07e8c5eacb30efd33f14811573c02c5e7ee78c41 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Wed, 10 Sep 2014 13:10:45 +1000 Subject: rtems-tld: Add a printk generator. --- rtld-base.ini | 73 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file 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 = <<> %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 " + +[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 = <<> %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 " -- cgit v1.2.3