Changeset 7168ab3 in rtems-tools


Ignore:
Timestamp:
Sep 10, 2014, 3:10:45 AM (5 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, master
Children:
e0b8975
Parents:
5afb2b8
Message:

rtems-tld: Add a printk generator.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • linkers/rtld-base.ini

    r5afb2b8 r7168ab3  
    1616[printf-generator]
    1717headers = printf-generator-headers
    18 entry-trace = "rtld_pg_print_entry(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
    19 arg-trace = "rtld_pg_print_arg(@ARG_NUM@, @ARG_TYPE@, @ARG_SIZE@, (void*) &@ARG_LABEL@);"
    20 exit-trace = "rtld_pg_print_exit(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
    21 ret-trace = "rtld_pg_print_ret(@RET_TYPE@, @RET_SIZE@, (void*) &@RET_LABEL@);"
     18entry-trace = "rtld_pg_printf_entry(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
     19arg-trace = "rtld_pg_printf_arg(@ARG_NUM@, @ARG_TYPE@, @ARG_SIZE@, (void*) &@ARG_LABEL@);"
     20exit-trace = "rtld_pg_printf_exit(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
     21ret-trace = "rtld_pg_printf_ret(@RET_TYPE@, @RET_SIZE@, (void*) &@RET_LABEL@);"
    2222code = <<<CODE
    23 static inline void rtld_pg_print_entry(const char* func_name,
    24                                        void*       func_addr)
     23static inline void rtld_pg_printf_entry(const char* func_name,
     24                                        void*       func_addr)
    2525{
    2626  printf (" >> %s (0x%08x)\n", func_name, func_addr);
    2727}
    28 static inline void rtld_pg_print_arg(int         arg_num,
    29                                      const char* arg_type,
    30                                      int         arg_size,
    31                                      void*       arg)
     28static inline void rtld_pg_printf_arg(int         arg_num,
     29                                      const char* arg_type,
     30                                      int         arg_size,
     31                                      void*       arg)
    3232{
    3333  const unsigned char* p = arg;
     
    3737  printf ("\n");
    3838}
    39 static inline void rtld_pg_print_exit(const char* func_name,
    40                                       void*       func_addr)
     39static inline void rtld_pg_printf_exit(const char* func_name,
     40                                       void*       func_addr)
    4141{
    4242  printf (" << %s (0x%08x)\n", func_name, func_addr);
    4343}
    44 static inline void rtld_pg_print_ret(const char* ret_type,
    45                                      int         ret_size,
    46                                      void*       ret)
     44static inline void rtld_pg_printf_ret(const char* ret_type,
     45                                      int         ret_size,
     46                                      void*       ret)
    4747{
    4848  const unsigned char* p = ret;
     
    5656[printf-generator-headers]
    5757header = "#include <stdio.h>"
     58
     59[printk-generator]
     60headers = printk-generator-headers
     61entry-trace = "rtld_pg_printk_entry(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
     62arg-trace = "rtld_pg_printk_arg(@ARG_NUM@, @ARG_TYPE@, @ARG_SIZE@, (void*) &@ARG_LABEL@);"
     63exit-trace = "rtld_pg_printk_exit(@FUNC_NAME@, (void*) &@FUNC_LABEL@);"
     64ret-trace = "rtld_pg_printk_ret(@RET_TYPE@, @RET_SIZE@, (void*) &@RET_LABEL@);"
     65code = <<<CODE
     66static inline void rtld_pg_printk_entry(const char* func_name,
     67                                        void*       func_addr)
     68{
     69  printk (" >> %s (0x%08x)\n", func_name, func_addr);
     70}
     71static inline void rtld_pg_printk_arg(int         arg_num,
     72                                     const char* arg_type,
     73                                     int         arg_size,
     74                                     void*       arg)
     75{
     76  const unsigned char* p = arg;
     77  int   i;
     78  printk (" %2d] %s(%d) = ", arg_num, arg_type, arg_size);
     79  for (i = 0; i < arg_size; ++i, ++p) printk ("%02x", (unsigned int) *p);
     80  printk ("\n");
     81}
     82static inline void rtld_pg_printk_exit(const char* func_name,
     83                                       void*       func_addr)
     84{
     85  printk (" << %s (0x%08x)\n", func_name, func_addr);
     86}
     87static inline void rtld_pg_printk_ret(const char* ret_type,
     88                                      int         ret_size,
     89                                      void*       ret)
     90{
     91  const unsigned char* p = ret;
     92  int   i;
     93  printk (" rt] %s(%d) = ", ret_type, ret_size);
     94  for (i = 0; i < ret_size; ++i, ++p) printk ("%02x", (unsigned int) *p);
     95  printk ("\n");
     96}
     97CODE
     98
     99[printk-generator-headers]
     100header = "#include <stdio.h>"
Note: See TracChangeset for help on using the changeset viewer.