24#ifndef __M_IO_SERIAL_H__
25#define __M_IO_SERIAL_H__
27#include <mstdlib/base/m_defs.h>
28#include <mstdlib/base/m_types.h>
29#include <mstdlib/io/m_io.h>
30#include <mstdlib/io/m_event.h>
93#define M_IO_SERIAL_MODE_MASK_BITS 0x000F
94#define M_IO_SERIAL_MODE_MASK_PARITY 0x00F0
95#define M_IO_SERIAL_MODE_MASK_STOPBITS 0x0F00
96#define M_IO_SERIAL_MODE_BITS_8 0x0000
97#define M_IO_SERIAL_MODE_BITS_7 0x0001
98#define M_IO_SERIAL_MODE_PARITY_NONE 0x0000
99#define M_IO_SERIAL_MODE_PARITY_EVEN 0x0010
100#define M_IO_SERIAL_MODE_PARITY_ODD 0x0020
101#define M_IO_SERIAL_MODE_PARITY_MARK 0x0030
102#define M_IO_SERIAL_MODE_PARITY_SPACE 0x0040
103#define M_IO_SERIAL_MODE_STOPBITS_1 0x0000
104#define M_IO_SERIAL_MODE_STOPBITS_2 0x0100
enum M_io_serial_baud M_io_serial_baud_t
Definition: m_io_serial.h:82
M_io_serial_mode
Definition: m_io_serial.h:107
#define M_IO_SERIAL_MODE_STOPBITS_1
Definition: m_io_serial.h:103
void M_io_serial_enum_destroy(M_io_serial_enum_t *serenum)
M_io_error_t M_io_serial_set_baud(M_io_t *io, M_io_serial_baud_t baud)
#define M_IO_SERIAL_MODE_PARITY_EVEN
Definition: m_io_serial.h:99
size_t M_io_serial_enum_count(const M_io_serial_enum_t *serenum)
M_io_error_t M_io_serial_get_baud(M_io_t *io, M_io_serial_baud_t *baud)
const char * M_io_serial_enum_path(const M_io_serial_enum_t *serenum, size_t idx)
struct M_io_serial_enum M_io_serial_enum_t
Definition: m_io_serial.h:142
M_io_error_t M_io_serial_get_mode(M_io_t *io, M_io_serial_mode_t *mode)
M_io_error_t M_io_serial_create(M_io_t **io_out, const char *path, M_io_serial_baud_t baud, M_io_serial_flowcontrol_t flowcontrol, M_io_serial_mode_t mode, M_uint32 flags)
enum M_io_serial_flags M_io_serial_flags_t
Definition: m_io_serial.h:139
M_io_serial_flowcontrol
Definition: m_io_serial.h:86
enum M_io_serial_flowcontrol M_io_serial_flowcontrol_t
Definition: m_io_serial.h:91
#define M_IO_SERIAL_MODE_BITS_8
Definition: m_io_serial.h:96
#define M_IO_SERIAL_MODE_PARITY_ODD
Definition: m_io_serial.h:100
M_io_serial_enum_t * M_io_serial_enum(M_bool include_modems)
M_io_error_t M_io_serial_get_flowcontrol(M_io_t *io, M_io_serial_flowcontrol_t *flowcontrol)
#define M_IO_SERIAL_MODE_PARITY_NONE
Definition: m_io_serial.h:98
enum M_io_serial_mode M_io_serial_mode_t
Definition: m_io_serial.h:113
M_io_error_t M_io_serial_set_mode(M_io_t *io, M_io_serial_mode_t mode)
M_io_serial_flags
Definition: m_io_serial.h:121
M_io_error_t M_io_serial_set_flowcontrol(M_io_t *io, M_io_serial_flowcontrol_t flowcontrol)
M_io_serial_baud
Definition: m_io_serial.h:43
#define M_IO_SERIAL_MODE_BITS_7
Definition: m_io_serial.h:97
const char * M_io_serial_enum_name(const M_io_serial_enum_t *serenum, size_t idx)
@ M_IO_SERIAL_MODE_7E1
Definition: m_io_serial.h:110
@ M_IO_SERIAL_MODE_7O1
Definition: m_io_serial.h:111
@ M_IO_SERIAL_MODE_8N1
Definition: m_io_serial.h:109
@ M_IO_SERIAL_FLOWCONTROL_NONE
Definition: m_io_serial.h:87
@ M_IO_SERIAL_FLOWCONTROL_HARDWARE
Definition: m_io_serial.h:88
@ M_IO_SERIAL_FLOWCONTROL_SOFTWARE
Definition: m_io_serial.h:89
@ M_IO_SERIAL_FLAG_NONE
Definition: m_io_serial.h:122
@ M_IO_SERIAL_FLAG_ASYNC_TIMEOUT
Definition: m_io_serial.h:130
@ M_IO_SERIAL_FLAG_NO_RESTORE_ON_CLOSE
Definition: m_io_serial.h:127
@ M_IO_SERIAL_FLAG_NO_FLUSH_ON_CLOSE
Definition: m_io_serial.h:125
@ M_IO_SERIAL_FLAG_IGNORE_TERMIOS_FAILURE
Definition: m_io_serial.h:123
@ M_IO_SERIAL_FLAG_BUSY_POLLING
Definition: m_io_serial.h:134
@ M_IO_SERIAL_BAUD_1000000
Definition: m_io_serial.h:73
@ M_IO_SERIAL_BAUD_128000
Definition: m_io_serial.h:66
@ M_IO_SERIAL_BAUD_134
Definition: m_io_serial.h:48
@ M_IO_SERIAL_BAUD_7200
Definition: m_io_serial.h:57
@ M_IO_SERIAL_BAUD_75
Definition: m_io_serial.h:46
@ M_IO_SERIAL_BAUD_1200
Definition: m_io_serial.h:53
@ M_IO_SERIAL_BAUD_200
Definition: m_io_serial.h:50
@ M_IO_SERIAL_BAUD_19200
Definition: m_io_serial.h:60
@ M_IO_SERIAL_BAUD_2500000
Definition: m_io_serial.h:77
@ M_IO_SERIAL_BAUD_2400
Definition: m_io_serial.h:55
@ M_IO_SERIAL_BAUD_4800
Definition: m_io_serial.h:56
@ M_IO_SERIAL_BAUD_1800
Definition: m_io_serial.h:54
@ M_IO_SERIAL_BAUD_50
Definition: m_io_serial.h:45
@ M_IO_SERIAL_BAUD_38400
Definition: m_io_serial.h:62
@ M_IO_SERIAL_BAUD_256000
Definition: m_io_serial.h:68
@ M_IO_SERIAL_BAUD_1500000
Definition: m_io_serial.h:75
@ M_IO_SERIAL_BAUD_460800
Definition: m_io_serial.h:69
@ M_IO_SERIAL_BAUD_28800
Definition: m_io_serial.h:61
@ M_IO_SERIAL_BAUD_14400
Definition: m_io_serial.h:59
@ M_IO_SERIAL_BAUD_3500000
Definition: m_io_serial.h:79
@ M_IO_SERIAL_BAUD_500000
Definition: m_io_serial.h:70
@ M_IO_SERIAL_BAUD_110
Definition: m_io_serial.h:47
@ M_IO_SERIAL_BAUD_576000
Definition: m_io_serial.h:71
@ M_IO_SERIAL_BAUD_57600
Definition: m_io_serial.h:64
@ M_IO_SERIAL_BAUD_2000000
Definition: m_io_serial.h:76
@ M_IO_SERIAL_BAUD_115200
Definition: m_io_serial.h:65
@ M_IO_SERIAL_BAUD_230400
Definition: m_io_serial.h:67
@ M_IO_SERIAL_BAUD_1152000
Definition: m_io_serial.h:74
@ M_IO_SERIAL_BAUD_921600
Definition: m_io_serial.h:72
@ M_IO_SERIAL_BAUD_4000000
Definition: m_io_serial.h:80
@ M_IO_SERIAL_BAUD_600
Definition: m_io_serial.h:52
@ M_IO_SERIAL_BAUD_9600
Definition: m_io_serial.h:58
@ M_IO_SERIAL_BAUD_300
Definition: m_io_serial.h:51
@ M_IO_SERIAL_BAUD_3000000
Definition: m_io_serial.h:78
@ M_IO_SERIAL_BAUD_0
Definition: m_io_serial.h:44
@ M_IO_SERIAL_BAUD_150
Definition: m_io_serial.h:49
enum M_io_error M_io_error_t
Definition: m_io.h:93
struct M_io M_io_t
Definition: m_io.h:59