--- 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 <reachv...@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.che...@gmail.com> > wrote: > >> On Wed, May 30, 2018 at 6:33 PM, Vidushi Vashishth <reachv...@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.hu...@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.hu...@embedded-brains.de >> >> PGP : Public key available on request. >> >> >> >> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. >> >> >> >> _______________________________________________ >> >> devel mailing list >> >> devel@rtems.org >> >> http://lists.rtems.org/mailman/listinfo/devel >> > >> > >> > >> > _______________________________________________ >> > devel mailing list >> > devel@rtems.org >> > http://lists.rtems.org/mailman/listinfo/devel >> > >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel