Line data Source code
1 0 : /* 2 : * Copyright (c) 2024 Intel Corporation 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : #ifndef SHELL_ADSP_MEMORY_WINDOW_H__ 8 : #define SHELL_ADSP_MEMORY_WINDOW_H__ 9 : 10 : #include <zephyr/kernel.h> 11 : #include <zephyr/shell/shell.h> 12 : 13 : #ifdef __cplusplus 14 : extern "C" { 15 : #endif 16 : 17 0 : extern const struct shell_transport_api shell_adsp_memory_window_transport_api; 18 : 19 : struct sys_winstream; 20 : 21 : /** Memwindow based shell transport. */ 22 1 : struct shell_adsp_memory_window { 23 : /** Handler function registered by shell. */ 24 1 : shell_transport_handler_t shell_handler; 25 : 26 0 : struct k_timer timer; 27 : 28 : /** Context registered by shell. */ 29 1 : void *shell_context; 30 : 31 : /** Receive winstream object */ 32 1 : struct sys_winstream *ws_rx; 33 : 34 : /** Transmit winstream object */ 35 1 : struct sys_winstream *ws_tx; 36 : 37 : /** Last read sequence number */ 38 1 : uint32_t read_seqno; 39 : }; 40 : 41 0 : #define SHELL_ADSP_MEMORY_WINDOW_DEFINE(_name) \ 42 : static struct shell_adsp_memory_window _name##_shell_adsp_memory_window;\ 43 : struct shell_transport _name = { \ 44 : .api = &shell_adsp_memory_window_transport_api, \ 45 : .ctx = &_name##_shell_adsp_memory_window, \ 46 : } 47 : 48 : /** 49 : * @brief This function provides pointer to shell ADSP memory window backend instance. 50 : * 51 : * Function returns pointer to the shell ADSP memory window instance. This instance can be 52 : * next used with shell_execute_cmd function in order to test commands behavior. 53 : * 54 : * @returns Pointer to the shell instance. 55 : */ 56 1 : const struct shell *shell_backend_adsp_memory_window_get_ptr(void); 57 : 58 : #ifdef __cplusplus 59 : } 60 : #endif 61 : 62 : #endif /* SHELL_ADSP_MEMORY_WINDOW_H__ */