| /* SPDX-License-Identifier: MIT */ |
| |
| #ifndef __UARTPROXY_H__ |
| #define __UARTPROXY_H__ |
| |
| #include "iodev.h" |
| |
| extern iodev_id_t uartproxy_iodev; |
| |
| typedef enum _uartproxy_start_reason_t { |
| START_BOOT, |
| START_EXCEPTION, |
| START_EXCEPTION_LOWER, |
| START_HV, |
| } uartproxy_boot_reason_t; |
| |
| typedef enum _uartproxy_exc_code_t { |
| EXC_SYNC, |
| EXC_IRQ, |
| EXC_FIQ, |
| EXC_SERROR, |
| } uartproxy_exc_code_t; |
| |
| typedef enum _uartproxy_exc_ret_t { |
| EXC_RET_UNHANDLED = 1, |
| EXC_RET_HANDLED = 2, |
| EXC_EXIT_GUEST = 3, |
| } uartproxy_exc_ret_t; |
| |
| typedef enum _uartproxy_event_type_t { |
| EVT_MMIOTRACE = 1, |
| EVT_IRQTRACE = 2, |
| } uartproxy_event_type_t; |
| |
| struct uartproxy_msg_start { |
| u32 reason; |
| u32 code; |
| void *info; |
| void *reserved; |
| }; |
| |
| int uartproxy_run(struct uartproxy_msg_start *start); |
| void uartproxy_send_event(u16 event_type, void *data, u16 length); |
| |
| #endif |