aboutsummaryrefslogtreecommitdiff
path: root/src/target/semihosting_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/target/semihosting_common.h')
-rw-r--r--src/target/semihosting_common.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/target/semihosting_common.h b/src/target/semihosting_common.h
index 6eb9ca2..459faf6 100644
--- a/src/target/semihosting_common.h
+++ b/src/target/semihosting_common.h
@@ -26,6 +26,7 @@
#include <stdbool.h>
#include <time.h>
#include "helper/replacements.h"
+#include <server/server.h>
/*
* According to:
@@ -95,6 +96,13 @@ enum semihosting_reported_exceptions {
ADP_STOPPED_RUN_TIME_ERROR = ((2 << 16) + 35),
};
+enum semihosting_redirect_config {
+ SEMIHOSTING_REDIRECT_CFG_NONE,
+ SEMIHOSTING_REDIRECT_CFG_DEBUG,
+ SEMIHOSTING_REDIRECT_CFG_STDIO,
+ SEMIHOSTING_REDIRECT_CFG_ALL,
+};
+
struct target;
/*
@@ -105,6 +113,15 @@ struct semihosting {
/** A flag reporting whether semihosting is active. */
bool is_active;
+ /** Semihosting STDIO file descriptors */
+ int stdin_fd, stdout_fd, stderr_fd;
+
+ /** redirection configuration, NONE by default */
+ enum semihosting_redirect_config redirect_cfg;
+
+ /** Handle to redirect semihosting print via tcp */
+ struct connection *tcp_connection;
+
/** A flag reporting whether semihosting fileio is active. */
bool is_fileio;