riscv-openocd/src/target/espressif/esp_semihosting.h

56 lines
2.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0-or-later */
/***************************************************************************
* Semihosting API for Espressif chips *
* Copyright (C) 2022 Espressif Systems Ltd. *
***************************************************************************/
#ifndef OPENOCD_TARGET_ESP_SEMIHOSTING_H
#define OPENOCD_TARGET_ESP_SEMIHOSTING_H
/* Legacy syscalls */
#define ESP_SYS_DRV_INFO_LEGACY 0xE0
/* syscalls compatible to ARM standard */
#define ESP_SEMIHOSTING_SYS_DRV_INFO 0x100
#define ESP_SEMIHOSTING_SYS_APPTRACE_INIT 0x101
#define ESP_SEMIHOSTING_SYS_DEBUG_STUBS_INIT 0x102
#define ESP_SEMIHOSTING_SYS_BREAKPOINT_SET 0x103
#define ESP_SEMIHOSTING_SYS_WATCHPOINT_SET 0x104
#define ESP_SEMIHOSTING_SYS_SEEK 0x105 /* custom lseek with whence */
/* not implemented yet */
#define ESP_SEMIHOSTING_SYS_MKDIR 0x106
#define ESP_SEMIHOSTING_SYS_OPENDIR 0x107
#define ESP_SEMIHOSTING_SYS_READDIR 0x108
#define ESP_SEMIHOSTING_SYS_READDIR_R 0x109
#define ESP_SEMIHOSTING_SYS_SEEKDIR 0x10A
#define ESP_SEMIHOSTING_SYS_TELLDIR 0x10B
#define ESP_SEMIHOSTING_SYS_CLOSEDIR 0x10C
#define ESP_SEMIHOSTING_SYS_RMDIR 0x10D
#define ESP_SEMIHOSTING_SYS_ACCESS 0x10E
#define ESP_SEMIHOSTING_SYS_TRUNCATE 0x10F
#define ESP_SEMIHOSTING_SYS_UTIME 0x110
#define ESP_SEMIHOSTING_SYS_FSTAT 0x111
#define ESP_SEMIHOSTING_SYS_STAT 0x112
#define ESP_SEMIHOSTING_SYS_FSYNC 0x113
#define ESP_SEMIHOSTING_SYS_LINK 0x114
#define ESP_SEMIHOSTING_SYS_UNLINK 0x115
/**
* Semihost calls handling operations.
*/
struct esp_semihost_ops {
/** Callback called before handling semihost call */
int (*prepare)(struct target *target);
};
struct esp_semihost_data {
bool need_resume;
struct esp_semihost_ops *ops;
};
int esp_semihosting_common(struct target *target);
int esp_semihosting_basedir_command(struct command_invocation *cmd);
#endif /* OPENOCD_TARGET_ESP_SEMIHOSTING_H */