From 7036f9aff417c1b531f11f5bf84d31a39efed311 Mon Sep 17 00:00:00 2001 From: Adam Greloch Date: Fri, 23 May 2025 10:11:37 +0200 Subject: [PATCH 1/3] grlib-multi: fix ioctl(KIOEN) being unhandled JIRA: RTOS-1034 --- multi/grlib-multi/uart.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/multi/grlib-multi/uart.c b/multi/grlib-multi/uart.c index cbdfde788..b3a334ae8 100644 --- a/multi/grlib-multi/uart.c +++ b/multi/grlib-multi/uart.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -335,7 +336,22 @@ static void uart_ioctl(msg_t *msg, int dev) inData = ioctl_unpack(msg, &req, NULL); pid = ioctl_getSenderPid(msg); - err = libtty_ioctl(&uart_common.uart[dev].tty, pid, req, inData, &outData); + if (req == KIOEN) { +#ifdef UART_CONSOLE_USER + if (dev == UART_CONSOLE_USER) { + libklog_enable((int)(intptr_t)inData); + err = EOK; + } + else { + err = -EINVAL; + } +#else + err = -EINVAL; +#endif + } + else { + err = libtty_ioctl(&uart_common.uart[dev].tty, pid, req, inData, &outData); + } ioctl_setResponse(msg, req, err, outData); } From 24b05b2b76e645a3de413db898f1ea7e9529ede0 Mon Sep 17 00:00:00 2001 From: Adam Greloch Date: Fri, 23 May 2025 10:20:57 +0200 Subject: [PATCH 2/3] mcxn94x-multi: fix ioctl(KIOEN) being unhandled JIRA: RTOS-1034 --- multi/mcxn94x-multi/uart.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/multi/mcxn94x-multi/uart.c b/multi/mcxn94x-multi/uart.c index a20fcd3b4..af62405a3 100644 --- a/multi/mcxn94x-multi/uart.c +++ b/multi/mcxn94x-multi/uart.c @@ -348,7 +348,20 @@ static void uart_handleMsg(msg_t *msg, msg_rid_t rid, unsigned int major, unsign case mtDevCtl: in_data = ioctl_unpack(msg, &request, NULL); pid = ioctl_getSenderPid(msg); - err = libtty_ioctl(&uart->tty_common, pid, request, in_data, &out_data); + + if (request == KIOEN) { + if (uartPos[minor] == uart_common.ttyminor) { + libklog_enable((int)(intptr_t)in_data); + err = EOK; + } + else { + err = -EINVAL; + } + } + else { + err = libtty_ioctl(&uart->tty_common, pid, request, in_data, &out_data); + } + ioctl_setResponse(msg, request, err, out_data); break; From 7444c85d07506d2e11656e2fe9701a42f345b054 Mon Sep 17 00:00:00 2001 From: Adam Greloch Date: Fri, 23 May 2025 10:59:20 +0200 Subject: [PATCH 3/3] grlib-uart: fix ioctl(KIOEN) being unhandled JIRA: RTOS-1034 --- tty/grlib-uart/grlib-uart.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tty/grlib-uart/grlib-uart.c b/tty/grlib-uart/grlib-uart.c index 993cbd09d..6521de775 100644 --- a/tty/grlib-uart/grlib-uart.c +++ b/tty/grlib-uart/grlib-uart.c @@ -216,7 +216,13 @@ static void uart_ioctl(unsigned port, msg_t *msg) inData = ioctl_unpack(msg, &req, NULL); pid = ioctl_getSenderPid(msg); - err = libtty_ioctl(&uart_common.uart.tty, pid, req, inData, &outData); + if (req == KIOEN) { + libklog_enable((int)(intptr_t)inData); + err = EOK; + } + else { + err = libtty_ioctl(&uart_common.uart.tty, pid, req, inData, &outData); + } ioctl_setResponse(msg, req, err, outData); }