aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/include
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2015-12-21 11:20:33 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2015-12-21 11:20:33 +0000
commit7979de69537f45600e5e926dcdf5e302b09af61b (patch)
tree06d85ef5ecdb5811b46945203c239a90ef65ddce /os/hal/include
parent380ffdcb4c242ed0f25982e3e5008f0df8f83790 (diff)
downloadChibiOS-7979de69537f45600e5e926dcdf5e302b09af61b.tar.gz
ChibiOS-7979de69537f45600e5e926dcdf5e302b09af61b.tar.bz2
ChibiOS-7979de69537f45600e5e926dcdf5e302b09af61b.zip
Input buffers queue working now.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8629 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/include')
-rw-r--r--os/hal/include/hal_buffers.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/os/hal/include/hal_buffers.h b/os/hal/include/hal_buffers.h
index 28677849f..a256f02e2 100644
--- a/os/hal/include/hal_buffers.h
+++ b/os/hal/include/hal_buffers.h
@@ -126,6 +126,15 @@ typedef io_buffers_queue_t output_buffers_queue_t;
/*===========================================================================*/
/**
+ * @brief Computes the size of a buffers queue buffer size.
+ *
+ * @param[in] n sumber of buffers in the queue
+ * @param[in] size size of the buffers
+ */
+#define BQ_BUFFER_SIZE(n, size) \
+ (((size_t)(size) + sizeof (size_t)) * (size_t)(n))
+
+/**
* @name Macro Functions
* @{
*/
@@ -152,6 +161,16 @@ typedef io_buffers_queue_t output_buffers_queue_t;
#define bqSpaceI(bqp) ((bqp)->bcounter)
/**
+ * @brief Returns the queue application-defined link.
+ *
+ * @param[in] bqp pointer to an @p io_buffers_queue_t structure
+ * @return The application-defined link.
+ *
+ * @special
+ */
+#define bqGetLinkX(bqp) ((bqp)->link)
+
+/**
* @brief Evaluates to @p TRUE if the specified input buffered queue is empty.
*
* @param[in] ibqp pointer to an @p input_buffers_queue_t structure
@@ -187,6 +206,7 @@ extern "C" {
void ibqObjectInit(io_buffers_queue_t *ibqp, uint8_t *bp,
size_t size, size_t n,
dbnotify_t infy, void *link);
+ void ibqResetI(input_buffers_queue_t *ibqp);
uint8_t *ibqGetEmptyBufferI(input_buffers_queue_t *ibqp);
void ibqPostBufferI(input_buffers_queue_t *ibqp, size_t size);
msg_t ibqGetDataTimeoutI(input_buffers_queue_t *ibqp, systime_t timeout);