xref: /qemu/tests/tcg/multiarch/arm-compat-semi/semiconsole.c (revision 542b10bd148ae9f0aa839c66534272970c46c7f0)
1486e58b1SAlex Bennée /*
2486e58b1SAlex Bennée  * linux-user semihosting console
3486e58b1SAlex Bennée  *
4*542b10bdSAlex Bennée  * Copyright (c) 2024
5486e58b1SAlex Bennée  * Written by Alex Bennée <alex.bennee@linaro.org>
6486e58b1SAlex Bennée  *
7*542b10bdSAlex Bennée  * SPDX-License-Identifier: GPL-2.0-or-later
8486e58b1SAlex Bennée  */
9486e58b1SAlex Bennée 
103539d84dSAlex Bennée #define SYS_READC       0x07
113539d84dSAlex Bennée 
12486e58b1SAlex Bennée #include <stdio.h>
13486e58b1SAlex Bennée #include <stdint.h>
14486e58b1SAlex Bennée #include "semicall.h"
15486e58b1SAlex Bennée 
main(void)16486e58b1SAlex Bennée int main(void)
17486e58b1SAlex Bennée {
18486e58b1SAlex Bennée     char c;
19486e58b1SAlex Bennée 
20486e58b1SAlex Bennée     printf("Semihosting Console Test\n");
21486e58b1SAlex Bennée     printf("hit X to exit:");
22486e58b1SAlex Bennée 
23486e58b1SAlex Bennée     do {
24486e58b1SAlex Bennée         c = __semi_call(SYS_READC, 0);
25486e58b1SAlex Bennée         printf("got '%c'\n", c);
26486e58b1SAlex Bennée     } while (c != 'X');
27486e58b1SAlex Bennée 
28486e58b1SAlex Bennée     return 0;
29486e58b1SAlex Bennée }
30