+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
/***************************************************************************
* Copyright (C) 2018 by Liviu Ionescu *
* <ilg@livius.net> *
* *
* Copyright (C) 2009 by Marvell Technology Group Ltd. *
* Written by Nicolas Pitre <nico@marvell.com> *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef OPENOCD_TARGET_SEMIHOSTING_COMMON_H
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 */
+ SEMIHOSTING_ARM_RESERVED_START = 0x32,
+ SEMIHOSTING_ARM_RESERVED_END = 0xFF,
+ 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*/
int (*post_result)(struct target *target);
};
+/**
+ * @brief Convert the syscall opcode to a human-readable string
+ * @param[in] opcode Syscall opcode
+ * @return String representation of syscall opcode
+ */
+const char *semihosting_opcode_to_str(uint64_t opcode);
+
int semihosting_common_init(struct target *target, void *setup,
void *post_result);
int semihosting_common(struct target *target);
size_t index,
uint8_t *fields);
+extern const struct command_registration semihosting_common_handlers[];
+
#endif /* OPENOCD_TARGET_SEMIHOSTING_COMMON_H */