All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Anderson <sean.anderson@seco.com>
To: Simon Glass <sjg@chromium.org>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	Tom Rini <trini@konsulko.com>,
	u-boot@lists.denx.de, Sean Anderson <sean.anderson@seco.com>
Subject: [PATCH 14/17] arm: smh: Add some functions for working with the host console
Date: Thu,  3 Mar 2022 15:43:57 -0500	[thread overview]
Message-ID: <20220303204400.2787389-15-sean.anderson@seco.com> (raw)
In-Reply-To: <20220303204400.2787389-1-sean.anderson@seco.com>

This adds three wrappers around the semihosting commands for reading and
writing to the host console. We use the more standard getc/putc/puts
names instead of readc/writec/write0 for familiarity.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---

 arch/arm/lib/semihosting.c | 18 ++++++++++++++++++
 include/semihosting.h      | 19 +++++++++++++++++++
 2 files changed, 37 insertions(+)

diff --git a/arch/arm/lib/semihosting.c b/arch/arm/lib/semihosting.c
index 57ab25294f..7595dbc4a9 100644
--- a/arch/arm/lib/semihosting.c
+++ b/arch/arm/lib/semihosting.c
@@ -15,8 +15,11 @@
 
 #define SYSOPEN		0x01
 #define SYSCLOSE	0x02
+#define SYSWRITEC	0x03
+#define SYSWRITE0	0x04
 #define SYSWRITE	0x05
 #define SYSREAD		0x06
+#define SYSREADC	0x07
 #define SYSSEEK		0x0A
 #define SYSFLEN		0x0C
 #define SYSERRNO	0x13
@@ -167,3 +170,18 @@ long smh_seek(long fd, long pos)
 		return smh_errno();
 	return 0;
 }
+
+int smh_getc(void)
+{
+	return smh_trap(SYSREADC, NULL);
+}
+
+void smh_putc(char ch)
+{
+	smh_trap(SYSWRITEC, &ch);
+}
+
+void smh_puts(const char *s)
+{
+	smh_trap(SYSWRITE0, (char *)s);
+}
diff --git a/include/semihosting.h b/include/semihosting.h
index b53c650444..6f3c29786c 100644
--- a/include/semihosting.h
+++ b/include/semihosting.h
@@ -86,4 +86,23 @@ long smh_flen(long fd);
  */
 long smh_seek(long fd, long pos);
 
+/**
+ * smh_getc() - Read a character from stdin
+ *
+ * Return: The character read, or a negative error on failure
+ */
+int smh_getc(void);
+
+/**
+ * smh_putc() - Print a character on stdout
+ * @ch: The character to print
+ */
+void smh_putc(char ch);
+
+/**
+ * smh_write0() - Print a nul-terminated string on stdout
+ * @s: The string to print
+ */
+void smh_puts(const char *s);
+
 #endif /* _SEMIHOSTING_H */
-- 
2.25.1


  parent reply	other threads:[~2022-03-03 20:47 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-03 20:43 [PATCH 00/17] arm: semihosting: Cleanups and new features Sean Anderson
2022-03-03 20:43 ` [PATCH 01/17] doc: Convert semihosting readme to rST Sean Anderson
2022-03-03 20:43 ` [PATCH 02/17] nxp: ls1046ardb: Convert README " Sean Anderson
2022-03-03 20:43 ` [PATCH 03/17] doc: ls1046ardb: Expand boot mode section Sean Anderson
2022-03-03 20:43 ` [PATCH 04/17] arm: smh: Add semihosting entry to MAINTAINERS Sean Anderson
2022-03-03 20:43 ` [PATCH 05/17] arm: smh: Export semihosting functions Sean Anderson
2022-03-03 20:43 ` [PATCH 06/17] arm: smh: Use numeric modes for smh_open Sean Anderson
2022-03-03 20:43 ` [PATCH 07/17] arm: smh: Return errno on error Sean Anderson
2022-03-03 20:43 ` [PATCH 08/17] arm: smh: Document functions in header Sean Anderson
2022-03-03 20:43 ` [PATCH 09/17] arm: smh: Add some file manipulation commands Sean Anderson
2022-03-03 20:43 ` [PATCH 10/17] spl: Add semihosting boot method Sean Anderson
2022-03-03 20:43 ` [PATCH 11/17] fs: Add semihosting filesystem Sean Anderson
2022-03-03 20:43 ` [PATCH 12/17] cmd: fdt: Use start/size for chosen instead of start/end Sean Anderson
2022-03-03 20:43 ` [PATCH 13/17] arm: smh: Remove smhload command Sean Anderson
2022-03-03 20:43 ` Sean Anderson [this message]
2022-03-03 20:43 ` [PATCH 15/17] serial: Add semihosting driver Sean Anderson
2022-03-03 20:43 ` [PATCH 16/17] doc: smh: Update semihosting documentation Sean Anderson
2022-03-03 20:44 ` [PATCH 17/17] ls1046ardb: Add support for JTAG boot Sean Anderson
2022-03-04  1:06 ` [PATCH 00/17] arm: semihosting: Cleanups and new features Linus Walleij
2022-03-04 11:47   ` Andre Przywara
2022-03-04 17:19     ` Sean Anderson
2022-03-04 18:46       ` Tom Rini
2022-03-10 16:48         ` Sean Anderson
2022-03-10 17:01           ` Andre Przywara
2022-03-10 17:06             ` Sean Anderson
2022-03-10 17:16               ` Tom Rini
2022-03-11 13:10                 ` Andre Przywara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220303204400.2787389-15-sean.anderson@seco.com \
    --to=sean.anderson@seco.com \
    --cc=linus.walleij@linaro.org \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.