[PATCH] Updating trace buffer configuration

Vidushi Vashishth reachvidu at gmail.com
Wed May 30 14:41:33 UTC 2018


---
 linkers/rtld-trace-buffer.ini | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/linkers/rtld-trace-buffer.ini b/linkers/rtld-trace-buffer.ini
index ee68d55..c17f2f1 100644
--- a/linkers/rtld-trace-buffer.ini
+++ b/linkers/rtld-trace-buffer.ini
@@ -27,6 +27,7 @@ header = "#include <stdint.h>"
 header = "#include <rtems.h>"
 header = "#include <rtems/rtems/tasksimpl.h>"
 header = "#include <rtems/score/threadimpl.h>"
+header = "#include <rtems/score/threadq.h>"

 [trace-buffer-tracers]
 code = <<<CODE
@@ -85,7 +86,7 @@ static inline uint32_t __rtld_tbg_executing_id(void)
 static inline uint32_t __rtld_tbg_executing_status(void)
 {
   /* @fixme Add the current CPU for SMP. */
-  struct _Thread_Control* tc = _Thread_Get_executing();
+  Thread_Control* tc = _Thread_Get_executing();
   return (_Thread_Get_priority(tc) << 8) | tc->Real_priority.priority;
 }

-- 
2.7.4


On Wed, May 30, 2018 at 7:24 PM, Vidushi Vashishth <reachvidu at gmail.com>
wrote:

> >Based on this error, I believe you need to drop the "struct", given
> >that Thread_Control is the typedef for "struct _Thread_Control".
>
> Oh yes you are right. It was originally written with the "struct" so I
> somehow overlooked it. I tired it this way. It works thanks.
>
> >Minor, but in most other places in RTEMS, I've seen pointers declared
> >with the asterisk on the variable not on the type ("int *ptr;" instead
> >of "int* ptr;").
>
> The trace linker code was last updated couple of years ago and this isn't
> the convention used in it. I don't know if the convention has changed but I
> stuck with how it was done in the configuration files of the trace linker.
>
> On Wed, May 30, 2018 at 7:05 PM, Amaan Cheval <amaan.cheval at gmail.com>
> wrote:
>
>> On Wed, May 30, 2018 at 6:33 PM, Vidushi Vashishth <reachvidu at gmail.com>
>> wrote:
>> > Could you please change the
>> >
>> > struct _Thread_Control
>> >
>> > to
>> >
>> > Thread_Control
>> >
>> > and check if it still works.
>> >
>> > In RTEMS, we use typedefs for structures in general.
>> >
>> > I tried to include the threadq.h header file so that I could use the
>> > variable Thread_Control instead of _Thread_Control. This header file
>> has the
>> > following typedef statement:
>> >
>> > typedef struct _Thread_Control Thread_Control;
>> >
>> > However this leads to the following error:
>> >
>> > fileio-wrapper.c:389:31: warning: initialization from incompatible
>> pointer
>> > type [-Wincompatible-pointer-types]
>> >    struct Thread_Control* tc = _Thread_Get_executing();
>> >                                ^~~~~~~~~~~~~~~~~~~~~
>>
>> Based on this error, I believe you need to drop the "struct", given
>> that Thread_Control is the typedef for "struct _Thread_Control".
>>
>> Minor, but in most other places in RTEMS, I've seen pointers declared
>> with the asterisk on the variable not on the type ("int *ptr;" instead
>> of "int* ptr;").
>>
>> > fileio-wrapper.c:390:32: warning: passing argument 1 of
>> > '_Thread_Get_priority' from incompatible pointer type
>> > [-Wincompatible-pointer-types]
>> >    return (_Thread_Get_priority(tc) << 8) | tc->Real_priority.priority;
>> >
>> > I had tried this earlier too. So it doesn't work.
>> >
>> >
>> >
>> > On Wed, May 30, 2018 at 10:59 AM, Sebastian Huber
>> > <sebastian.huber at embedded-brains.de> wrote:
>> >>
>> >>
>> >>
>> >> On 29/05/18 17:36, Vidushi Vashishth wrote:
>> >>>
>> >>> ---
>> >>>   linkers/rtld-trace-buffer.ini | 5 +++--
>> >>>   1 file changed, 3 insertions(+), 2 deletions(-)
>> >>>
>> >>> diff --git a/linkers/rtld-trace-buffer.ini
>> >>> b/linkers/rtld-trace-buffer.ini
>> >>> index af9fc31..ee68d55 100644
>> >>> --- a/linkers/rtld-trace-buffer.ini
>> >>> +++ b/linkers/rtld-trace-buffer.ini
>> >>> @@ -26,6 +26,7 @@ buffer-local = " uint8_t* in;"
>> >>>   header = "#include <stdint.h>"
>> >>>   header = "#include <rtems.h>"
>> >>>   header = "#include <rtems/rtems/tasksimpl.h>"
>> >>> +header = "#include <rtems/score/threadimpl.h>"
>> >>>     [trace-buffer-tracers]
>> >>>   code = <<<CODE
>> >>> @@ -84,8 +85,8 @@ static inline uint32_t __rtld_tbg_executing_id(void)
>> >>>   static inline uint32_t __rtld_tbg_executing_status(void)
>> >>>   {
>> >>>     /* @fixme Add the current CPU for SMP. */
>> >>> -  struct Thread_Control* tc = _Thread_Get_executing();
>> >>
>> >>
>> >> Could you please change the
>> >>
>> >> struct _Thread_Control
>> >>
>> >> to
>> >>
>> >> Thread_Control
>> >>
>> >> and check if it still works.
>> >>
>> >> In RTEMS, we use typedefs for structures in general.
>> >>
>> >>> -  return (tc->current_priority << 8) | tc->real_priority;
>> >>> +  struct _Thread_Control* tc = _Thread_Get_executing();
>> >>> +  return (_Thread_Get_priority(tc) << 8) |
>> tc->Real_priority.priority;
>> >>>   }
>> >>>     static inline uint32_t __rtld_tbg_executing_state(void)
>> >>
>> >>
>> >> --
>> >> Sebastian Huber, embedded brains GmbH
>> >>
>> >> Address : Dornierstr. 4, D-82178 Puchheim, Germany
>> >> Phone   : +49 89 189 47 41-16
>> >> Fax     : +49 89 189 47 41-09
>> >> E-Mail  : sebastian.huber at embedded-brains.de
>> >> PGP     : Public key available on request.
>> >>
>> >> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>> >>
>> >> _______________________________________________
>> >> devel mailing list
>> >> devel at rtems.org
>> >> http://lists.rtems.org/mailman/listinfo/devel
>> >
>> >
>> >
>> > _______________________________________________
>> > devel mailing list
>> > devel at rtems.org
>> > http://lists.rtems.org/mailman/listinfo/devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20180530/b7ec1a02/attachment-0002.html>


More information about the devel mailing list