NSUKit 1.4.0
板卡级统一交互接口
载入中...
搜索中...
未找到
sim_interface.h
浏览该文件的文档.
1//
2// Created by 56585 on 2023/8/17.
3//
4
5#ifndef NSUKIT_SIM_INTERFACE_H
6#define NSUKIT_SIM_INTERFACE_H
7
8#include "base_itf.h"
9
10
11namespace nsukit {
13 protected:
14 int sim_target = 0;
15 float simTimeout = 0;
16
17 public:
18 SimCmdUItf();
19
20 ~SimCmdUItf() override;
21
22 nsukitStatus_t accept(nsuInitParam_t *param) override;
23
24 nsukitStatus_t close() override;
25
26 nsukitStatus_t set_timeout(float s) override;
27
28 nsukitStatus_t write(nsuRegAddr_t addr, nsuRegValue_t value) override;
29
30 nsukitStatus_t read(nsuRegAddr_t addr, nsuRegValue_t *buf) override;
31
32 nsukitStatus_t send_bytes(nsuBytes_t &bytes) override;
33
34 nsukitStatus_t send_bytes(nsuCharBuf_p bytes, nsuSize_t length) override;
35
36 nsukitStatus_t recv_bytes(nsuSize_t size, nsuCharBuf_p buf) override;
37 };
38
39
41 protected:
42 struct DMAMemory {
43 nsuStreamLen_t length = 0;
44 bool self_malloc = false;
45 nsuVoidBuf_p buffer = nullptr;
46 };
47 int sim_target = 0;
48 void (*sim_stream_func)(nsuCharBuf_p buf, nsuSize_t length);
49
50 std::map<nsuMemory_p, DMAMemory *> fdMap;
51 public:
53
54 ~SimStreamUItf() override = default;
55
61 nsukitStatus_t accept(nsuInitParam_t *param) override;
62
67 nsukitStatus_t close() override;
68
74 nsukitStatus_t set_timeout(float s) override;
75
82 nsuMemory_p alloc_buffer(nsuStreamLen_t length, nsuVoidBuf_p buf = nullptr) override;
83
89 nsukitStatus_t free_buffer(nsuMemory_p fd) override;
90
97 nsuVoidBuf_p get_buffer(nsuMemory_p fd, nsuStreamLen_t length) override;
98
108 open_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset = 0) override;
109
119 open_recv(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset = 0) override;
120
127 nsukitStatus_t wait_stream(nsuMemory_p fd, float timeout = 1.) override;
128
134 nsukitStatus_t break_stream(nsuMemory_p fd) override;
135
148 stream_recv(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset = 0,
149 bool(*stop_event) () = nullptr, float timeout = 5., int flag = 1) override;
150
163 stream_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset = 0,
164 bool(*stop_event) () = nullptr, float timeout = 5., int flag = 1) override;
165 };
166}
167
168#endif //NSUKIT_SIM_INTERFACE_H
~SimStreamUItf() override=default
std::map< nsuMemory_p, DMAMemory * > fdMap
Definition: sim_interface.h:50
DLLEXTERN typedef nsuSize_t nsuStreamLen_t
Definition: type.h:88
nsukitStatus_t
Definition: type.h:53
DLLEXTERN typedef size_t nsuSize_t
Definition: type.h:87
DLLEXTERN typedef void * nsuVoidBuf_p
Definition: type.h:83
#define NSU_DLLEXPORT
Definition: type.h:18
DLLEXTERN typedef void * nsuMemory_p
Definition: type.h:86
DLLEXTERN typedef char * nsuCharBuf_p
Definition: type.h:82
DLLEXTERN typedef std::vector< char > nsuBytes_t
Definition: type.h:81
DLLEXTERN typedef uint32_t nsuRegValue_t
Definition: type.h:90
DLLEXTERN typedef uint8_t nsuChnlNum_t
Definition: type.h:85
DLLEXTERN typedef uint32_t nsuRegAddr_t
Definition: type.h:89