User mode may now use queue objects. Instead of embedding the kernel's linked list information directly in the data item, a container struct is allocated from the caller's resource pool which is then added to the queue. The new sflist type is now used to store a flag indicating whether a data item needs to be freed when removed from the queue. FIFO/LIFOs are derived from k_queues and have had allocator functions added. Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
30 lines
628 B
C
30 lines
628 B
C
/*
|
|
* Copyright (c) 2017 Intel Corporation.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef __TEST_FIFO_H__
|
|
#define __TEST_FIFO_H__
|
|
|
|
#include <ztest.h>
|
|
#include <irq_offload.h>
|
|
|
|
extern void test_queue_thread2thread(void);
|
|
extern void test_queue_thread2isr(void);
|
|
extern void test_queue_isr2thread(void);
|
|
extern void test_queue_get_2threads(void);
|
|
extern void test_queue_get_fail(void);
|
|
extern void test_queue_loop(void);
|
|
#ifdef CONFIG_USERSPACE
|
|
extern void test_queue_supv_to_user(void);
|
|
extern void test_auto_free(void);
|
|
#endif
|
|
|
|
typedef struct qdata {
|
|
sys_snode_t snode;
|
|
u32_t data;
|
|
bool allocated;
|
|
} qdata_t;
|
|
#endif
|