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 NDRX_H
0036 #define NDRX_H
0037 
0038 #ifdef  __cplusplus
0039 extern "C" {
0040 #endif
0041 
0042 
0043 #include <sys/param.h>
0044 #include <atmi.h>
0045 #include <sys_mqueue.h>
0046 #include <signal.h>
0047 #include <linenoise.h>
0048     
0049 #include <ndrxdcmn.h>
0050 #include <gencall.h>
0051 #include <inicfg.h>
0052     
0053 #ifndef NDRX_DISABLEPSCRIPT
0054 #include <pscript.h>
0055 #endif
0056 
0057 
0058 #define         MAX_ARGS        20
0059     
0060 #define         CMD_MAX         PATH_MAX
0061 #define         MAX_ARG_LEN     500
0062 #define         ARG_DEILIM      " \t"
0063 #define         MAX_CMD_LEN     300
0064     
0065 #define         NDRX_XADMIN_IDLEREQ         1   
0066 #define         NDRX_XADMIN_RPLYQREQ        2   
0067 
0068 extern int G_cmd_argc_logical;
0069 extern int G_cmd_argc_raw;
0070 extern char *G_cmd_argv[MAX_ARGS];
0071 
0072 #define     NDRXD_STAT_NOT_STARTED           0
0073 #define     NDRXD_STAT_MALFUNCTION           1
0074 #define     NDRXD_STAT_RUNNING               2
0075 
0076     
0077 #define FIX_SVC_NM(Xsrc, Xbuf, Xlen) \
0078         if (strlen(Xsrc) > Xlen)\
0079         {\
0080             strncpy(Xbuf, Xsrc, Xlen-1);\
0081             Xbuf[Xlen-1] = '+';\
0082             Xbuf[Xlen] = EXEOS;\
0083         }\
0084         else\
0085             strcpy(Xbuf, Xsrc);
0086 
0087 #define FIX_SVC_NM_DIRECT(Xbuf, Xlen) \
0088         if (strlen(Xbuf) > Xlen)\
0089         {\
0090             Xbuf[Xlen-1] = '+';\
0091             Xbuf[Xlen] = EXEOS;\
0092         }
0093 
0094 #define XADMIN_INVALID_OPTIONS_MSG      "Invalid options, see `help'.\n"
0095 
0096 
0097 
0098 
0099 
0100 typedef struct ndrx_config
0101 {
0102     char pid_file[PATH_MAX];               
0103     mqd_t ndrxd_q;                         
0104     char ndrxd_q_str[NDRX_MAX_Q_SIZE+1];   
0105     char *qprefix;                         
0106     char *qpath;                           
0107 
0108     
0109     mqd_t reply_queue;                     
0110     char reply_queue_str[NDRX_MAX_Q_SIZE+1]; 
0111 
0112     
0113     int  ndrxd_stat;                       
0114     short is_idle;                         
0115     char *ndrxd_logfile;                   
0116     long listcall_flags;                   
0117     
0118     key_t ipckey;                          
0119 } ndrx_config_t;
0120 
0121 
0122 
0123 typedef struct cmd_mapping cmd_mapping_t;       
0124 struct cmd_mapping
0125 {
0126     char *cmd;          
0127     
0128     int (*p_exec_command) (cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0129     int ndrxd_cmd;             
0130     int has_args;              
0131     
0132 
0133 
0134 
0135 
0136 
0137     int reqidle;               
0138     char *help;                
0139     int (*p_add_help) (void);   
0140 };
0141 
0142 extern ndrx_config_t G_config;
0143 extern gencall_args_t G_call_args[];
0144 extern ndrx_inicfg_section_keyval_t *G_xadmin_config;
0145 extern char G_xadmin_config_file[PATH_MAX+1];
0146 
0147 
0148 extern int start_daemon_idle(void);
0149 extern int load_env_config(void);
0150 extern int ndrx_xadmin_open_rply_q(void);
0151 extern int is_ndrxd_running(pid_t *p_pid, int silent);
0152 extern void simple_output(char *buf);
0153 
0154 extern int chk_confirm_clopt(char *message, int argc, char **argv);
0155 extern char * ndrx_xadmin_nodeid(void);
0156 extern int ndrx_start_idle();
0157 extern int ndrx_xadmin_shm_close();
0158 extern int un_init(int closeshm);
0159 extern void sign_chld_handler(int sig);
0160 
0161 extern int process_command_buffer(int *p_have_next);
0162 
0163 #ifndef NDRX_DISABLEPSCRIPT
0164 extern void printfunc(HPSCRIPTVM v,const PSChar *s,...);
0165 extern void errorfunc(HPSCRIPTVM v,const PSChar *s,...);
0166 extern int load_value(HPSCRIPTVM v, char *key_val_string);
0167 extern int add_defaults_from_config(HPSCRIPTVM v, char *section);
0168 extern int register_getExfields(HPSCRIPTVM v);
0169 
0170 #endif
0171 
0172 extern int cmd_ldcf(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0173 extern int cmd_start(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0174 extern int cmd_stop(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0175 extern int cmd_sreload(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0176 
0177 extern int ss_rsp_process(command_reply_t *reply, size_t reply_len);
0178 extern int cmd_psc(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0179 extern int psc_rsp_process(command_reply_t *reply, size_t reply_len);
0180 extern int cmd_fdown(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0181 extern int cmd_udown(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0182 extern int cmd_cat(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0183 extern int at_rsp_process(command_reply_t *reply, size_t reply_len);
0184 extern int cmd_reload(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0185 extern int cmd_testcfg(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0186 extern int reload_rsp_process(command_reply_t *reply, size_t reply_len);
0187 extern int cmd_r(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0188 extern int cmd_cabort(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0189 
0190 extern int cmd_unadv(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0191 
0192 extern int cmd_readv(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0193 
0194 
0195 extern int cmd_ppm(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0196 extern int ppm_rsp_process(command_reply_t *reply, size_t reply_len);
0197 
0198 
0199 extern int shm_psrv_rsp_process(command_reply_t *reply, size_t reply_len);
0200 extern int cmd_shm_psrv(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0201     
0202 extern int shm_psvc_rsp_process(command_reply_t *reply, size_t reply_len);    
0203 extern int cmd_shm_psvc(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0204 
0205 
0206 extern int pq_rsp_process(command_reply_t *reply, size_t reply_len);
0207 extern int cmd_pq(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0208 extern int cmd_pqa(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0209 
0210 
0211 extern int cmd_pt(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0212 extern int cmd_abort(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0213 extern int cmd_commit(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0214 
0215 extern int cmd_recoverlocal(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0216 extern int cmd_commitlocal(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0217 extern int cmd_abortlocal(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0218 extern int cmd_forgetlocal(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0219 
0220 
0221 
0222 extern int cmd_pe(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0223 extern int pe_rsp_process(command_reply_t *reply, size_t reply_len);
0224 extern int cmd_set(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0225 extern int cmd_unset(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0226 
0227 
0228 extern int cmd_pc(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0229 extern int cmd_sc(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0230 extern int cmd_bc(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0231 extern int cmd_rc(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0232 
0233 
0234 
0235 extern int cmd_mqlq(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0236 extern int cmd_mqlc(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0237 extern int cmd_mqlm(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0238 extern int cmd_mqdm(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0239 extern int cmd_mqrc(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0240 extern int cmd_mqch(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0241 extern int cmd_mqrm(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0242 extern int cmd_mqmv(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0243 
0244 extern int mqfilter(char *svcnm);
0245 extern int cmd_killall(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0246 
0247 
0248 extern int cmd_qrmall(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0249 extern int cmd_qrm(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0250 
0251 
0252 extern int cmd_provision(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0253 
0254 
0255 extern int cmd_gen_load_scripts(void);
0256 extern int cmd_gen_help(void);
0257 extern int cmd_gen(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0258 
0259 
0260 extern int cmd_cs(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0261 extern int cmd_cd(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0262 extern int cmd_ci(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0263 
0264 
0265 extern int cmd_pubfdb(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0266 
0267 
0268 #if defined(EX_USE_SYSVQ) || defined(EX_USE_SVAPOLL)
0269 extern int cmd_svmaps(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0270 #endif
0271 
0272 extern int cmd_svqids(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0273 extern int cmd_svsemids(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0274 
0275 
0276 extern int cmd_ps(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0277 
0278 
0279 extern int cmd_appconfig(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0280 extern int appconfig_rsp_process(command_reply_t *reply, size_t reply_len);
0281 
0282 
0283 extern int cmd_dping(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0284 extern int cmd_dsleep(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0285 extern int cmd_dpid(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0286 
0287 
0288 extern int cmd_lcf_help(void);
0289 extern int cmd_lcf(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0290 extern int ndrx_xadmin_lcf_init(void);
0291 extern int cmd_lcf_completion(linenoiseCompletions *lc, char *buf);
0292 
0293 extern int cmd_shmcfg(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0294 extern int cmd_prtsvc(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0295 extern int cmd_psg(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0296 extern int cmd_mmon(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0297 extern int cmd_mmoff(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0298 
0299 
0300 extern int cmd_mibget(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next);
0301 
0302 
0303 extern void ndrx_tab_init(ndrx_growlist_t *table);
0304 extern int ndrx_tab_add_col(ndrx_growlist_t *table, int col_nr, char *str);
0305 extern void ndrx_tab_print(ndrx_growlist_t *table, ndrx_growlist_t *coltypes);
0306 extern void ndrx_tab_free(ndrx_growlist_t *table);
0307 
0308 
0309 #ifdef  __cplusplus
0310 }
0311 #endif
0312 
0313 #endif  
0314 
0315