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