56 lines
2.3 KiB
C
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 */
|