Add user thread support to message queue, semaphore, mutex and pipe tests. Mailbox and memory map tests are restricted from executing from user threads. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
53 lines
995 B
C
53 lines
995 B
C
/* receiver.c */
|
|
|
|
/*
|
|
* Copyright (c) 1997-2010,2013-2014 Wind River Systems, Inc.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/*
|
|
* File Naming information.
|
|
* ------------------------
|
|
* Files that end with:
|
|
* _B : Is a file that contains a benchmark function
|
|
* _R : Is a file that contains the receiver task
|
|
* of a benchmark function
|
|
*/
|
|
|
|
#include "receiver.h"
|
|
|
|
BENCH_DMEM char data_recv[MESSAGE_SIZE] = { 0 };
|
|
|
|
void dequtask(void);
|
|
void waittask(void);
|
|
void mailrecvtask(void);
|
|
void piperecvtask(void);
|
|
|
|
/**
|
|
* @brief Main function of the task that receives data in the test
|
|
*/
|
|
void recvtask(void *p1, void *p2, void *p3)
|
|
{
|
|
bool skip_mbox = (bool)(uintptr_t)(p1);
|
|
|
|
ARG_UNUSED(p2);
|
|
ARG_UNUSED(p3);
|
|
|
|
/* order must be compatible with master.c ! */
|
|
|
|
k_sem_take(&STARTRCV, K_FOREVER);
|
|
dequtask();
|
|
|
|
k_sem_take(&STARTRCV, K_FOREVER);
|
|
waittask();
|
|
|
|
if (!skip_mbox) {
|
|
k_sem_take(&STARTRCV, K_FOREVER);
|
|
mailrecvtask();
|
|
}
|
|
|
|
k_sem_take(&STARTRCV, K_FOREVER);
|
|
piperecvtask();
|
|
}
|