22 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
31 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
42 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
47 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
52 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
57 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
68 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
80 return nsukitStatus_t::NSUKIT_STATUS_INVALID_VALUE;
83 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
90 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
95 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
103 bool self_malloc =
false;
104 if (buf ==
nullptr) {
105 buf = malloc(length);
108 auto memory =
new DMAMemory{length, self_malloc, buf};
109 fdMap[memory] = memory;
115 return nsukitStatus_t::NSUKIT_STATUS_INVALID_VALUE;
117 auto memory =
fdMap[fd];
119 if (memory->self_malloc) {
120 free(memory->buffer);
123 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
127 return fdMap[fd]->buffer;
141 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
145 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
150 bool (*stop_event)(),
float timeout,
int flag) {
153 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
158 bool (*stop_event)(),
float timeout,
int flag) {
159 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
virtual nsukitStatus_t open_recv(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0)
virtual nsukitStatus_t open_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0)
nsukitStatus_t set_timeout(float s) override
nsukitStatus_t accept(nsuInitParam_t *param) override
nsukitStatus_t recv_bytes(nsuSize_t size, nsuCharBuf_p buf) override
nsukitStatus_t send_bytes(nsuBytes_t &bytes) override
nsukitStatus_t read(nsuRegAddr_t addr, nsuRegValue_t *buf) override
nsukitStatus_t close() override
nsukitStatus_t write(nsuRegAddr_t addr, nsuRegValue_t value) override
nsuVoidBuf_p get_buffer(nsuMemory_p fd, nsuStreamLen_t length) override
nsuMemory_p alloc_buffer(nsuStreamLen_t length, nsuVoidBuf_p buf=nullptr) override
nsukitStatus_t wait_stream(nsuMemory_p fd, float timeout=1.) override
nsukitStatus_t break_stream(nsuMemory_p fd) override
nsukitStatus_t free_buffer(nsuMemory_p fd) override
nsukitStatus_t open_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0) override
nsukitStatus_t accept(nsuInitParam_t *param) override
nsukitStatus_t close() override
std::map< nsuMemory_p, DMAMemory * > fdMap
nsukitStatus_t set_timeout(float s) override
void(* sim_stream_func)(nsuCharBuf_p buf, nsuSize_t length)
nsukitStatus_t open_recv(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0) override
nsukitStatus_t stream_recv(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0, bool(*stop_event)()=nullptr, float timeout=5., int flag=1) override
nsukitStatus_t stream_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0, bool(*stop_event)()=nullptr, float timeout=5., int flag=1) override
virtual nsukitStatus_t set_timeout(float s)
void(* sim_stream_func)(nsuCharBuf_p buf, nsuSize_t length)
向输入的内存中写入模拟数据的函数
DLLEXTERN typedef nsuSize_t nsuStreamLen_t
DLLEXTERN typedef size_t nsuSize_t
DLLEXTERN typedef void * nsuVoidBuf_p
DLLEXTERN typedef void * nsuMemory_p
DLLEXTERN typedef char * nsuCharBuf_p
DLLEXTERN typedef std::vector< char > nsuBytes_t
DLLEXTERN typedef uint32_t nsuRegValue_t
DLLEXTERN typedef uint8_t nsuChnlNum_t
DLLEXTERN typedef uint32_t nsuRegAddr_t