修复一个ipc传输的bug
This commit is contained in:
@@ -286,97 +286,8 @@ RPC_TYPE_DEF_ALL(int) //!< 定义所有的
|
||||
* @brief 定义一个32字节长度的数组
|
||||
*
|
||||
*/
|
||||
// RPC_ARRAY_DEF(uint32_t, uint8_t, 32)
|
||||
typedef struct rpc_array_uint32_t_uint8_t_32
|
||||
{
|
||||
uint32_t len;
|
||||
uint8_t data[32];
|
||||
} rpc_array_uint32_t_uint8_t_32_t;
|
||||
static inline int rpc_svr_msg_to_buf_rpc_array_uint32_t_uint8_t_32_t(rpc_array_uint32_t_uint8_t_32_t *d, uint8_t *buf, int len)
|
||||
{
|
||||
if (rpc_align(len, __alignof(d->len)) > 96)
|
||||
{
|
||||
return -1024;
|
||||
}
|
||||
len = rpc_align(len, __alignof(d->len));
|
||||
*((typeof(d->len) *)(&buf[len])) = d->len;
|
||||
if (rpc_align(len, __alignof(d->data[0]) + d->len * sizeof(d->data[0])) > 96)
|
||||
{
|
||||
return -1024;
|
||||
}
|
||||
len += sizeof(d->len);
|
||||
len = rpc_align(len, __alignof(d->data[0]));
|
||||
for (int i = 0; i < d->len * sizeof(d->data[0]); i++)
|
||||
{
|
||||
buf[i + len] = ((uint8_t *)(d->data))[i];
|
||||
}
|
||||
len += d->len * sizeof(d->data[0]);
|
||||
return len;
|
||||
}
|
||||
static inline int rpc_svr_buf_to_msg_rpc_array_uint32_t_uint8_t_32_t(rpc_array_uint32_t_uint8_t_32_t *d, uint8_t *buf, int len, int max)
|
||||
{
|
||||
if (rpc_align(len, __alignof(d->len)) > max)
|
||||
{
|
||||
return -1024;
|
||||
}
|
||||
len = rpc_align(len, __alignof(d->len));
|
||||
d->len = *((typeof(d->len) *)(&buf[len]));
|
||||
if (rpc_align(len, __alignof(d->data[0]) + d->len * sizeof(d->data[0])) > max)
|
||||
{
|
||||
return -1024;
|
||||
}
|
||||
len += sizeof(d->len);
|
||||
len = rpc_align(len, __alignof(d->data[0]));
|
||||
for (int i = 0; i < d->len * sizeof(d->data[0]); i++)
|
||||
{
|
||||
((uint8_t *)(d->data))[i] = buf[i + len];
|
||||
}
|
||||
len += d->len * sizeof(d->data[0]);
|
||||
return len;
|
||||
}
|
||||
static inline int rpc_cli_msg_to_buf_rpc_array_uint32_t_uint8_t_32_t(rpc_array_uint32_t_uint8_t_32_t *d, uint8_t *buf, int len)
|
||||
{
|
||||
if (rpc_align(len, __alignof(d->len)) > 96)
|
||||
{
|
||||
return -1024;
|
||||
}
|
||||
len = rpc_align(len, __alignof(d->len));
|
||||
*((typeof(d->len) *)(&buf[len])) = d->len;
|
||||
if (rpc_align(len, __alignof(d->data[0]) + d->len * sizeof(d->data[0])) > 96)
|
||||
{
|
||||
return -1024;
|
||||
}
|
||||
len += sizeof(d->len);
|
||||
len = rpc_align(len, __alignof(d->data[0]));
|
||||
for (int i = 0; i < d->len * sizeof(d->data[0]); i++)
|
||||
{
|
||||
buf[i + len] = ((uint8_t *)(d->data))[i];
|
||||
}
|
||||
len += d->len * sizeof(d->data[0]);
|
||||
return len;
|
||||
}
|
||||
static inline int rpc_cli_buf_to_msg_rpc_array_uint32_t_uint8_t_32_t(rpc_array_uint32_t_uint8_t_32_t *d, uint8_t *buf, int len, int max)
|
||||
{
|
||||
if (rpc_align(len, __alignof(d->len)) > max)
|
||||
{
|
||||
return -1024;
|
||||
}
|
||||
len = rpc_align(len, __alignof(d->len));
|
||||
d->len = *((typeof(d->len) *)(&buf[len]));
|
||||
if (rpc_align(len, __alignof(d->data[0]) + d->len * sizeof(d->data[0])) > max)
|
||||
{
|
||||
return -1024;
|
||||
}
|
||||
len += sizeof(d->len);
|
||||
len = rpc_align(len, __alignof(d->data[0]));
|
||||
for (int i = 0; i < d->len * sizeof(d->data[0]); i++)
|
||||
{
|
||||
((uint8_t *)(d->data))[i] = buf[i + len];
|
||||
}
|
||||
len += d->len * sizeof(d->data[0]);
|
||||
return len;
|
||||
}
|
||||
static inline void rpc_var_rpc_array_uint32_t_uint8_t_32_t_init(rpc_array_uint32_t_uint8_t_32_t *d) {}
|
||||
RPC_ARRAY_DEF(uint32_t, uint8_t, 32)
|
||||
|
||||
/**
|
||||
* @brief 引用类型的数组定义,数组的数据来自其它地方
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user