X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fserial.c;h=aa8d4ddedf3b383fadbdf06bedbe062ba67f24c4;hb=d3ec7035bc543e983aeb8cee723cb2c78f0f109a;hp=883bf27a020b26e6204aad3a27308142500a4921;hpb=24287ea9e3dd0c6f7fc2299eaf725346b8c1fea2;p=libsigrok.git
diff --git a/src/serial.c b/src/serial.c
index 883bf27a..aa8d4dde 100644
--- a/src/serial.c
+++ b/src/serial.c
@@ -20,28 +20,50 @@
* along with this program. If not, see .
*/
+#include
#include
#include
#include
#include
#include
-#include "libsigrok.h"
+#include
#include "libsigrok-internal.h"
+#ifdef G_OS_WIN32
+#include /* for HANDLE */
+#endif
+/** @cond PRIVATE */
#define LOG_PREFIX "serial"
+/** @endcond */
+
+/**
+ * @file
+ *
+ * Serial port handling.
+ */
+
+/**
+ * @defgroup grp_serial Serial port handling
+ *
+ * Serial port handling functions.
+ *
+ * @{
+ */
/**
* Open the specified serial port.
*
* @param serial Previously initialized serial port structure.
* @param[in] flags Flags to use when opening the serial port. Possible flags
- * include SERIAL_RDWR, SERIAL_RDONLY.
+ * include SERIAL_RDWR, SERIAL_RDONLY.
*
* If the serial structure contains a serialcomm string, it will be
* passed to serial_set_paramstr() after the port is opened.
*
* @retval SR_OK Success.
* @retval SR_ERR Failure.
+ *
+ * @private
*/
SR_PRIV int serial_open(struct sr_serial_dev_inst *serial, int flags)
{
@@ -90,6 +112,8 @@ SR_PRIV int serial_open(struct sr_serial_dev_inst *serial, int flags)
*
* @retval SR_OK Success.
* @retval SR_ERR Failure.
+ *
+ * @private
*/
SR_PRIV int serial_close(struct sr_serial_dev_inst *serial)
{
@@ -135,6 +159,8 @@ SR_PRIV int serial_close(struct sr_serial_dev_inst *serial)
*
* @retval SR_OK Success.
* @retval SR_ERR Failure.
+ *
+ * @private
*/
SR_PRIV int serial_flush(struct sr_serial_dev_inst *serial)
{
@@ -177,6 +203,8 @@ SR_PRIV int serial_flush(struct sr_serial_dev_inst *serial)
*
* @retval SR_OK Success.
* @retval SR_ERR Failure.
+ *
+ * @private
*/
SR_PRIV int serial_drain(struct sr_serial_dev_inst *serial)
{
@@ -240,7 +268,7 @@ static int _serial_write(struct sr_serial_dev_inst *serial,
return SR_ERR;
}
- sr_spew("Wrote %d/%d bytes.", ret, count);
+ sr_spew("Wrote %zd/%zu bytes.", ret, count);
return ret;
}
@@ -257,6 +285,8 @@ static int _serial_write(struct sr_serial_dev_inst *serial,
* @retval SR_ERR Other error.
* @retval other The number of bytes written. If this is less than the number
* specified in the call, the timeout was reached.
+ *
+ * @private
*/
SR_PRIV int serial_write_blocking(struct sr_serial_dev_inst *serial,
const void *buf, size_t count, unsigned int timeout_ms)
@@ -274,7 +304,9 @@ SR_PRIV int serial_write_blocking(struct sr_serial_dev_inst *serial,
* @retval SR_ERR_ARG Invalid argument.
* @retval SR_ERR Other error.
* @retval other The number of bytes written.
-*/
+ *
+ * @private
+ */
SR_PRIV int serial_write_nonblocking(struct sr_serial_dev_inst *serial,
const void *buf, size_t count)
{
@@ -314,7 +346,7 @@ static int _serial_read(struct sr_serial_dev_inst *serial, void *buf,
}
if (ret > 0)
- sr_spew("Read %d/%d bytes.", ret, count);
+ sr_spew("Read %zd/%zu bytes.", ret, count);
return ret;
}
@@ -328,9 +360,11 @@ static int _serial_read(struct sr_serial_dev_inst *serial, void *buf,
* @param[in] timeout_ms Timeout in ms, or 0 for no timeout.
*
* @retval SR_ERR_ARG Invalid argument.
- * @retval SR_ERR Other error.
- * @retval other The number of bytes read. If this is less than the number
+ * @retval SR_ERR Other error.
+ * @retval other The number of bytes read. If this is less than the number
* requested, the timeout was reached.
+ *
+ * @private
*/
SR_PRIV int serial_read_blocking(struct sr_serial_dev_inst *serial, void *buf,
size_t count, unsigned int timeout_ms)
@@ -347,8 +381,10 @@ SR_PRIV int serial_read_blocking(struct sr_serial_dev_inst *serial, void *buf,
* @param[in] count The number of bytes to read.
*
* @retval SR_ERR_ARG Invalid argument.
- * @retval SR_ERR Other error.
- * @retval other The number of bytes read.
+ * @retval SR_ERR Other error.
+ * @retval other The number of bytes read.
+ *
+ * @private
*/
SR_PRIV int serial_read_nonblocking(struct sr_serial_dev_inst *serial, void *buf,
size_t count)
@@ -365,12 +401,14 @@ SR_PRIV int serial_read_nonblocking(struct sr_serial_dev_inst *serial, void *buf
* @param[in] parity The parity setting to use (0 = none, 1 = even, 2 = odd).
* @param[in] stopbits The number of stop bits to use (1 or 2).
* @param[in] flowcontrol The flow control settings to use (0 = none,
- * 1 = RTS/CTS, 2 = XON/XOFF).
+ * 1 = RTS/CTS, 2 = XON/XOFF).
* @param[in] rts Status of RTS line (0 or 1; required by some interfaces).
* @param[in] dtr Status of DTR line (0 or 1; required by some interfaces).
*
* @retval SR_OK Success.
* @retval SR_ERR Failure.
+ *
+ * @private
*/
SR_PRIV int serial_set_params(struct sr_serial_dev_inst *serial, int baudrate,
int bits, int parity, int stopbits,
@@ -439,7 +477,7 @@ SR_PRIV int serial_set_params(struct sr_serial_dev_inst *serial, int baudrate,
* @param serial Previously initialized serial port structure.
* @param[in] paramstr A serial communication parameters string of the form
* "/{/