summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2017-01-22 15:43:17 +0100
committerDaniel Hellstrom <daniel@gaisler.com>2017-03-06 07:54:55 +0100
commit8acfa948d4514df12611442fa6caa5f39bf59b40 (patch)
tree0e4dd27b6f63969850205a531b8045e4b9cfd94d
parentleon, grspw_pkt: functions to support custom work-task (diff)
downloadrtems-8acfa948d4514df12611442fa6caa5f39bf59b40.tar.bz2
leon, grpsw_pkt: set unique work-task name
-rw-r--r--c/src/lib/libbsp/sparc/shared/spw/grspw_pkt.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/spw/grspw_pkt.c b/c/src/lib/libbsp/sparc/shared/spw/grspw_pkt.c
index e445c2a3be..b64a807d99 100644
--- a/c/src/lib/libbsp/sparc/shared/spw/grspw_pkt.c
+++ b/c/src/lib/libbsp/sparc/shared/spw/grspw_pkt.c
@@ -3160,6 +3160,7 @@ rtems_id grspw_work_spawn(int prio, int stack, rtems_id *pMsgQ, int msgMax)
{
rtems_id tid;
int created_msgq = 0;
+ static char work_name = 'A';
if (pMsgQ == NULL)
return OBJECTS_ID_NONE;
@@ -3169,7 +3170,7 @@ rtems_id grspw_work_spawn(int prio, int stack, rtems_id *pMsgQ, int msgMax)
msgMax = 32;
if (rtems_message_queue_create(
- rtems_build_name('S', 'G', 'L', 'Q'),
+ rtems_build_name('S', 'G', 'Q', work_name),
msgMax, 4, RTEMS_FIFO, pMsgQ) !=
RTEMS_SUCCESSFUL)
return OBJECTS_ID_NONE;
@@ -3181,7 +3182,7 @@ rtems_id grspw_work_spawn(int prio, int stack, rtems_id *pMsgQ, int msgMax)
if (stack < 0x800)
stack = RTEMS_MINIMUM_STACK_SIZE; /* default stack size */
- if (rtems_task_create(rtems_build_name('S', 'G', 'L', 'T'),
+ if (rtems_task_create(rtems_build_name('S', 'G', 'T', work_name),
prio, stack, RTEMS_PREEMPT | RTEMS_NO_ASR,
RTEMS_NO_FLOATING_POINT, &tid) != RTEMS_SUCCESSFUL)
tid = OBJECTS_ID_NONE;
@@ -3194,6 +3195,9 @@ rtems_id grspw_work_spawn(int prio, int stack, rtems_id *pMsgQ, int msgMax)
if (tid == OBJECTS_ID_NONE && created_msgq) {
rtems_message_queue_delete(*pMsgQ);
*pMsgQ = OBJECTS_ID_NONE;
+ } else {
+ if (++work_name > 'Z')
+ work_name = 'A';
}
return tid;
}