From 2faad79559c71fc555a0c254107710f7e8de5121 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Mon, 24 Nov 2025 01:00:53 +0100 Subject: [PATCH] diagdummy Add srpr2 subcommand for contiguous printing to serial (and testing access races) --- user/diagdummy/diagdummy.c | 2 +- user/diagdummy/serial.c | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/user/diagdummy/diagdummy.c b/user/diagdummy/diagdummy.c index f76bddc..dbffe8a 100644 --- a/user/diagdummy/diagdummy.c +++ b/user/diagdummy/diagdummy.c @@ -2,7 +2,7 @@ #define CMDS(X) \ X(block) X(openf) \ - X(serialprint) + X(srpr) X(srpr2) \ void main(void) { if (argslen() == 0) { diff --git a/user/diagdummy/serial.c b/user/diagdummy/serial.c index 04e9848..59980d8 100644 --- a/user/diagdummy/serial.c +++ b/user/diagdummy/serial.c @@ -7,7 +7,7 @@ #define RECVB 2 #define RECVREADY 3 -void diagdummy_serialprint(void) { +void diagdummy_srpr(void) { char *str = "Hello world\n"; if (argslen() >= 2) { @@ -24,3 +24,20 @@ void diagdummy_serialprint(void) { s++; } } + +void diagdummy_srpr2(void) { + if (argslen() < 2) { + return; + } + + char *str = args()[1]; + + Dev_t serialdev; + dev_gethandle(&serialdev, "serialdev"); + + for (;;) { + while (!dev_cmd(&serialdev, SENDREADY, NULL, 0)); + dev_cmd(&serialdev, SENDB, str, 1); + schedsleep(500); + } +}