Experimental Physics and Industrial Control System
Ok, I would now try to replace the "internal" direct accesses with API accesses (advice of the RTEMS developers).
Current_priority can be read with: rtems_task_set_priority
The real_priority can be read with a pthread call : pthread_getschedparam
I guess that the BSP has to be generated with --enable-posix.
The question to Andrew: Did the BSPs at APS used to be created with --enable-posix?
Here are my intended calls:
diff --git a/src/libCom/osi/os/RTEMS/osdThread.c b/src/libCom/osi/os/RTEMS/osdThread.c
index c19279ecf..ebeabfa6b 100644
--- a/src/libCom/osi/os/RTEMS/osdThread.c
+++ b/src/libCom/osi/os/RTEMS/osdThread.c
@@ -39,6 +39,8 @@
#include "osdInterrupt.h"
#include "epicsExit.h"
+#include <pthread.h>
+
epicsShareFunc void osdThreadHooksRun(epicsThreadId id);
epicsShareFunc void osdThreadHooksRunMain(epicsThreadId id);
@@ -622,6 +624,26 @@ showInternalTaskInfo (rtems_id tid)
* that priority should be displayed, not the value truncated to
* the EPICS range.
*/
+ /* one should not use "internal" RTEMS structures
+ * only calls by API should be used */
+ rtems_status_code sc;
+
+ rtems_task_priority myCurrentPrio, myRealPrio;
+ struct sched_param sp;
+ int policy;
+
+ sc = pthread_getschedparam(tid, &policy, &sp);
+ if (sc != 0) {
+ fprintf(epicsGetStdout(),"%-30s", " *** RTEMS task gone! ***");
+ return;
+ }
+ myRealPrio = sp.sched_priority;
+ sc = rtems_task_set_priority(tid,0,&myCurrentPrio);
+ if (sc != 0) {
+ fprintf(epicsGetStdout(),"%-30s", " *** RTEMS task gone! ***");
+ return;
+ }
+
epicsPri = 199-thread.real_priority;
if (epicsPri < 0)
fprintf(epicsGetStdout()," <0");
--
You received this bug notification because you are a member of EPICS
Core Developers, which is subscribed to EPICS Base.
Matching subscriptions: epics-core-list-subscription
https://bugs.launchpad.net/bugs/1812084
Title:
Build failure on RTEMS 4.10.2
Status in EPICS Base:
Confirmed
Status in EPICS Base 3.15 series:
Confirmed
Status in EPICS Base 7.0 series:
Confirmed
Bug description:
Michael Westfall reported:
When compiling base R3.14.12.7 for RTEMS 4.10.2, I get the following
error:
/gem_swdev1/targetOS/RTEMS/rtems-4.10/bin/powerpc-rtems4.10-gcc --pipe -B/gem_swdev1/targetOS/RTEMS/rtems-4.10/powerpc-rtems4.10/beatnik/lib/ -specs bsp_specs -qrtems -fasm -c -mcpu=7400 -D__ppc_generic -DUNIX -O2 -g -g -Wall -DMY_DO_BOOTP=NULL -DHAVE_MOTLOAD -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048 -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120 -MMD -I. -I../O.Common -I. -I../../../src/libCom/osi/os/RTEMS -I../../../src/libCom/osi/os/posix -I../../../src/libCom/osi/os/default -I.. -I../../../src/libCom/bucketLib -I../../../src/libCom/ring -I../../../src/libCom/calc -I../../../src/libCom/cvtFast -I../../../src/libCom/cppStd -I../../../src/libCom/cxxTemplates -I../../../src/libCom/dbmf -I../../../src/libCom/ellLib -I../../../src/libCom/env -I../../../src/libCom/error -I../../../src/libCom/fdmgr -I../../../src/libCom/freeList -I../../../src/libCom/gpHash -I../../../src/libCom/iocsh -I../../../src/libCom/logClient -I../../../src/libCom/macLib -I../../../src/libCom/misc -I../../../src/libCom/osi -I../../../src/libCom/taskwd -I../../../src/libCom/timer -I../../../src/libCom/tsDefs -I/gem_swdev1/epics/R3.14.12.7/base/include/os/RTEMS -I/gem_swdev1/epics/R3.14.12.7/base/include ../../../src/libCom/osi/os/RTEMS/osdThread.c
../../../src/libCom/osi/os/RTEMS/osdThread.c: In function 'showInternalTaskInfo':
../../../src/libCom/osi/os/RTEMS/osdThread.c:617: error: 'Thread_Control' has no member named 'real_priority'
../../../src/libCom/osi/os/RTEMS/osdThread.c:624: error: 'Thread_Control' has no member named 'current_priority'
../../../src/libCom/osi/os/RTEMS/osdThread.c:624: error: 'Thread_Control' has no member named 'real_priority'
../../../src/libCom/osi/os/RTEMS/osdThread.c:625: error: 'Thread_Control' has no member named 'current_priority'
../../../src/libCom/osi/os/RTEMS/osdThread.c:627: error: 'Thread_Control' has no member named 'real_priority'
../../../src/libCom/osi/os/RTEMS/osdThread.c:627: error: 'Thread_Control' has no member named 'current_priority'
make[3]: *** [osdThread.o] Error 1
To manage notifications about this bug go to:
https://bugs.launchpad.net/epics-base/+bug/1812084/+subscriptions
- Navigate by Date:
- Prev:
Build failed: EPICS Base base-3.15-606 AppVeyor via Core-talk
- Next:
[Bug 1812084] Re: Build failure on RTEMS 4.10.2 mdavidsaver via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Build failed: EPICS Base base-3.15-606 AppVeyor via Core-talk
- Next:
[Bug 1812084] Re: Build failure on RTEMS 4.10.2 mdavidsaver via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024