diff options
author | Chris Johns <chrisj@rtems.org> | 2014-09-08 19:29:41 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2014-09-08 19:29:41 +1000 |
commit | 305cdd08bb5fd2584470e3ca1082f6956953e7e2 (patch) | |
tree | d9b0115c805747fa8bbd0e49eb807f0e587994ba /rtld-base.ini | |
parent | 46716847be4bb949e7c795b43a9d3884e67b05fa (diff) |
rtems-tld: Generate arg and ret code in the wrapper.
Diffstat (limited to 'rtld-base.ini')
-rw-r--r-- | rtld-base.ini | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/rtld-base.ini b/rtld-base.ini index 3293ea8..b15f4cd 100644 --- a/rtld-base.ini +++ b/rtld-base.ini @@ -14,15 +14,14 @@ generator = printf-generator ; A printf generator prints to stdout the trace functions. ; [printf-generator] -map-sym-prefix = rtld_pg__ headers = printf-generator-headers -arg-trace = "rtld_pg_print_arg(@ARG_NUM@, @ARG_TYPE@, @ARG_SIZE@, &@ARG_LABEL@);" -ret-trace = "rtld_pg_print_ret(@RET_TYPE@, @RETG_SIZE@, &@RET_LABEL@);" +arg-trace = "rtld_pg_print_arg(@ARG_NUM@, @ARG_TYPE@, @ARG_SIZE@, (void*) &@ARG_LABEL@);" +ret-trace = "rtld_pg_print_ret(@RET_TYPE@, @RET_SIZE@, (void*) &@RET_LABEL@);" code = <<<CODE -static inline void rtld_pg_print_arg(int arg_num, - const char* arg_type, - int arg_size, - void* arg) +static inline void rtld_pg_print_arg(int arg_num, + const char* arg_type, + int arg_size, + void* arg) { const char* p = arg; int i; @@ -30,6 +29,16 @@ 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_ret(const char* ret_type, + int ret_size, + void* ret) +{ + const char* p = ret; + int i; + printf (" rt] %s(%d) = ", ret_type, ret_size); + for (i = 0; i < ret_size; ++i, ++p) printf ("%02x", (unsigned int) *p); + printf ("\n"); +} CODE [printf-generator-headers] |