version 1.27.2.2, 2015/07/02 17:52:52
|
version 1.29.4.2, 2025/03/31 12:18:39
|
Line 12 terms:
|
Line 12 terms:
|
All of the documentation and software included in the ELWIX and AITNET |
All of the documentation and software included in the ELWIX and AITNET |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
|
|
Copyright 2004 - 2015 | Copyright 2004 - 2025 |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
|
|
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
Line 48 SUCH DAMAGE.
|
Line 48 SUCH DAMAGE.
|
|
|
|
|
#include <assert.h> |
#include <assert.h> |
//#include <stdlib.h> |
|
//#include <string.h> |
|
//#include <errno.h> |
|
//#include <sys/types.h> |
|
//#include <sys/param.h> |
|
//#if !defined(__NetBSD__) |
|
//#include <sys/limits.h> |
|
//#endif |
|
//#include <sys/socket.h> |
|
#include <pthread.h> |
#include <pthread.h> |
#include <sys/queue.h> |
#include <sys/queue.h> |
#include <aitrpc_pkt.h> |
#include <aitrpc_pkt.h> |
Line 83 typedef struct tagRPCFunc {
|
Line 74 typedef struct tagRPCFunc {
|
void *func_parent; |
void *func_parent; |
|
|
SLIST_ENTRY(tagRPCFunc) func_next; |
SLIST_ENTRY(tagRPCFunc) func_next; |
AVL_ENTRY(tagRPCFunc) func_node; | RB_ENTRY(tagRPCFunc) func_node; |
} rpc_func_t; |
} rpc_func_t; |
#define RPC_FUNC_SERVER(x) ((rpc_srv_t*) (x)->func_parent) |
#define RPC_FUNC_SERVER(x) ((rpc_srv_t*) (x)->func_parent) |
|
|
Line 92 typedef struct tagRPCFuncs {
|
Line 83 typedef struct tagRPCFuncs {
|
pthread_mutex_t mtx; |
pthread_mutex_t mtx; |
|
|
struct tagRPCFunc *slh_first; |
struct tagRPCFunc *slh_first; |
struct tagRPCFunc *avlh_root; | struct tagRPCFunc *rbh_root; |
} rpc_funcs_t; |
} rpc_funcs_t; |
#define RPC_FUNCS_LOCK(x) pthread_mutex_lock(&(x)->mtx) |
#define RPC_FUNCS_LOCK(x) pthread_mutex_lock(&(x)->mtx) |
#define RPC_FUNCS_UNLOCK(x) pthread_mutex_unlock(&(x)->mtx) |
#define RPC_FUNCS_UNLOCK(x) pthread_mutex_unlock(&(x)->mtx) |
#define RPC_FUNCS_ISEMPTY(x) AVL_EMPTY((x)) | #define RPC_FUNCS_ISEMPTY(x) RB_EMPTY((x)) |
|
|
|
|
/* BLOB register element */ |
/* BLOB register element */ |
Line 154 typedef int (*rpc_callback_t)(rpc_cli_t *, struct tagR
|
Line 145 typedef int (*rpc_callback_t)(rpc_cli_t *, struct tagR
|
#define RPC_CALL_STDARGS RPC_CALL_ARGS(cli, rpc, iv) |
#define RPC_CALL_STDARGS RPC_CALL_ARGS(cli, rpc, iv) |
|
|
|
|
|
/* |
|
* rpc_srv_DispatchSignal() - Enable/Disable Signal dispatcher for RPC scheduler |
|
* |
|
* @x = RPC server instance |
|
* @y = Enable or =0 Disable |
|
* return: 0 enabled signal dispatcher. See schedSignalDispatch() in libaitsched |
|
*/ |
|
#define rpc_srv_DispatchSignal(x, y) schedSignalDispatch((x)->srv_root, (y)) |
|
|
/* ----------------------------------------------------------------------- */ |
/* ----------------------------------------------------------------------- */ |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
/* |
/* |
* rpc_register_srvPing() - Register ping service function |
* rpc_register_srvPing() - Register ping service function |
* |
* |
Line 389 int rpc_srv_sendBLOB(rpc_cli_t * __restrict cli, rpc_b
|
Line 393 int rpc_srv_sendBLOB(rpc_cli_t * __restrict cli, rpc_b
|
*/ |
*/ |
int rpc_srv_recvBLOB(rpc_cli_t * __restrict cli, rpc_blob_t * __restrict blob); |
int rpc_srv_recvBLOB(rpc_cli_t * __restrict cli, rpc_blob_t * __restrict blob); |
|
|
|
|
|
/* |
|
* rpc_srv_Return() - Prepare IPC return answer to RPC client |
|
* |
|
* @c = RPC client |
|
* return: number of arguments in response |
|
*/ |
|
int rpc_srv_Return(rpc_cli_t *c); |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
#endif |
#endif |