target: add Espressif ESP32-S3 basic support
[openocd.git] / src / target / semihosting_common.h
index 8fb5e0c3a4c84040b3f1dd03b086a3512be2fda2..404080f023401b81f0871c58900afc286c5e17f5 100644 (file)
@@ -25,6 +25,8 @@
 #include <stdint.h>
 #include <stdbool.h>
 #include <time.h>
+#include "helper/replacements.h"
+#include <server/server.h>
 
 /*
  * According to:
@@ -74,8 +76,14 @@ enum semihosting_operation_numbers {
        SEMIHOSTING_SYS_WRITE = 0x05,
        SEMIHOSTING_SYS_WRITEC = 0x03,
        SEMIHOSTING_SYS_WRITE0 = 0x04,
+       SEMIHOSTING_USER_CMD_0x100 = 0x100, /* First user cmd op code */
+       SEMIHOSTING_USER_CMD_0x107 = 0x107, /* Last supported user cmd op code */
+       SEMIHOSTING_USER_CMD_0x1FF = 0x1FF, /* Last user cmd op code */
 };
 
+/** Maximum allowed Tcl command segment length in bytes*/
+#define SEMIHOSTING_MAX_TCL_COMMAND_FIELD_LENGTH (1024 * 1024)
+
 /*
  * Codes used by SEMIHOSTING_SYS_EXIT (formerly
  * SEMIHOSTING_REPORT_EXCEPTION).
@@ -88,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;
 
 /*
@@ -98,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;
 
@@ -152,6 +176,9 @@ struct semihosting {
        /** The current time when 'execution starts' */
        clock_t setup_time;
 
+       /** Base directory for semihosting I/O operations. */
+       char *basedir;
+
        int (*setup)(struct target *target, int enable);
        int (*post_result)(struct target *target);
 };

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)