aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/serial.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/serial.h')
-rw-r--r--src/include/serial.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/include/serial.h b/src/include/serial.h
index 9bb6c4f92..08ddf61fe 100644
--- a/src/include/serial.h
+++ b/src/include/serial.h
@@ -137,6 +137,24 @@ extern "C" {
#endif
/**
+ * @brief Direct output check on a @p FullDuplexDriver.
+ * @details This function bypasses the indirect access to the channel and
+ * checks directly the output queue. This is faster but cannot
+ * be used to check different channels implementations.
+ * @see chIOPutWouldBlock()
+ */
+#define chFDDPutWouldBlock(sd) chOQIsFull(&(sd)->d2.oqueue)
+
+/**
+ * @brief Direct input check on a @p FullDuplexDriver.
+ * @details This function bypasses the indirect access to the channel and
+ * checks directly the input queue. This is faster but cannot
+ * be used to check different channels implementations.
+ * @see chIOGetWouldBlock()
+ */
+#define chFDDGetWouldBlock(sd) chIQIsEmpty(&(sd)->d2.iqueue)
+
+/**
* @brief Direct blocking write to a @p FullDuplexDriver.
* @details This function bypasses the indirect access to the channel and
* writes directly on the output queue. This is faster but cannot