⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_data.c

📁 ICCP Toolkit 是在 Tru64下开发Tase.2通信协议的开发包
💻 C
📖 第 1 页 / 共 5 页
字号:
  {    {"VarList", 		cfg_var_list_name, NULL },    {"%VarListsEnd",            cfg_varlists_end, NULL },    { NULL, NULL, NULL}  };struct cfg_kw_el var_list_kwtbl[] =  {    {"VarName", 		cfg_vlist_nvar, NULL },    {"Domain", 	        	cfg_vlist_ndom, NULL },    {"VarListEnd",              cfg_vlist_end, NULL },    { NULL, NULL, NULL}  };struct cfg_kw_el var_blocks_begin_kwtbl[] =  {    {"%VBlocksBegin", 		cfg_var_blocks_begin, NULL },    { NULL, NULL, NULL}  };struct cfg_kw_el var_block_begin_kwtbl[] =  {    {"%VBlockBegin", 		cfg_var_block_begin, NULL },    {"%VBlocksEnd", 		cfg_var_blocks_end, NULL },    { NULL, NULL, NULL}  };struct cfg_kw_el var_block_kwtbl[] =  {    {"TypeName", 		cfg_block_type_name, NULL },    {"NumVars", 		cfg_block_num_vars, NULL },    {"BaseVarName", 		cfg_block_base_var_name, NULL },    {"UpdateOnRead", 		cfg_block_update_on_read, NULL },    {"UpdateOnTime", 		cfg_block_update_on_time, NULL },    {"%VBlockEnd", 		cfg_var_block_end, NULL },    { NULL, NULL, NULL}  };/************************************************************************/typedef struct dom_cfg  {  ST_BOOLEAN dom_in_progress;  INITDOWN_REQ_INFO *dom_info;  ST_CHAR *cap_dest;  } DOM_CFG;static DOM_CFG *dom_cfg_ctrl;#define MAX_PI_DOMS	20typedef struct pi_cfg  {  ST_BOOLEAN pi_in_progress;  ST_CHAR pi_name[MAX_IDENT_LEN+1];  ST_CHAR *dom_dest;  ST_INT num_dom;  ST_CHAR *dom_table[MAX_PI_DOMS];  } PI_CFG;static PI_CFG *pi_cfg_ctrl;typedef struct jrnl_cfg  {  ST_BOOLEAN jrnlInProgress;  ST_CHAR jrnlName[MAX_IDENT_LEN+1];  ST_BOOLEAN bDeletable;  ST_CHAR *jrnlFile;  } JRNL_CFG;static JRNL_CFG *pstJrnlCtrl;/************************************************************************//************************************************************************//*			    load_variables				*//************************************************************************/extern ST_INT cfg_max_string_len;extern ST_INT cfg_line_buf_size;extern ST_INT cfg_max_rval_len;ST_VOID load_variables (ST_VOID)  {#ifdef REQUIRE_S_LOG  cfg_sLogCtrl = sLogCtrl;#endif  cfg_log_mask |= CFG_LOG_ERR;  named_type_name = chk_calloc (1,MAX_IDENT_LEN + 1);  named_var_name = chk_calloc (1,VAR_NAME_BUF_LEN + 1);  named_var_list_name = chk_calloc (1,VAR_NAME_BUF_LEN + 1);  named_domain = chk_calloc (1,MAX_IDENT_LEN + 1);  dom_cfg_ctrl = chk_calloc (1, sizeof (DOM_CFG));  pi_cfg_ctrl = chk_calloc (1, sizeof (PI_CFG));  pstJrnlCtrl = chk_calloc (1, sizeof (JRNL_CFG));/* To allow very large TDL strings to be added, increase buffer size	*/  cfg_max_string_len = 1000;  cfg_line_buf_size = 1000;  cfg_max_rval_len = 1000;  m_rt_type_limit = 500;  cfg_process_file (MMSVAR_CFG_FILE, domains_base_kwtbl);  chk_free (named_type_name);  chk_free (named_var_name);  chk_free (named_var_list_name);  chk_free (named_domain);  chk_free (dom_cfg_ctrl);  chk_free (pi_cfg_ctrl);  chk_free (pstJrnlCtrl);  }/************************************************************************//************************************************************************//*                         cfg_domains_begin                            *//************************************************************************//* Initial state for parsing domains cfg file                           */static ST_VOID cfg_domains_begin (ST_VOID)  {  /* Configuration file successfully opened, log msg */  dom_cfg_ctrl->dom_in_progress = SD_FALSE;  dom_cfg_ctrl->dom_info = (INITDOWN_REQ_INFO *) dest_buffer;  dom_cfg_ctrl->cap_dest = dest_buffer + 1000;  dom_cfg_ctrl->dom_info->sharable = SD_TRUE;  dom_cfg_ctrl->dom_info->num_of_capab = 0;  cfg_tbl_push (domain_name_kwtbl);  }/************************************************************************//*                         cfg_domain_name                                *//************************************************************************//* Get Named domain name and save it in named_domain_name var            */static ST_VOID cfg_domain_name (ST_VOID)  {ST_CHAR *name;NAMED_DOM_CTRL *dom;  if (dom_cfg_ctrl->dom_in_progress)    {    printf ("\n Added custom domain '%s'", dom_cfg_ctrl->dom_info->dname);    dom = ms_add_named_domain (dom_cfg_ctrl->dom_info,0x7F);    if (!dom)      {      printf ("\n"); ms_perror (mms_op_err);      wait_msg ("NAMED DOMAIN ADD FAILURE");      }    else      {      dom->deletable = SD_TRUE;      dom->state = DOM_READY;      }        dom_cfg_ctrl->dom_in_progress = SD_FALSE;    }  if (name = cfg_get_string_ptr ())    {    dom_cfg_ctrl->dom_in_progress = SD_TRUE;    dom_cfg_ctrl->dom_info->num_of_capab = 0;    strncpy (dom_cfg_ctrl->dom_info->dname, name, MAX_IDENT_LEN);    }  else    cfg_set_config_err ();  }/************************************************************************/static ST_VOID cfg_capability (ST_VOID)  {ST_CHAR *cap;ST_CHAR **capab_list_ptr;  if (!dom_cfg_ctrl->dom_in_progress)    {    cfg_set_config_err ();    return;    }  if (cap = cfg_get_string_ptr ())    {    capab_list_ptr = (ST_CHAR **)(dom_cfg_ctrl->dom_info + 1);    capab_list_ptr += dom_cfg_ctrl->dom_info->num_of_capab;    *capab_list_ptr = dom_cfg_ctrl->cap_dest;    strcpy (dom_cfg_ctrl->cap_dest, cap);    dom_cfg_ctrl->cap_dest += strlen (dom_cfg_ctrl->cap_dest) +1;    ++dom_cfg_ctrl->dom_info->num_of_capab;    }  else    cfg_set_config_err ();  }/************************************************************************//*                            cfg_domains_end                             *//************************************************************************//* Pop domain_name_kwtbl from stack to return to domains_base_kwtbl         */static ST_VOID cfg_domains_end (ST_VOID)  {NAMED_DOM_CTRL *dom;  if (dom_cfg_ctrl->dom_in_progress)    {    printf ("\n Added custom domain '%s'", dom_cfg_ctrl->dom_info->dname);    dom = ms_add_named_domain (dom_cfg_ctrl->dom_info,0x7F);    if (!dom)      wait_msg ("NAMED DOMAIN ADD FAILURE");    else      dom->deletable = SD_TRUE;            dom_cfg_ctrl->dom_in_progress = SD_FALSE;    }  /* Pop from stack the domain_name_kwtbl so that types section can be*/  /* processed                                                          */  /* Push var_begin_kwtbl to read vars */  cfg_tbl_pop (1);  cfg_tbl_push (domains_base_kwtbl);  }/************************************************************************//*                         cfg_pis_begin                            *//************************************************************************//* Initial state for parsing pis cfg file                           */static ST_VOID cfg_pis_begin (ST_VOID)  {  /* Configuration file successfully opened, log msg */  pi_cfg_ctrl->pi_in_progress = SD_FALSE;  pi_cfg_ctrl->dom_dest = dest_buffer;  pi_cfg_ctrl->num_dom = 0;  cfg_tbl_push (pi_name_kwtbl);  }/************************************************************************//*                         cfg_pi_name                                *//************************************************************************//* Get Named pi name and save it in named_pi_name var            */static ST_VOID cfg_pi_name (ST_VOID)  {ST_CHAR *name;PROG_INV *pi_ptr;  if (pi_cfg_ctrl->pi_in_progress)    {    printf ("\n Added custom pi '%s'", pi_cfg_ctrl->pi_name);    pi_ptr = ms_add_pi (pi_cfg_ctrl->pi_name, pi_cfg_ctrl->num_dom, 		   pi_cfg_ctrl->dom_table, 0xff);    if (!pi_ptr)       wait_msg ("NAMED pi ADD FAILURE");    else      pi_ptr->deletable = SD_TRUE;    pi_cfg_ctrl->pi_in_progress = SD_FALSE;    }  if (name = cfg_get_string_ptr ())    {    pi_cfg_ctrl->pi_in_progress = SD_TRUE;    pi_cfg_ctrl->num_dom = 0;    strncpy (pi_cfg_ctrl->pi_name, name, MAX_IDENT_LEN);    }  else    cfg_set_config_err ();  }/************************************************************************/static ST_VOID cfg_pi_dom (ST_VOID)  {ST_CHAR *dom;  if (!pi_cfg_ctrl->pi_in_progress)    {    cfg_set_config_err ();    return;    }  if (dom = cfg_get_string_ptr ())    {    strcpy (pi_cfg_ctrl->dom_dest, dom);    pi_cfg_ctrl->dom_table[pi_cfg_ctrl->num_dom] = pi_cfg_ctrl->dom_dest;    pi_cfg_ctrl->dom_dest += strlen (pi_cfg_ctrl->dom_dest) +1;    ++pi_cfg_ctrl->num_dom;    }  else    cfg_set_config_err ();  }/************************************************************************//*                            cfg_pis_end                             *//************************************************************************//* Pop pi_name_kwtbl from stack to return to pis_base_kwtbl         */static ST_VOID cfg_pis_end (ST_VOID)  {PROG_INV *pi_ptr;  if (pi_cfg_ctrl->pi_in_progress)    {    printf ("\n Added custom pi '%s'", pi_cfg_ctrl->pi_name);    pi_ptr = ms_add_pi (pi_cfg_ctrl->pi_name, pi_cfg_ctrl->num_dom, 		   pi_cfg_ctrl->dom_table, 0xff);    if (!pi_ptr)       wait_msg ("NAMED pi ADD FAILURE");    else      pi_ptr->deletable = SD_TRUE;    pi_cfg_ctrl->pi_in_progress = SD_FALSE;    }  /* Pop from stack the pi_name_kwtbl so that types section can be*/  /* processed                                                          */  /* Push var_begin_kwtbl to read vars */  cfg_tbl_pop (1);  cfg_tbl_push (domains_base_kwtbl);  }/************************************************************************//*			cfg_journal_begin				*//************************************************************************/static ST_VOID cfg_journal_begin (ST_VOID)  {  pstJrnlCtrl->jrnlInProgress = SD_FALSE;  pstJrnlCtrl->bDeletable = SD_FALSE;  pstJrnlCtrl->jrnlFile = NULL;  domain_specific = SD_FALSE;  cfg_tbl_push (jrnl_name_kwtbl);  }/************************************************************************//*			cfg_jrnl_name					*//************************************************************************/static ST_VOID cfg_jrnl_name (ST_VOID)  {ST_CHAR *name;JOURNAL *pstJournal;NAMED_DOM_CTRL	*dom_ctrl;DOMAIN_OBJS     *dom;  if (pstJrnlCtrl->jrnlInProgress)    {    printf ("\n Adding Journal '%s'", pstJrnlCtrl->jrnlName);    if (domain_specific == SD_TRUE)      {      printf (" to domain '%s'", named_domain);      if (dom_ctrl = ms_find_named_dom (named_domain))        {        dom = &(dom_ctrl->objs);        }      else        {        dom = NULL;        printf ("\n Bad DomainName '%s' Failed adding Journal '%s'",                named_domain, pstJrnlCtrl->jrnlName);        ms_perror (mms_op_err);        wait_msg("");        }      }    else      {      dom = &(m_vmd_select->vmd_wide);      }    pstJournal = ms_add_journal (dom,     			         pstJrnlCtrl->jrnlName,				 pstJrnlCtrl->bDeletable);    if (!pstJournal)       wait_msg ("ADD Journal FAILURE");    else      pstJournal->usr = pstJrnlCtrl->jrnlFile;    pstJrnlCtrl->jrnlInProgress = SD_FALSE;    domain_specific = SD_FALSE;    }  if (name = cfg_get_string_ptr ())    {    pstJrnlCtrl->jrnlInProgress = SD_TRUE;    strncpy (pstJrnlCtrl->jrnlName, name, MAX_IDENT_LEN);    }  else    cfg_set_config_err ();  }/************************************************************************//*                         cfg_jrnl_ndom                                *//************************************************************************//* Save the domain name 						*//* stack next keyword table                                             */static ST_VOID cfg_jrnl_ndom (ST_VOID)  {  ST_CHAR    *dom_name_ptr = NULL;  /* Set the var name to empty str */  memset (named_domain, 0, MAX_IDENT_LEN+1);  if (dom_name_ptr = cfg_get_string_ptr ())    {    strncpy (named_domain, dom_name_ptr, MAX_IDENT_LEN);    domain_specific = SD_TRUE;    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -