tty支持&vi完整支持
This commit is contained in:
@@ -922,7 +922,7 @@ RPC_TYPE_INIT_WITHOUT_IMPL(rpc_obj_handler_t_t)
|
||||
func4_op, func4_name, func5_op, func5_name, func6_op, func6_name, \
|
||||
func7_op, func7_name, func8_op, func8_name, func9_op, func9_name, \
|
||||
func10_op, func10_name, func11_op, func11_name, func12_op, func12_name, \
|
||||
func13_op, func13_name) \
|
||||
func13_op, func13_name) \
|
||||
msg_tag_t rpc_##struct_type##_dispatch(struct rpc_svr_obj *obj, msg_tag_t in_tag, ipc_msg_t *ipc_msg) \
|
||||
{ \
|
||||
msg_tag_t tag = msg_tag_init4(0, 0, 0, -EPROTO); \
|
||||
@@ -1210,6 +1210,121 @@ RPC_TYPE_INIT_WITHOUT_IMPL(rpc_obj_handler_t_t)
|
||||
} \
|
||||
return tag; \
|
||||
}
|
||||
#define RPC_DISPATCH19(struct_type, prot, op_type, func0_op, func0_name, func1_op, func1_name, \
|
||||
func2_op, func2_name, func3_op, func3_name, \
|
||||
func4_op, func4_name, func5_op, func5_name, func6_op, func6_name, \
|
||||
func7_op, func7_name, func8_op, func8_name, func9_op, func9_name, \
|
||||
func10_op, func10_name, func11_op, func11_name, func12_op, func12_name, \
|
||||
func13_op, func13_name, func14_op, func14_name, func15_op, func15_name, \
|
||||
func16_op, func16_name, func17_op, func17_name, func18_op, func18_name) \
|
||||
msg_tag_t rpc_##struct_type##_dispatch(struct rpc_svr_obj *obj, msg_tag_t in_tag, ipc_msg_t *ipc_msg) \
|
||||
{ \
|
||||
msg_tag_t tag = msg_tag_init4(0, 0, 0, -EPROTO); \
|
||||
size_t op_val; \
|
||||
\
|
||||
op_val = *((op_type *)(ipc_msg->msg_buf)); \
|
||||
switch (op_val) \
|
||||
{ \
|
||||
case func0_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func0_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func1_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func1_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func2_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func2_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func3_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func3_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func4_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func4_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func5_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func5_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func6_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func6_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func7_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func7_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func8_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func8_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func9_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func9_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func10_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func10_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func11_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func11_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func12_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func12_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func13_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func13_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func14_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func14_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func15_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func15_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func16_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func16_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func17_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func17_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
case func18_op: \
|
||||
{ \
|
||||
tag = struct_type##_##func18_name##_dispatch((struct_type *)obj, in_tag, ipc_msg); \
|
||||
} \
|
||||
break; \
|
||||
default: \
|
||||
break; \
|
||||
} \
|
||||
return tag; \
|
||||
}
|
||||
#include "u_rpc_1.h"
|
||||
#include "u_rpc_2.h"
|
||||
#include "u_rpc_3.h"
|
||||
|
||||
@@ -32,15 +32,13 @@ typedef struct meta
|
||||
bool_t is_init;
|
||||
} meta_t;
|
||||
|
||||
int rpc_meta_init(obj_handler_t tk, obj_handler_t *ret_ipc_hd);
|
||||
void meta_obj_init(void);
|
||||
int rpc_meta_init_def(obj_handler_t tk, obj_handler_t *ret_ipc_hd);
|
||||
int rpc_meta_init(meta_t *meta_obj, obj_handler_t tk_hd, obj_handler_t *ret_ipc_hd);
|
||||
void meta_obj_init_def(void);
|
||||
void meta_obj_init(meta_t *meta);
|
||||
void meta_unreg_svr_obj_raw(meta_t *meta, umword_t prot);
|
||||
void meta_unreg_svr_obj(umword_t prot);
|
||||
rpc_svr_obj_t *meta_find_svr_obj(umword_t prot);
|
||||
int meta_reg_svr_obj(rpc_svr_obj_t *svr_obj, umword_t prot);
|
||||
int meta_reg_svr_obj_raw(meta_t *meta, rpc_svr_obj_t *svr_obj, umword_t prot);
|
||||
int rpc_creaite_bind_ipc(obj_handler_t tk, void *obj, obj_handler_t *ipc_hd);
|
||||
#if 0
|
||||
void rpc_loop(void);
|
||||
int rpc_mtd_loop(void);
|
||||
#endif
|
||||
|
||||
@@ -9,4 +9,5 @@ typedef int (*sig_call_back)(pid_t pid, umword_t sig_val);
|
||||
void sig_init(void);
|
||||
int pm_sig_watch(pid_t pid, int flags);
|
||||
sig_call_back pm_sig_func_set(sig_call_back sig_func);
|
||||
int pm_sig_del_watch(pid_t pid, int flags);
|
||||
int pm_sig_del_watch(pid_t pid, int flags);
|
||||
int pm_waitpid(pid_t pid, umword_t *status);
|
||||
|
||||
Reference in New Issue
Block a user