zephyr/subsys/bluetooth/controller/ll_sw/ull_tx_queue.h
Gerard Marull-Paretas 5113c1418d subsystems: migrate includes to <zephyr/...>
In order to bring consistency in-tree, migrate all subsystems code to
the new prefix <zephyr/...>. Note that the conversion has been scripted,
refer to zephyrproject-rtos#45388 for more details.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-05-09 12:07:35 +02:00

73 lines
1.6 KiB
C

/*
* Copyright (c) 2020 Demant
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/sys/slist.h>
struct ull_tx_q {
uint8_t pause_data; /* Data pause state of the tx queue */
sys_slist_t tx_list; /* Data and control node_tx list */
sys_slist_t data_list; /* Data node_tx wait list */
};
/* Forward declaration of node_tx */
struct node_tx;
/**
* @brief Initialize a tx queue.
*
* @param ull_tx_q Address of tx queue.
*/
void ull_tx_q_init(struct ull_tx_q *queue);
/**
* @brief Pause the data path of a tx queue.
*
* @param ull_tx_q Address of tx queue.
*/
void ull_tx_q_pause_data(struct ull_tx_q *queue);
/**
* @brief Resume the data path of a tx queue
*
* @param ull_tx_q Address of tx queue.
*/
void ull_tx_q_resume_data(struct ull_tx_q *queue);
/**
* @brief Enqueue a tx node in the data path of a tx queue
*
* @param ull_tx_q Address of tx queue.
* @param tx Address of tx node to enqueue.
*/
void ull_tx_q_enqueue_data(struct ull_tx_q *queue, struct node_tx *tx);
/**
* @brief Enqueue a tx node in the control path of a tx queue
*
* @param ull_tx_q Address of tx queue.
* @param tx Address of tx node to enqueue.
*/
void ull_tx_q_enqueue_ctrl(struct ull_tx_q *queue, struct node_tx *tx);
/**
* @brief Peek head tx node of tx queue.
*
* @param ull_tx_q Address of tx queue.
*
* @return Head tx node of the tx queue.
*/
struct node_tx *ull_tx_q_peek(struct ull_tx_q *queue);
/**
* @brief Dequeue a tx node from a tx queue.
*
* @param ull_tx_q Address of tx queue.
*
* @return Head tx node of the tx queue.
*/
struct node_tx *ull_tx_q_dequeue(struct ull_tx_q *queue);