1
0
mirror of https://github.com/UzixLS/picocom.git synced 2025-07-19 07:21:18 +03:00

Type consistency tweaks

Better type consistency when returning enums flowcntrl_e and
parity_e. See also PR #92.
This commit is contained in:
Nick Patavalis
2018-02-10 10:04:14 +02:00
parent 6d8bf34e9f
commit a412f6583a
3 changed files with 17 additions and 11 deletions

View File

@ -66,6 +66,7 @@ const char *parity_str[] = {
[P_ODD] = "odd", [P_ODD] = "odd",
[P_MARK] = "mark", [P_MARK] = "mark",
[P_SPACE] = "space", [P_SPACE] = "space",
[P_ERROR] = "invalid parity mode",
}; };
/* flow control modes names */ /* flow control modes names */
@ -74,6 +75,7 @@ const char *flow_str[] = {
[FC_RTSCTS] = "RTS/CTS", [FC_RTSCTS] = "RTS/CTS",
[FC_XONXOFF] = "xon/xoff", [FC_XONXOFF] = "xon/xoff",
[FC_OTHER] = "other", [FC_OTHER] = "other",
[FC_ERROR] = "invalid flow control mode",
}; };
/**********************************************************************/ /**********************************************************************/
@ -850,7 +852,7 @@ baud_down (int baud)
return nb; return nb;
} }
int enum flowcntrl_e
flow_next (int flow) flow_next (int flow)
{ {
switch(flow) { switch(flow) {
@ -871,7 +873,7 @@ flow_next (int flow)
return flow; return flow;
} }
int enum parity_e
parity_next (int parity) parity_next (int parity)
{ {
switch(parity) { switch(parity) {
@ -1212,7 +1214,9 @@ int tty_q_push(const char *s, int len) {
int int
do_command (unsigned char c) do_command (unsigned char c)
{ {
int newbaud, newflow, newparity, newbits, newstopbits; int newbaud, newbits, newstopbits;
enum flowcntrl_e newflow;
enum parity_e newparity;
const char *xfr_cmd; const char *xfr_cmd;
char *fname; char *fname;
unsigned char hexbuf[HEXBUF_SZ]; unsigned char hexbuf[HEXBUF_SZ];

4
term.c
View File

@ -942,7 +942,7 @@ term_get_parity (int fd)
i = term_find(fd); i = term_find(fd);
if ( i < 0 ) { if ( i < 0 ) {
parity = -1; parity = P_ERROR;
break; break;
} }
@ -1155,7 +1155,7 @@ term_get_flowcntrl (int fd)
i = term_find(fd); i = term_find(fd);
if ( i < 0 ) { if ( i < 0 ) {
flow = -1; flow = FC_ERROR;
break; break;
} }

14
term.h
View File

@ -161,6 +161,7 @@ enum term_errno_e {
* P_ODD - odd parity * P_ODD - odd parity
* P_MARK - mark parity (parity bit always 1) * P_MARK - mark parity (parity bit always 1)
* P_SPACE - space parity (parity bit always 0) * P_SPACE - space parity (parity bit always 0)
* P_ERROR - marker to indicate error for functions returning parity_e
*/ */
enum parity_e { enum parity_e {
P_NONE = 0, P_NONE = 0,
@ -168,7 +169,7 @@ enum parity_e {
P_ODD, P_ODD,
P_MARK, P_MARK,
P_SPACE, P_SPACE,
P_ERROR = -1 P_ERROR
}; };
/* /*
@ -180,13 +181,14 @@ enum parity_e {
* FC_RTSCTS - RTS/CTS handshaking, also known as hardware * FC_RTSCTS - RTS/CTS handshaking, also known as hardware
* flow-control. * flow-control.
* FC_XONXOFF - xon/xoff flow control. * FC_XONXOFF - xon/xoff flow control.
* FC_ERROR - marker to indicate error for functions returning flowcntrl_e
*/ */
enum flowcntrl_e { enum flowcntrl_e {
FC_NONE = 0, FC_NONE = 0,
FC_RTSCTS, FC_RTSCTS,
FC_XONXOFF, FC_XONXOFF,
FC_OTHER, FC_OTHER,
FC_ERROR = -1 FC_ERROR
}; };
/* /*
@ -551,8 +553,8 @@ int term_get_baudrate (int fd, int *ispeed);
* Reads and decodes the current parity settings in the * Reads and decodes the current parity settings in the
* "currtermios" structure of the managed filedes "fd". * "currtermios" structure of the managed filedes "fd".
* *
* Returns one of the "enum parity_e" members, or -1 if "fd" does not * Returns one of the "enum parity_e" members. Returns P_ERROR if "fd"
* correspond to a managed filedes. * does not correspond to a managed filedes.
*/ */
enum parity_e term_get_parity (int fd); enum parity_e term_get_parity (int fd);
@ -581,8 +583,8 @@ int term_get_stopbits (int fd);
* Reads and decodes the current flow-control settings in the * Reads and decodes the current flow-control settings in the
* "currtermios" structure of the managed filedes "fd". * "currtermios" structure of the managed filedes "fd".
* *
* Returns one of the "enum flowcntrl_e" members, or -1 if "fd" does * Returns one of the "enum flowcntrl_e" members. Returns FC_ERROR if
* not correspond to a managed filedes. * "fd" does not correspond to a managed filedes.
*/ */
enum flowcntrl_e term_get_flowcntrl (int fd); enum flowcntrl_e term_get_flowcntrl (int fd);