aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/include
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2012-05-08 17:09:20 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2012-05-08 17:09:20 +0000
commitd0a2e55ed0cf97be924ebbdae2497fd77bfac5b6 (patch)
treea31ebbd42904206131ff4eb661b4341558ca8925 /os/hal/include
parentba6519a2eaf35bc6d39188e10b6ea12ef553009d (diff)
downloadChibiOS-d0a2e55ed0cf97be924ebbdae2497fd77bfac5b6.tar.gz
ChibiOS-d0a2e55ed0cf97be924ebbdae2497fd77bfac5b6.tar.bz2
ChibiOS-d0a2e55ed0cf97be924ebbdae2497fd77bfac5b6.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4175 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/include')
-rw-r--r--os/hal/include/io_channel.h46
1 files changed, 40 insertions, 6 deletions
diff --git a/os/hal/include/io_channel.h b/os/hal/include/io_channel.h
index c6da6b89b..3357bf6bd 100644
--- a/os/hal/include/io_channel.h
+++ b/os/hal/include/io_channel.h
@@ -71,7 +71,7 @@
*
* @brief @p BaseChannel virtual methods table.
*/
-struct tmp_BaseChannelVMT {
+struct BaseChannelVMT {
_base_channel_methods
};
@@ -86,7 +86,7 @@ typedef struct {
/** @brief Virtual Methods Table.*/
const struct BaseChannelVMT *vmt;
_base_channel_data
-} tmp_BaseChannel;
+} BaseChannel;
/**
* @name Macro Functions (BaseChannel)
@@ -98,6 +98,7 @@ typedef struct {
* block.
*
* @param[in] ip pointer to a @p BaseChannel or derived class
+ *
* @return The output queue status.
* @retval FALSE if the output queue has space and would not block a
* write operation.
@@ -114,6 +115,7 @@ typedef struct {
* block.
*
* @param[in] ip pointer to a @p BaseChannel or derived class
+ *
* @return The input queue status.
* @retval FALSE if the input queue contains data and would not block a
* read operation.
@@ -131,6 +133,7 @@ typedef struct {
*
* @param[in] ip pointer to a @p BaseChannel or derived class
* @param[in] b the byte value to be written to the channel
+ *
* @return The operation status.
* @retval Q_OK if the operation succeeded.
* @retval Q_RESET if the channel associated queue (if any) was reset.
@@ -166,6 +169,7 @@ typedef struct {
* is not available then the calling thread is suspended.
*
* @param[in] ip pointer to a @p BaseChannel or derived class
+ *
* @return A byte value from the queue.
* @retval Q_RESET if the channel associated queue (if any) has been
* reset.
@@ -195,6 +199,21 @@ typedef struct {
#define chnGetTimeout(ip, time) ((ip)->vmt->get(ip, time))
/**
+ * @brief Channel blocking write.
+ * @details The function writes data from a buffer to a channel. If the channel
+ * is not ready to accept data then the calling thread is suspended.
+ *
+ * @param[in] ip pointer to a @p BaseChannel or derived class
+ * @param[out] bp pointer to the data buffer
+ * @param[in] n the maximum amount of data to be transferred
+ *
+ * @return The number of bytes transferred.
+ *
+ * @api
+ */
+#define chnWrite(ip, bp, n) chSequentialStreamWrite(ip, bp, n)
+
+/**
* @brief Channel blocking write with timeout.
* @details The function writes data from a buffer to a channel. If the channel
* is not ready to accept data then the calling thread is suspended.
@@ -214,6 +233,21 @@ typedef struct {
#define chnWriteTimeout(ip, bp, n, time) ((ip)->vmt->writet(ip, bp, n, time))
/**
+ * @brief Channel blocking read.
+ * @details The function reads data from a channel into a buffer. If the data
+ * is not available then the calling thread is suspended.
+ *
+ * @param[in] ip pointer to a @p BaseChannel or derived class
+ * @param[in] bp pointer to the data buffer
+ * @param[in] n the maximum amount of data to be transferred
+ *
+ * @return The number of bytes transferred.
+ *
+ * @api
+ */
+#define chnRead(ip, bp, n) chSequentialStreamRead(ip, bp, n)
+
+/**
* @brief Channel blocking read with timeout.
* @details The function reads data from a channel into a buffer. If the data
* is not available then the calling thread is suspended.
@@ -260,7 +294,7 @@ typedef uint_fast16_t chnflags_t;
/**
* @brief @p BaseAsynchronousChannel specific methods.
*/
-#define tmp__base_asynchronous_channel_methods \
+#define _base_asynchronous_channel_methods \
_base_channel_methods \
/* Channel read method with timeout specification.*/ \
chnflags_t (*getflags)(void *instance);
@@ -268,7 +302,7 @@ typedef uint_fast16_t chnflags_t;
/**
* @brief @p BaseAsynchronousChannel specific data.
*/
-#define tmp__base_asynchronous_channel_data \
+#define _base_asynchronous_channel_data \
_base_channel_data \
/* I/O condition event source.*/ \
EventSource event; \
@@ -280,7 +314,7 @@ typedef uint_fast16_t chnflags_t;
*
* @brief @p BaseAsynchronousChannel virtual methods table.
*/
-struct tmp_BaseAsynchronousChannelVMT {
+struct BaseAsynchronousChannelVMT {
_base_asynchronous_channel_methods
};
@@ -295,7 +329,7 @@ typedef struct {
/** @brief Virtual Methods Table.*/
const struct BaseAsynchronousChannelVMT *vmt;
_base_asynchronous_channel_data
-} tmp_BaseAsynchronousChannel;
+} BaseAsynchronousChannel;
/**
* @name Macro Functions (BaseAsynchronousChannel)