0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035 #ifndef ATMI_SHM_H
0036 #define ATMI_SHM_H
0037
0038 #ifdef __cplusplus
0039 extern "C" {
0040 #endif
0041
0042
0043 #include <ndrxdcmn.h>
0044 #include <sys/sem.h>
0045 #include <nstd_shm.h>
0046
0047
0048
0049
0050 #define NDRX_SHM_LEV_SVC 0x01
0051 #define NDRX_SHM_LEV_SRV 0x02
0052 #define NDRX_SHM_LEV_BR 0x04
0053
0054 #define NDRX_SHM_BR_CONNECTED 0x01
0055
0056
0057
0058 extern NDRX_API int G_max_svcs;
0059 extern NDRX_API ndrx_shm_t G_svcinfo;
0060 extern NDRX_API int G_max_servers;
0061 extern NDRX_API ndrx_shm_t G_srvinfo;
0062
0063 extern NDRX_API ndrx_shm_t ndrx_G_routcrit;
0064 extern NDRX_API ndrx_shm_t ndrx_G_routsvc;
0065
0066
0067
0068 extern NDRX_API int ndrx_shm_init(char *q_prefix, int max_servers, int max_svcs,
0069 int rtcrtmax, int rtsvcmax);
0070 extern NDRX_API int ndrxd_shm_close_all(void);
0071 extern NDRX_API void ndrxd_shm_srv_fork_status(int srvid, unsigned execerr);
0072 extern NDRX_API int ndrxd_shm_delete(void);
0073 extern NDRX_API int ndrx_shm_open_all(int lev, int create);
0074 extern NDRX_API int ndrx_shm_get_svc(char *svc, char *send_q, int *is_bridge,
0075 int *have_shm);
0076 extern NDRX_API int ndrx_shm_get_srvs(char *svc, ndrx_shm_resid_t **srvlist, int *len);
0077 extern NDRX_API int _ndrx_shm_get_svc(char *svc, int *pos, int doing_install,
0078 int *p_install_cmd);
0079 extern NDRX_API int ndrx_shm_get_svc_count(void);
0080 extern NDRX_API int ndrx_shm_install_svc(char *svc, int flags, int resid);
0081 extern NDRX_API int ndrx_shm_install_svc_br(char *svc, int flags,
0082 int is_bridge, int nodeid, int count, char mode, int resid);
0083 extern NDRX_API void ndrxd_shm_uninstall_svc(char *svc, int *last, int resid);
0084 extern NDRX_API shm_srvinfo_t* ndrxd_shm_getsrv(int srvid);
0085 extern NDRX_API void ndrxd_shm_resetsrv(int srvid);
0086
0087 extern NDRX_API int ndrx_shm_birdge_set_flags(int nodeid, int flags, int op_end);
0088 extern NDRX_API int ndrx_shm_bridge_disco(int nodeid);
0089 extern NDRX_API int ndrx_shm_bridge_connected(int nodeid);
0090 extern NDRX_API int ndrx_shm_bridge_is_connected(int nodeid);
0091 extern NDRX_API int ndrx_shm_birdge_getnodesconnected(char *outputbuf);
0092
0093
0094 extern NDRX_API int ndrxd_sem_init(char *q_prefix);
0095 extern NDRX_API int ndrx_sem_attach(ndrx_sem_t *sem);
0096 extern NDRX_API int ndrx_sem_open_all(int create);
0097 extern NDRX_API int ndrxd_sem_close_all(void);
0098 extern NDRX_API int ndrxd_sem_delete(void);
0099 extern NDRX_API void ndrxd_sem_delete_with_init(char *q_prefix);
0100 extern NDRX_API int ndrx_sem_attach_all(void);
0101 extern NDRX_API int ndrx_lock_svc_op(const char *msg);
0102 extern NDRX_API int ndrx_unlock_svc_op(const char *msg);
0103
0104 extern NDRX_API int ndrx_lock_svc_nm(char *svcnm, const char *msg, int typ);
0105 extern NDRX_API int ndrx_unlock_svc_nm(char *svcnm, const char *msg, int typ);
0106
0107 #ifdef __cplusplus
0108 }
0109 #endif
0110
0111 #endif
0112
0113