zephyr/tests/benchmarks/app_kernel/src/receiver.c
Peter Mitsis fa33147bf9 tests: app_kernel: Add user support
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>
2023-10-31 08:58:45 +01:00

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();
}