2023-09-22 00:14:27 +08:00
|
|
|
|
|
|
|
|
#include "u_rpc.h"
|
2023-09-22 21:56:15 +08:00
|
|
|
#include <string.h>
|
|
|
|
|
#include <stdio.h>
|
2023-09-22 00:14:27 +08:00
|
|
|
typedef struct test_svr
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
} test_svr_t;
|
|
|
|
|
|
2023-09-22 21:56:15 +08:00
|
|
|
static test_svr_t test;
|
|
|
|
|
|
|
|
|
|
RPC_GENERATION_OP1(test_svr_t, 0, register, rpc_int_t, RPC_DIR_IN, RPC_TYPE_DATA, var0)
|
|
|
|
|
{
|
|
|
|
|
printf("var0 val is %d\n", var0->data);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
// RPC_GENERATION_DISPATCH1(test_svr_t, 0, register, rpc_int_t, RPC_DIR_IN, RPC_TYPE_DATA, var0)
|
|
|
|
|
msg_tag_t test_svr_t_register_dispatch(test_svr_t *obj, msg_tag_t tag, ipc_msg_t *ipc_msg)
|
|
|
|
|
{
|
|
|
|
|
rpc_int_t var0;
|
|
|
|
|
size_t op_val;
|
|
|
|
|
uint8_t *value = (uint8_t *)(ipc_msg->msg_buf);
|
|
|
|
|
int off = 0;
|
|
|
|
|
rpc_var_rpc_int_t_init(&var0);
|
|
|
|
|
op_val = *((typeof(0) *)value);
|
|
|
|
|
off += sizeof(typeof(0));
|
|
|
|
|
off = rpc_align(off, __alignof(typeof(0)));
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
if (1 == 1)
|
|
|
|
|
{
|
|
|
|
|
if (1 == 1 || 1 == 4)
|
|
|
|
|
{
|
|
|
|
|
int ret = rpc_svr_buf_to_msg_rpc_int_t(&var0, (uint8_t *)(value), off, tag.msg_buf_len * (sizeof(void *)));
|
|
|
|
|
if (ret < 0)
|
|
|
|
|
{
|
|
|
|
|
return ((msg_tag_t){.flags = (0), .msg_buf_len = (0), .map_buf_len = (0), .prot = (ret)});
|
|
|
|
|
}
|
|
|
|
|
off = ret;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} while (0);
|
|
|
|
|
short ret_val = test_svr_t_register_op(obj, &var0);
|
|
|
|
|
if (ret_val < 0)
|
|
|
|
|
{
|
|
|
|
|
return ((msg_tag_t){.flags = (0), .msg_buf_len = (0), .map_buf_len = (0), .prot = (ret_val)});
|
|
|
|
|
}
|
|
|
|
|
off = 0;
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
if (1 == 1)
|
|
|
|
|
{
|
|
|
|
|
if (1 == 2 || 1 == 4)
|
|
|
|
|
{
|
|
|
|
|
int ret = rpc_svr_msg_to_buf_rpc_int_t(&var0, (uint8_t *)(value), off);
|
|
|
|
|
if (ret < 0)
|
|
|
|
|
{
|
|
|
|
|
return ((msg_tag_t){.flags = (0), .msg_buf_len = (0), .map_buf_len = (0), .prot = (ret)});
|
|
|
|
|
}
|
|
|
|
|
off = ret;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} while (0);
|
|
|
|
|
return ((msg_tag_t){.flags = (0), .msg_buf_len = ((((off) / ((sizeof(void *)))) + (((off) % ((sizeof(void *)))) ? 1 : 0))), .map_buf_len = (0), .prot = (ret_val)});
|
|
|
|
|
}
|
|
|
|
|
// RPC_GENERATION_CALL1(test_svr_t, 0, register, rpc_int_t, RPC_DIR_IN, RPC_TYPE_DATA, var0)
|
|
|
|
|
msg_tag_t test_svr_t_register_call(obj_handler_t hd, rpc_int_t *var0)
|
|
|
|
|
{
|
|
|
|
|
void *buf;
|
|
|
|
|
ipc_msg_t *msg_ipc;
|
|
|
|
|
thread_msg_buf_get(2, (umword_t *)(&buf), ((void *)0));
|
|
|
|
|
msg_ipc = (ipc_msg_t *)buf;
|
|
|
|
|
int off = 0;
|
|
|
|
|
int ret = -1;
|
|
|
|
|
int op_val = 0;
|
|
|
|
|
rpc_memcpy(msg_ipc->msg_buf, &op_val, sizeof(op_val));
|
|
|
|
|
off += rpc_align(sizeof(op_val), __alignof(0));
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
if (1 == 1)
|
|
|
|
|
{
|
|
|
|
|
if (1 == 1 || 1 == 4)
|
|
|
|
|
{
|
|
|
|
|
int ret = rpc_cli_msg_to_buf_rpc_int_t(var0, (uint8_t *)((uint8_t *)msg_ipc->msg_buf), off);
|
|
|
|
|
if (ret < 0)
|
|
|
|
|
{
|
|
|
|
|
return ((msg_tag_t){.flags = (0), .msg_buf_len = (0), .map_buf_len = (0), .prot = (ret)});
|
|
|
|
|
}
|
|
|
|
|
off = ret;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} while (0);
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
if (1 == 2)
|
|
|
|
|
{
|
|
|
|
|
if (1 == 1 || 1 == 4)
|
|
|
|
|
{
|
|
|
|
|
int ret = rpc_cli_msg_to_buf_rpc_int_t(var0, (uint8_t *)((uint8_t *)msg_ipc->msg_buf), off);
|
|
|
|
|
if (ret < 0)
|
|
|
|
|
{
|
|
|
|
|
return ((msg_tag_t){.flags = (0), .msg_buf_len = (0), .map_buf_len = (0), .prot = (ret)});
|
|
|
|
|
}
|
|
|
|
|
off = ret;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} while (0);
|
|
|
|
|
// msg_tag_t tag = ipc_call(hd, ((msg_tag_t){.flags = (0), .msg_buf_len = ((((off) / ((sizeof(void *)))) + (((off) % ((sizeof(void *)))) ? 1 : 0))), .map_buf_len = (0), .prot = (0)}), ipc_timeout_create2(0, 0));
|
|
|
|
|
msg_tag_t tag = test_svr_t_register_dispatch(&test, ((msg_tag_t){.flags = (0), .msg_buf_len = ((((off) / ((sizeof(void *)))) + (((off) % ((sizeof(void *)))) ? 1 : 0))), .map_buf_len = (0), .prot = (0)}), msg_ipc);
|
|
|
|
|
|
|
|
|
|
if (((int16_t)((tag).prot)) < 0)
|
|
|
|
|
{
|
|
|
|
|
return tag;
|
|
|
|
|
}
|
|
|
|
|
off = 0;
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
if (1 == 1)
|
|
|
|
|
{
|
|
|
|
|
if (1 == 2 || 1 == 4)
|
|
|
|
|
{
|
|
|
|
|
int ret = rpc_cli_buf_to_msg_rpc_int_t(var0, (uint8_t *)((uint8_t *)msg_ipc->msg_buf), off, tag.msg_buf_len * (sizeof(void *)));
|
|
|
|
|
if (ret < 0)
|
|
|
|
|
{
|
|
|
|
|
return ((msg_tag_t){.flags = (0), .msg_buf_len = (0), .map_buf_len = (0), .prot = (ret)});
|
|
|
|
|
}
|
|
|
|
|
off = ret;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} while (0);
|
|
|
|
|
return tag;
|
|
|
|
|
}
|
|
|
|
|
// msg_tag_t tag = test_svr_t_register_dispatch(&test, ((msg_tag_t){.flags = (0), .msg_buf_len = ((((off) / ((sizeof(void *)))) + (((off) % ((sizeof(void *)))) ? 1 : 0))), .map_buf_len = (0), .prot = (0)}), msg_ipc);
|
|
|
|
|
|
|
|
|
|
// RPC_GENERATION_CALL2(test_svr_t, 1, query,
|
|
|
|
|
// rpc_ref_array_uint32_t_uint8_t_32_t, RPC_DIR_IN, RPC_TYPE_DATA, var0, rpc_int_t, RPC_DIR_IN, RPC_TYPE_DATA, var1)
|
2023-09-22 00:14:27 +08:00
|
|
|
|
|
|
|
|
void rpc_test(void)
|
|
|
|
|
{
|
|
|
|
|
rpc_int_t var0 = {.data = 1};
|
|
|
|
|
msg_tag_t tag = test_svr_t_register_call(15, &var0);
|
|
|
|
|
|
|
|
|
|
rpc_ref_array_uint32_t_uint8_t_32_t str_tst = {
|
|
|
|
|
.data = "test",
|
|
|
|
|
.len = strlen("test") + 1};
|
|
|
|
|
|
2023-09-22 21:56:15 +08:00
|
|
|
// test_svr_t_query_call(15, &str_tst, &var0);
|
2023-09-22 00:14:27 +08:00
|
|
|
}
|