summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Desbiens <[email protected]>2026-04-17 08:59:45 -0400
committerGitHub <[email protected]>2026-04-17 08:59:45 -0400
commite2e81a870b81b73dc471f59fb582f1104141ae2e (patch)
tree47e320d00286be676c9358b02129e6a8227ec782
parent6765d688e0b9d1c163068bb93ff22c6f63fd321b (diff)
parent0b95590b1854a9f38be39a96876067ba3e47db8f (diff)
Merge pull request #257 from ayedm1/default_value_protection
Added default value protection for line coding parameters in serial Host classes
-rw-r--r--common/usbx_host_classes/inc/ux_host_class_cdc_acm.h11
-rw-r--r--common/usbx_host_classes/inc/ux_host_class_gser.h13
-rw-r--r--common/usbx_host_classes/inc/ux_host_class_prolific.h13
-rw-r--r--common/usbx_host_classes/src/ux_host_class_prolific_activate.c4
4 files changed, 39 insertions, 2 deletions
diff --git a/common/usbx_host_classes/inc/ux_host_class_cdc_acm.h b/common/usbx_host_classes/inc/ux_host_class_cdc_acm.h
index 24b8fb4..b8c392f 100644
--- a/common/usbx_host_classes/inc/ux_host_class_cdc_acm.h
+++ b/common/usbx_host_classes/inc/ux_host_class_cdc_acm.h
@@ -135,10 +135,21 @@ extern "C" {
/* Define CDC ACM default values. */
+#ifndef UX_HOST_CLASS_CDC_ACM_LINE_CODING_DEFAULT_RATE
#define UX_HOST_CLASS_CDC_ACM_LINE_CODING_DEFAULT_RATE 9600
+#endif
+
+#ifndef UX_HOST_CLASS_CDC_ACM_LINE_CODING_DEFAULT_STOP_BIT
#define UX_HOST_CLASS_CDC_ACM_LINE_CODING_DEFAULT_STOP_BIT 0
+#endif
+
+#ifndef UX_HOST_CLASS_CDC_ACM_LINE_CODING_DEFAULT_PARITY
#define UX_HOST_CLASS_CDC_ACM_LINE_CODING_DEFAULT_PARITY 0
+#endif
+
+#ifndef UX_HOST_CLASS_CDC_ACM_LINE_CODING_DEFAULT_DATA_BIT
#define UX_HOST_CLASS_CDC_ACM_LINE_CODING_DEFAULT_DATA_BIT 8
+#endif
/* Define CDC ACM line coding definitions. */
diff --git a/common/usbx_host_classes/inc/ux_host_class_gser.h b/common/usbx_host_classes/inc/ux_host_class_gser.h
index 9332dbf..8096ff4 100644
--- a/common/usbx_host_classes/inc/ux_host_class_gser.h
+++ b/common/usbx_host_classes/inc/ux_host_class_gser.h
@@ -115,8 +115,21 @@ extern "C" {
/* Define CDC ACM default values. */
+#ifndef UX_HOST_CLASS_GSER_LINE_CODING_DEFAULT_RATE
#define UX_HOST_CLASS_GSER_LINE_CODING_DEFAULT_RATE 9600
+#endif
+
+#ifndef UX_HOST_CLASS_GSER_LINE_CODING_DEFAULT_STOP_BIT
+#define UX_HOST_CLASS_GSER_LINE_CODING_DEFAULT_STOP_BIT 0
+#endif
+
+#ifndef UX_HOST_CLASS_GSER_LINE_CODING_DEFAULT_PARITY
+#define UX_HOST_CLASS_GSER_LINE_CODING_DEFAULT_PARITY 0
+#endif
+
+#ifndef UX_HOST_CLASS_GSER_LINE_CODING_DEFAULT_DATA_BIT
#define UX_HOST_CLASS_GSER_LINE_CODING_DEFAULT_DATA_BIT 8
+#endif
/* Define CDC ACM line coding definitions. */
diff --git a/common/usbx_host_classes/inc/ux_host_class_prolific.h b/common/usbx_host_classes/inc/ux_host_class_prolific.h
index 94b516f..eb6c9cb 100644
--- a/common/usbx_host_classes/inc/ux_host_class_prolific.h
+++ b/common/usbx_host_classes/inc/ux_host_class_prolific.h
@@ -144,8 +144,21 @@ extern "C" {
/* Define PROLIFIC default values. */
+#ifndef UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_RATE
#define UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_RATE 19200
+#endif
+
+#ifndef UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_STOP_BIT
+#define UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_STOP_BIT 0
+#endif
+
+#ifndef UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_PARITY
+#define UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_PARITY 0
+#endif
+
+#ifndef UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_DATA_BIT
#define UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_DATA_BIT 8
+#endif
/* Define PROLIFIC line coding definitions. */
diff --git a/common/usbx_host_classes/src/ux_host_class_prolific_activate.c b/common/usbx_host_classes/src/ux_host_class_prolific_activate.c
index e2afb35..862af1e 100644
--- a/common/usbx_host_classes/src/ux_host_class_prolific_activate.c
+++ b/common/usbx_host_classes/src/ux_host_class_prolific_activate.c
@@ -125,8 +125,8 @@ UINT status;
if (status == UX_SUCCESS)
{
line_coding.ux_host_class_prolific_line_coding_dter = UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_RATE;
- line_coding.ux_host_class_prolific_line_coding_stop_bit = UX_HOST_CLASS_PROLIFIC_LINE_CODING_STOP_BIT_0;
- line_coding.ux_host_class_prolific_line_coding_parity = UX_HOST_CLASS_PROLIFIC_LINE_CODING_PARITY_NONE;
+ line_coding.ux_host_class_prolific_line_coding_stop_bit = UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_STOP_BIT;
+ line_coding.ux_host_class_prolific_line_coding_parity = UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_PARITY;
line_coding.ux_host_class_prolific_line_coding_data_bits = UX_HOST_CLASS_PROLIFIC_LINE_CODING_DEFAULT_DATA_BIT;
status = _ux_host_class_prolific_ioctl(prolific, UX_HOST_CLASS_PROLIFIC_IOCTL_SET_LINE_CODING, (VOID *) &line_coding);
}