summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfonso Sánchez-Beato <alfonso.sanchez-beato@canonical.com>2018-09-03 09:01:47 +0200
committerDan Williams <dcbw@redhat.com>2018-09-12 17:15:46 +0000
commita1c27bf89d8f238509479f7223de7bb8677c005e (patch)
tree632b5c5a4c7746016e6f08489c79d623f3c101eb
parentbc407a38d63708298798440ce70acf7a14c4320c (diff)
downloadModemManager-a1c27bf89d8f238509479f7223de7bb8677c005e.tar.gz
modem-helpers: add flow control udev tag parser
Add function for parsing the content of the udev tag ID_MM_TTY_FLOW_CONTROL.
-rw-r--r--src/mm-modem-helpers.c19
-rw-r--r--src/mm-modem-helpers.h2
2 files changed, 21 insertions, 0 deletions
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index f7ee0f627..1df643415 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -646,6 +646,25 @@ out:
return mask;
}
+MMFlowControl
+mm_parse_flow_control_tag (const gchar *flow_control_tag)
+{
+ MMFlowControl flow_control;
+
+ if (g_strcmp0 ("xonxoff", flow_control_tag) == 0)
+ flow_control = MM_FLOW_CONTROL_XON_XOFF;
+ else if (g_strcmp0 ("rtscts", flow_control_tag) == 0)
+ flow_control = MM_FLOW_CONTROL_RTS_CTS;
+ else if (g_strcmp0 ("none", flow_control_tag) == 0)
+ flow_control = MM_FLOW_CONTROL_NONE;
+ else {
+ mm_warn ("Cannot parse flow control tag: '%s', setting as unknown", flow_control_tag);
+ flow_control = MM_FLOW_CONTROL_UNKNOWN;
+ }
+
+ return flow_control;
+}
+
/*************************************************************************/
/* +CREG: <stat> (GSM 07.07 CREG=1 unsolicited) */
diff --git a/src/mm-modem-helpers.h b/src/mm-modem-helpers.h
index a7c7eaca8..fcac9f133 100644
--- a/src/mm-modem-helpers.h
+++ b/src/mm-modem-helpers.h
@@ -112,6 +112,8 @@ typedef enum { /*< underscore_name=mm_flow_control >*/
MMFlowControl mm_parse_ifc_test_response (const gchar *response,
GError **error);
+MMFlowControl mm_parse_flow_control_tag (const gchar *flow_control);
+
/*****************************************************************************/
/* 3GPP specific helpers and utilities */
/*****************************************************************************/