5 #define UJSON_SERDE_IMPL 1
6 #include "sw/device/lib/testing/json/mem.h"
9 #include "sw/device/lib/testing/test_framework/ujson_ottf.h"
11 #define MODULE_ID MAKE_MODULE_ID('j', 's', 'm')
15 mem_read32_resp_t resp;
16 TRY(UJSON_WITH_CRC(ujson_deserialize_mem_read32_req_t, uj, &op));
17 if ((op.address %
sizeof(uint32_t)) != 0) {
18 return INVALID_ARGUMENT();
20 resp.value =
read_32((
void *)op.address);
21 return RESP_OK(ujson_serialize_mem_read32_resp_t, uj, &resp);
27 TRY(UJSON_WITH_CRC(ujson_deserialize_mem_read_req_t, uj, &op));
28 if (op.data_len >
sizeof(resp.data)) {
29 return INVALID_ARGUMENT();
31 memcpy(resp.data, (
void *)op.address, op.data_len);
32 resp.data_len = op.data_len;
33 return RESP_OK(ujson_serialize_mem_read_resp_t, uj, &resp);
38 TRY(UJSON_WITH_CRC(ujson_deserialize_mem_write32_req_t, uj, &op));
39 if ((op.address %
sizeof(uint32_t)) != 0) {
40 return INVALID_ARGUMENT();
42 write_32(op.value, (
void *)op.address);
43 return RESP_OK_STATUS(uj);
48 TRY(UJSON_WITH_CRC(ujson_deserialize_mem_write_req_t, uj, &op));
49 if (op.data_len >
sizeof(op.data)) {
50 return INVALID_ARGUMENT();
52 memcpy((
void *)op.address, op.data, op.data_len);
53 return RESP_OK_STATUS(uj);