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 #ifndef NDRXDCMN_H
0035 #define NDRXDCMN_H
0036
0037 #ifdef __cplusplus
0038 extern "C" {
0039 #endif
0040
0041
0042 #include <atmi_int.h>
0043 #include <sys/param.h>
0044 #include <nstopwatch.h>
0045 #include <atmi_int.h>
0046
0047
0048
0049
0050 #define NDRX_MAGIC 0x62327700L
0051
0052 #define CMD_ARG_MAX 2048
0053 #define RPLY_ERR_MSG_MAX 256
0054
0055
0056 #define NDRXD_COM_MIN 0
0057 #define NDRXD_COM_LDCF_RQ 0
0058 #define NDRXD_COM_LDCF_RP 1
0059 #define NDRXD_COM_START_RQ 2
0060 #define NDRXD_COM_START_RP 3
0061 #define NDRXD_COM_SVCINFO_RQ 4
0062 #define NDRXD_COM_SVCINFO_RP 5
0063 #define NDRXD_COM_PMNTIFY_RQ 6
0064 #define NDRXD_COM_PMNTIFY_RP 7
0065 #define NDRXD_COM_PSC_RQ 8
0066 #define NDRXD_COM_PSC_RP 9
0067 #define NDRXD_COM_STOP_RQ 10
0068 #define NDRXD_COM_STOP_RP 11
0069 #define NDRXD_COM_SRVSTOP_RQ 12
0070 #define NDRXD_COM_SRVSTOP_RP 13
0071 #define NDRXD_COM_AT_RQ 14
0072 #define NDRXD_COM_AT_RP 15
0073 #define NDRXD_COM_RELOAD_RQ 16
0074 #define NDRXD_COM_RELOAD_RP 17
0075 #define NDRXD_COM_TESTCFG_RQ 18
0076 #define NDRXD_COM_TESTCFG_RP 19
0077 #define NDRXD_COM_SRVINFO_RQ 20
0078 #define NDRXD_COM_SRVINFO_RP 21
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089 #define NDRXD_COM_SRVUNADV_RQ 22
0090 #define NDRXD_COM_SRVUNADV_RP 23
0091
0092 #define NDRXD_COM_XADUNADV_RQ 24
0093 #define NDRXD_COM_XADUNADV_RP 25
0094
0095 #define NDRXD_COM_NXDUNADV_RQ 26
0096 #define NDRXD_COM_NXDUNADV_RP 27
0097
0098 #define NDRXD_COM_SRVADV_RQ 28
0099 #define NDRXD_COM_SRVADV_RP 29
0100
0101 #define NDRXD_COM_XAPPM_RQ 30
0102 #define NDRXD_COM_XAPPM_RP 31
0103
0104 #define NDRXD_COM_XASHM_PSVC_RQ 32
0105 #define NDRXD_COM_XASHM_PSVC_RP 33
0106
0107 #define NDRXD_COM_XASHM_PSRV_RQ 34
0108 #define NDRXD_COM_XASHM_PSRV_RP 35
0109
0110 #define NDRXD_COM_NXDREADV_RQ 36
0111 #define NDRXD_COM_NXDREADV_RP 37
0112
0113 #define NDRXD_COM_XADREADV_RQ 38
0114 #define NDRXD_COM_XADREADV_RP 39
0115
0116 #define NDRXD_COM_XACABORT_RQ 40
0117 #define NDRXD_COM_XAABORT_RP 41
0118
0119 #define NDRXD_COM_BRCON_RQ 42
0120 #define NDRXD_COM_BRCON_RP 43
0121
0122 #define NDRXD_COM_BRDISCON_RQ 44
0123 #define NDRXD_COM_BRDISCON_RP 45
0124
0125 #define NDRXD_COM_BRREFERSH_RQ 46
0126 #define NDRXD_COM_BRREFERSH_RP 47
0127
0128 #define NDRXD_COM_BRCLOCK_RQ 48
0129 #define NDRXD_COM_BRCLOCK_RP 49
0130
0131 #define NDRXD_COM_SRVGETBRS_RQ 50
0132 #define NDRXD_COM_SRVGETBRS_RP 51
0133
0134 #define NDRXD_COM_SRVPING_RQ 52
0135 #define NDRXD_COM_SRVPING_RP 53
0136
0137 #define NDRXD_COM_SRELOAD_RQ 54
0138 #define NDRXD_COM_SRELOAD_RP 55
0139
0140 #define NDRXD_COM_XAPQ_RQ 56
0141 #define NDRXD_COM_XAPQ_RP 57
0142
0143 #define NDRXD_COM_PE_RQ 58
0144 #define NDRXD_COM_PE_RP 59
0145
0146 #define NDRXD_COM_SET_RQ 60
0147 #define NDRXD_COM_SET_RP 61
0148
0149 #define NDRXD_COM_UNSET_RQ 62
0150 #define NDRXD_COM_UNSET_RP 63
0151
0152 #define NDRXD_COM_SRELOADI_RQ 64
0153 #define NDRXD_COM_SRELOADI_RP 65
0154
0155 #define NDRXD_COM_APPCONFIG_RQ 66
0156 #define NDRXD_COM_APPCONFIG_RP 67
0157
0158 #define NDRXD_COM_DPING_RQ 68
0159 #define NDRXD_COM_DPING_RP 69
0160
0161 #define NDRXD_COM_DSLEEP_RQ 70
0162 #define NDRXD_COM_DSLEEP_RP 71
0163
0164 #define NDRXD_COM_BLIST_RQ 72
0165 #define NDRXD_COM_BLIST_RP 73
0166
0167 #define NDRXD_COM_BRCONINFO_RQ 74
0168 #define NDRXD_COM_BRCONINFO_RP 75
0169
0170 #define NDRXD_COM_MAX 75
0171
0172
0173 #define NDRXD_COM_SVQADMIN_PRIV NDRX_COM_SVQ_PRIV
0174
0175
0176 #define NDRXD_CTX_ANY -1
0177 #define NDRXD_CTX_NOCHG NDRXD_CTX_ANY
0178 #define NDRXD_CTX_ZERO 0
0179 #define NDRXD_CTX_START 1
0180 #define NDRXD_CTX_STOP 2
0181
0182
0183 #define MAX_SVC_PER_SVR 50
0184
0185 #define MAX_NDRXD_ERROR_LEN 2048
0186
0187 #define NDRXD_EMINVAL 0
0188 #define NDRXD_ESRVCIDDUP 1
0189 #define NDRXD_ESRVCIDINV 2
0190 #define NDRXD_EOS 3
0191 #define NDRXD_ECFGLDED 4
0192 #define NDRXD_ECFGINVLD 5
0193 #define NDRXD_EPMOD 6
0194 #define NDRXD_ESHMINIT 7
0195 #define NDRXD_NOTSTARTED 8
0196 #define NDRXD_ECMDNOTFOUND 9
0197 #define NDRXD_ENONICONTEXT 10
0198 #define NDRXD_EREBBINARYRUN 11
0199 #define NDRXD_EBINARYRUN 12
0200 #define NDRXD_ECONTEXT 13
0201 #define NDRXD_EINVPARAM 14
0202 #define NDRXD_EABORT 15
0203 #define NDRXD_EENVFAIL 16
0204 #define NDRXD_EINVAL 17
0205 #define NDRXD_ENORMAL 18
0206 #define NDRXD_ECFGDEFAULTS 19
0207 #define NDRXD_ECFGSERVER 20
0208 #define NDRXD_ECFGAPPCONFIG 21
0209 #define NDRXD_EACCES 22
0210 #define NDRXD_ESYNTAX 23
0211 #define NDRXD_ESYSTEM 24
0212 #define NDRXD_ENOCFGLD 25
0213 #define NDRXD_ENOENT 26
0214 #define NDRXD_EMAXVAL 26
0215
0216
0217 #define NDRXD_CALL_TYPE_GENERIC 0
0218 #define NDRXD_CALL_TYPE_PM_INFO 1
0219 #define NDRXD_CALL_TYPE_SVCINFO 2
0220 #define NDRXD_CALL_TYPE_PM_STARTING 3
0221 #define NDRXD_CALL_TYPE_PM_STARTED 4
0222 #define NDRXD_CALL_TYPE_PM_STOPPING 5
0223 #define NDRXD_CALL_TYPE_PM_STOPPED 6
0224 #define NDRXD_CALL_TYPE_PM_RELERR 7
0225 #define NDRXD_CALL_TYPE_PM_PPM 8
0226 #define NDRXD_CALL_TYPE_PM_SHM_PSVC 9
0227 #define NDRXD_CALL_TYPE_PM_SHM_PSRV 10
0228 #define NDRXD_CALL_TYPE_BRIDGEINFO 11
0229 #define NDRXD_CALL_TYPE_BRIDGESVCS 12
0230 #define NDRXD_CALL_TYPE_BRBCLOCK 13
0231 #define NDRXD_CALL_TYPE_GETBRS 14
0232 #define NDRXD_CALL_TYPE_PQ 15
0233 #define NDRXD_CALL_TYPE_PE 16
0234 #define NDRXD_CALL_TYPE_APPCONFIG 17
0235 #define NDRXD_CALL_TYPE_DPING 18
0236 #define NDRXD_CALL_TYPE_DSLEEP 19
0237 #define NDRXD_CALL_TYPE_BLIST 20
0238 #define NDRXD_CALL_TYPE_BRCONINFO 21
0239
0240 #define NDRXD_SRC_NDRXD 0
0241 #define NDRXD_SRC_ADMIN 1
0242 #define NDRXD_SRC_SERVER 2
0243 #define NDRXD_SRC_BRIDGE 3
0244
0245
0246
0247
0248 #define NDRXD_STATE_CFG_OK 0x00000001
0249 #define NDRXD_STATE_SHUTDOWN 0x00000002
0250 #define NDRXD_STATE_DOMSTART 0x00000004
0251 #define NDRXD_STATE_DOMSTARTED 0x00000008
0252 #define NDRXD_STATE_SHUTDOWNED 0x00000010
0253
0254
0255
0256
0257 #define NDRXD_PM_MIN_EXIT 0
0258 #define NDRXD_PM_NOT_STARTED 0
0259 #define NDRXD_PM_DIED 1
0260 #define NDRXD_PM_EXIT 2
0261 #define NDRXD_PM_ENOENT 3
0262 #define NDRXD_PM_EACCESS 4
0263 #define NDRXD_PM_EBADFILE 5
0264 #define NDRXD_PM_ELIMIT 6
0265 #define NDRXD_PM_EENV 7
0266 #define NDRXD_PM_EARGSLIM 8
0267 #define NDRXD_PM_ESYSTEM 9
0268 #define NDRXD_PM_RESTART 10
0269 #define NDRXD_PM_WAIT 11
0270 #define NDRXD_PM_MAX_EXIT 19
0271
0272 #define NDRXD_PM_MIN_RUNNING 20
0273 #define NDRXD_PM_STARTING 20
0274 #define NDRXD_PM_RUNNING_OK 21
0275 #define NDRXD_PM_STOPPING 22
0276 #define NDRXD_PM_MAX_RUNNING 39
0277
0278
0279 #define PM_NOT_RUNNING(X) (NDRXD_PM_MIN_EXIT <= ( X ) && ( X ) <= NDRXD_PM_MAX_EXIT)
0280 #define PM_RUNNING(X) (NDRXD_PM_MIN_RUNNING <= ( X ) && ( X ) <= NDRXD_PM_MAX_RUNNING)
0281
0282
0283
0284
0285
0286 #define NDRXD_SVCINFO_INIT 0x00000001
0287
0288
0289 #define NDRXD_SVC_STATUS_AVAIL 0
0290 #define NDRXD_SVC_STATUS_BUSY 1
0291
0292
0293 #define NDRXD_CALL_FLAGS_DEADQ 0x0001
0294 #define NDRXD_CALL_FLAGS_PAGE2 0x0002
0295 #define NDRXD_CALL_FLAGS_RSPHAVE_MORE 0x0004
0296 #define NDRXD_CALL_FLAGS_PAGE3 0x0008
0297 #define NDRXD_CALL_FLAGS_LP2GRP 0x0010
0298
0299 #define SRV_KEY_FLAGS_BRIDGE 0x0001
0300 #define SRV_KEY_FLAGS_SENDREFERSH 0x0002
0301 #define SRV_KEY_FLAGS_CONNECTED 0x0004
0302 #define SRV_KEY_FLAGS_PROCGRPLP 0x0008
0303
0304
0305
0306
0307 #define BRIDGE_REFRESH_MODE_FULL 'F'
0308 #define BRIDGE_REFRESH_MODE_DIFF 'D'
0309
0310
0311
0312
0313 #define BR_NET_CALL_MSG_TYPE_ATMI 'A'
0314 #define BR_NET_CALL_MSG_TYPE_NOTIF 'N'
0315 #define BR_NET_CALL_MSG_TYPE_NDRXD 'X'
0316
0317 #define BR_NET_CALL_MAGIC 0x6A12CC51L
0318
0319
0320 #define PING_MAX_SEQ 65536
0321
0322
0323
0324 #define EXF_MIN 0
0325 #define EXF_SHORT 0
0326 #define EXF_LONG 1
0327 #define EXF_CHAR 2
0328 #define EXF_FLOAT 3
0329 #define EXF_DOUBLE 4
0330 #define EXF_STRING 5
0331 #define EXF_CARRAY 6
0332 #define EXF_NONE 7
0333
0334 #define EXF_INT 8
0335 #define EXF_ULONG 9
0336 #define EXF_UINT 10
0337 #define EXF_NTIMER 11
0338 #define EXF_TIMET 12
0339 #define EXF_USHORT 13
0340 #define EXF_CARRAYFIX 14
0341 #define EXF_MAX 14
0342
0343
0344 #define PQ_LEN 12
0345 #define EX_ENV_MAX 4096
0346
0347
0348 #define NDRX_BRCLOCK_MODE_ASYNC 1
0349 #define NDRX_BRCLOCK_MODE_REQ 2
0350 #define NDRX_BRCLOCK_MODE_RSP 3
0351
0352
0353 #define NDRX_CONMODE_ACTIVE 'A'
0354 #define NDRX_CONMODE_PASSIVE 'P'
0355
0356
0357
0358
0359
0360
0361
0362 typedef struct shm_srvinfo shm_srvinfo_t;
0363 struct shm_srvinfo
0364 {
0365 int srvid;
0366
0367 unsigned svc_fail[MAX_SVC_PER_SVR];
0368 unsigned svc_succeed[MAX_SVC_PER_SVR];
0369
0370 unsigned min_rsp_msec[MAX_SVC_PER_SVR];
0371 unsigned max_rsp_msec[MAX_SVC_PER_SVR];
0372 unsigned last_rsp_msec[MAX_SVC_PER_SVR];
0373 short svc_status[MAX_SVC_PER_SVR];
0374
0375 char last_reply_q[NDRX_MAX_Q_SIZE+1];
0376
0377 unsigned execerr;
0378 short status;
0379 short last_command_id;
0380 };
0381
0382
0383
0384
0385 typedef struct cnodeinfo cnodeinfo_t;
0386 struct cnodeinfo
0387 {
0388 int latency;
0389 int srvs;
0390 };
0391
0392
0393
0394
0395
0396 typedef struct ndrx_shm_resid ndrx_shm_resid_t;
0397 struct ndrx_shm_resid
0398 {
0399 short cnt;
0400 int resid;
0401 };
0402
0403
0404
0405
0406 typedef struct shm_svcinfo shm_svcinfo_t;
0407 struct shm_svcinfo
0408 {
0409 char service[MAXTIDENT+1];
0410 volatile int srvs;
0411 volatile int flags;
0412 volatile int csrvs;
0413 volatile int totclustered;
0414 volatile int cnodes_max_id;
0415 cnodeinfo_t cnodes[CONF_NDRX_NODEID_COUNT];
0416
0417
0418
0419
0420 volatile short resnr;
0421 volatile unsigned int resrr;
0422
0423
0424 ndrx_shm_resid_t resids[0];
0425 };
0426
0427
0428 #define SHM_SVCINFO_SIZEOF (sizeof(shm_svcinfo_t) + sizeof(ndrx_shm_resid_t)*G_atmi_env.maxsvcsrvs)
0429
0430
0431 #define SHM_SVCINFO_INDEX(MEM, IDX) ((shm_svcinfo_t*)(((char*)MEM)+(int)(SHM_SVCINFO_SIZEOF*IDX)))
0432
0433
0434
0435
0436 typedef struct
0437 {
0438
0439 #if defined(EX_USE_SYSVQ) || defined(EX_USE_SVAPOLL)
0440 long mtype;
0441 #endif
0442 short command_id;
0443 char proto_ver[4];
0444 int proto_magic;
0445
0446
0447 unsigned long magic;
0448 int command;
0449 short msg_type;
0450 short msg_src;
0451 char reply_queue[NDRX_MAX_Q_SIZE+1];
0452 int flags;
0453 int caller_nodeid;
0454 } command_call_t;
0455
0456
0457
0458
0459 typedef struct
0460 {
0461 command_call_t call;
0462
0463
0464 short complete_shutdown;
0465 int srvid;
0466 char binary_name[MAXTIDENT+1];
0467 char procgrp[MAXTIDENT+1];
0468 long flags;
0469
0470 } command_startstop_t;
0471
0472
0473
0474
0475
0476 typedef struct
0477 {
0478 command_call_t call;
0479 char env[EX_ENV_MAX+1];
0480 } command_setenv_t;
0481
0482
0483
0484
0485 typedef struct
0486 {
0487 command_call_t call;
0488 char setting[MAXTIDENT+1];
0489 char svalue[MAXTIDENT+1];
0490 } command_appconfig_t;
0491
0492
0493
0494
0495
0496 typedef struct
0497 {
0498 command_call_t call;
0499 int secs;
0500 } command_dsleep_t;
0501
0502
0503
0504
0505 typedef struct
0506 {
0507 command_call_t call;
0508
0509 int srvid;
0510 char svc_nm[MAXTIDENT+1];
0511 char fn_nm[MAXTIDENT+1];
0512 ndrx_stopwatch_t qopen_time;
0513
0514 } command_dynadvertise_t;
0515
0516
0517
0518
0519 typedef struct
0520 {
0521 command_call_t call;
0522 int srvid;
0523 int seq;
0524 } command_srvping_t;
0525
0526
0527
0528
0529
0530 typedef struct
0531 {
0532
0533 #if defined(EX_USE_SYSVQ) || defined(EX_USE_SVAPOLL)
0534 long mtype;
0535 #endif
0536 short command_id;
0537 char proto_ver[4];
0538 int proto_magic;
0539
0540 unsigned long magic;
0541 int command;
0542 short msg_type;
0543 short msg_src;
0544 long flags;
0545 int status;
0546 int error_code;
0547 long userfld1;
0548 char error_msg[RPLY_ERR_MSG_MAX];
0549 char subtype[0];
0550 } command_reply_t;
0551
0552
0553
0554
0555
0556 typedef struct
0557 {
0558 command_call_t call;
0559 int nodeid;
0560 } bridge_info_t;
0561
0562
0563
0564
0565 typedef struct
0566 {
0567 char mode;
0568 char svc_nm[MAXTIDENT+1];
0569 int count;
0570 } bridge_refresh_svc_t;
0571
0572
0573
0574
0575
0576 typedef struct
0577 {
0578 command_call_t call;
0579 char mode;
0580 int count;
0581 bridge_refresh_svc_t svcs[0];
0582 } bridge_refresh_t;
0583
0584
0585
0586
0587
0588
0589 typedef struct
0590 {
0591
0592 command_call_t call;
0593 ndrx_stopwatch_t time;
0594 int mode;
0595 long orig_seq;
0596 int orig_nodeid;
0597 time_t orig_timestamp;
0598 } cmd_br_time_sync_t;
0599
0600
0601
0602
0603 typedef struct
0604 {
0605 long br_magic;
0606 char msg_type;
0607 int command_id;
0608 long len;
0609 char buf[0];
0610 } cmd_br_net_call_t;
0611
0612
0613
0614
0615
0616
0617
0618
0619 typedef struct
0620 {
0621 command_reply_t rply;
0622 int srvid;
0623 int seq;
0624 } command_reply_srvping_t;
0625
0626
0627
0628
0629 typedef struct
0630 {
0631 command_reply_t rply;
0632 char setting[MAXTIDENT+1];
0633 char svalue[MAXTIDENT+1];
0634 } command_reply_appconfig_t;
0635
0636
0637
0638
0639 typedef struct
0640 {
0641 command_reply_t rply;
0642
0643 char binary_name[MAXTIDENT+1];
0644 int srvid;
0645 char clopt[PATH_MAX];
0646 long state;
0647 pid_t pid;
0648 } command_reply_pm_t;
0649
0650
0651
0652
0653 typedef struct
0654 {
0655 char svc_nm[MAXTIDENT+1];
0656 char fn_nm[MAXTIDENT+1];
0657 long done;
0658 long fail;
0659 long min;
0660 long max;
0661 long last;
0662 short status;
0663 } command_reply_psc_det_t;
0664
0665
0666
0667
0668 typedef struct
0669 {
0670 command_reply_t rply;
0671
0672 char binary_name[MAXTIDENT+1];
0673 int nodeid;
0674 int srvid;
0675 pid_t pid;
0676 long state;
0677 int svc_count;
0678 command_reply_psc_det_t svcdet[0];
0679 } command_reply_psc_t;
0680
0681
0682
0683
0684 typedef struct
0685 {
0686 command_reply_t rply;
0687 char qstr[NDRX_MAX_Q_SIZE+1];
0688 } command_reply_blist_t;
0689
0690
0691
0692
0693
0694 typedef struct
0695 {
0696 command_reply_t rply;
0697 long locnodeid;
0698 int srvid;
0699 long remnodeid;
0700 char mode;
0701 int fd;
0702
0703 long time;
0704 long timems;
0705
0706
0707 long lastsync;
0708 long timediffs;
0709 long timediffms;
0710 long roundtrip;
0711
0712 } command_reply_brconinfo_t;
0713
0714
0715
0716
0717
0718
0719 typedef struct
0720 {
0721 command_reply_t rply;
0722
0723 char binary_name[MAXTIDENT+1];
0724
0725
0726 char binary_name_real[MAXTIDENT+1];
0727
0728
0729 char rqaddress[NDRX_MAX_Q_SIZE+1];
0730
0731 int srvid;
0732 long state;
0733 long reqstate;
0734 short autostart;
0735 int exec_seq_try;
0736 long last_startup;
0737
0738 int num_term_sigs;
0739 long last_sig;
0740 int autokill;
0741
0742 pid_t pid;
0743
0744 pid_t svpid;
0745 long state_changed;
0746 int flags;
0747 short nodeid;
0748 int procgrp_no;
0749 int procgrp_lp_no;
0750 int procgrp_lp_no_act;
0751 char procgrp[MAXTIDENT+1];
0752 char procgrp_lp[MAXTIDENT+1];
0753
0754 } command_reply_ppm_t;
0755
0756
0757
0758
0759 typedef struct
0760 {
0761 command_reply_t rply;
0762 int slot;
0763 char service[MAXTIDENT+1];
0764 int srvs;
0765 int flags;
0766
0767 int csrvs;
0768 int totclustered;
0769 int cnodes_max_id;
0770 cnodeinfo_t cnodes[CONF_NDRX_NODEID_COUNT];
0771
0772 ndrx_shm_resid_t resids[CONF_NDRX_MAX_SRVIDS_XADMIN];
0773 int resnr;
0774
0775 } command_reply_shm_psvc_t;
0776
0777
0778
0779
0780
0781 typedef struct
0782 {
0783 command_reply_t rply;
0784 char service[MAXTIDENT+1];
0785 int pq_info[PQ_LEN];
0786 } command_reply_pq_t;
0787
0788
0789
0790
0791 typedef struct
0792 {
0793 command_reply_t rply;
0794 int slot;
0795 int srvid;
0796 unsigned execerr;
0797 short status;
0798 short last_command_id;
0799 char last_reply_q[NDRX_MAX_Q_SIZE+1];
0800
0801 } command_reply_shm_psrv_t;
0802
0803
0804
0805
0806 typedef struct
0807 {
0808 command_reply_t rply;
0809 int srvid;
0810 char old_binary[MAXTIDENT+1];
0811 char new_binary[MAXTIDENT+1];
0812 int error;
0813 char msg[256];
0814 } command_reply_reload_t;
0815
0816
0817
0818
0819 typedef struct
0820 {
0821 command_reply_t rply;
0822 char nodes[CONF_NDRX_NODEID_COUNT+1];
0823 } command_reply_getbrs_t;
0824
0825
0826
0827
0828 typedef struct
0829 {
0830 command_reply_t rply;
0831 char env[EX_ENV_MAX+1];
0832 } command_reply_pe_t;
0833
0834
0835
0836
0837
0838 typedef struct
0839 {
0840 char svc_nm[MAXTIDENT+1];
0841 char fn_nm[MAXTIDENT+1];
0842 ndrx_stopwatch_t qopen_time;
0843 } svc_inf_t;
0844
0845
0846
0847
0848 typedef struct
0849 {
0850 int srvid;
0851 pid_t pid;
0852
0853 pid_t svpid;
0854
0855 char binary_name_real[MAXTIDENT+1];
0856 int state;
0857 int flags;
0858 int nodeid;
0859
0860
0861
0862
0863 char rqaddress[NDRX_MAX_Q_SIZE+1];
0864
0865 int resid;
0866 int procgrp_lp_no;
0867
0868 } srv_key_t;
0869
0870
0871
0872
0873
0874 typedef struct
0875 {
0876 command_call_t call;
0877 srv_key_t srvinfo;
0878 short svc_count;
0879 svc_inf_t svcs[0];
0880 } srv_status_t;
0881
0882
0883
0884
0885
0886 extern NDRX_API int cmd_generic_call(int ndrxd_cmd, int msg_src, int msg_type,
0887 command_call_t *call, size_t call_size,
0888 char *reply_q,
0889 mqd_t reply_queue,
0890 mqd_t admin_queue,
0891 char *admin_q_str,
0892 int argc, char **argv,
0893 int *p_have_next,
0894 int (*p_rsp_process)(command_reply_t *reply, size_t reply_len),
0895 void (*p_put_output)(char *text),
0896 int need_reply);
0897
0898 extern NDRX_API int cmd_generic_call_2(int ndrxd_cmd, int msg_src, int msg_type,
0899 command_call_t *call, size_t call_size,
0900 char *reply_q,
0901 mqd_t reply_queue,
0902 mqd_t admin_queue,
0903 char *admin_q_str,
0904 int argc, char **argv,
0905 int *p_have_next,
0906 int (*p_rsp_process)(command_reply_t *reply, size_t reply_len),
0907 void (*p_put_output)(char *text),
0908 int need_reply,
0909 int reply_only,
0910 char *rply_buf_out,
0911 int *rply_buf_out_len,
0912 int flags,
0913 int (*p_rply_request)(char **buf, long len)
0914 );
0915
0916 extern NDRX_API int cmd_generic_bufcall(int ndrxd_cmd, int msg_src, int msg_type,
0917 command_call_t *call, size_t call_size,
0918 char *reply_q,
0919 mqd_t reply_queue,
0920 mqd_t admin_queue,
0921 char *admin_q_str,
0922 int argc, char **argv,
0923 int *p_have_next,
0924 int (*p_rsp_process)(command_reply_t *reply, size_t reply_len),
0925 void (*p_put_output)(char *text),
0926 int need_reply,
0927 int reply_only,
0928 char *rply_buf_out,
0929 int *rply_buf_out_len,
0930 int flags,
0931 int (*p_rply_request)(char **buf, long len));
0932
0933 extern NDRX_API int cmd_generic_callfl(int ndrxd_cmd, int msg_src, int msg_type,
0934 command_call_t *call, size_t call_size,
0935 char *reply_q,
0936 mqd_t reply_queue,
0937 mqd_t admin_queue,
0938 char *admin_q_str,
0939 int argc, char **argv,
0940 int *p_have_next,
0941 int (*p_rsp_process)(command_reply_t *reply, size_t reply_len),
0942 void (*p_put_output)(char *text),
0943 int need_reply,
0944 int flags);
0945 extern NDRX_API void cmd_generic_init(int ndrxd_cmd, int msg_src, int msg_type,
0946 command_call_t *call, char *reply_q);
0947 #ifdef __cplusplus
0948 }
0949 #endif
0950
0951 #endif
0952
0953