📄 u_ifil.c
字号:
/************************************************************************//* SISCO SOFTWARE MODULE HEADER *****************************************//************************************************************************//* (c) Copyright Systems Integration Specialists Company, Inc., *//* 1986 - 2001, All Rights Reserved. *//* *//* MODULE NAME : u_ifil.c *//* PRODUCT(S) : MMSEASE *//* *//* MODULE DESCRIPTION : *//* This module contains user defined code to service file *//* management indications. These functions are invoked from *//* the 'mms_ind_serve' function, and should perform the request *//* action. *//* *//* GLOBAL FUNCTIONS DEFINED IN THIS MODULE : *//* *//* MODIFICATION LOG : *//* Date Who Rev Comments *//* -------- --- ------ ------------------------------------------- *//* 11/29/01 EJV 02 Del code for old LATT, XENIX, ultrix, RMX86. *//* 07/29/97 DSF 01 Removed references to INSTANTC *//* 04/15/97 DSF 7.00 MMSEASE 7.0 release. See MODL70.DOC for *//* history. *//************************************************************************/#include "glbtypes.h"#include "sysincs.h"#include "mms_usr.h"#include "userdefs.h"#include "mmsop_en.h"#include "gvaldefs.h"#include "scrndefs.h"#include "fkeydefs.h"#include "mms_pfil.h"#include "mms_vfil.h"#include "mem_chk.h"/************************************************************************//* For debug version, use a static pointer to avoid duplication of *//* __FILE__ strings. *//************************************************************************/#ifdef DEBUG_SISCOstatic ST_CHAR *thisFileName = __FILE__;#endif#define USE_MV_RESP /************************************************************************//************************************************************************//* FILE MANAGEMENT *//************************************************************************//************************************************************************//* OBTAIN FILE *//************************************************************************/#if MMS_OBTAINFILE_EN & RESP_ENST_VOID u_obtfile_ind (MMSREQ_IND *req_info) {OBTFILE_REQ_INFO *ptr;ST_INT i;FILE_NAME *fname_idx; if (mms_debug_sel & MMS_LOG_USR_IND) { indic_info_print (req_info,"Obtain File "); ptr = (OBTFILE_REQ_INFO *) req_info->req_info_ptr; printf ("\n App Ref Title : "); if (ptr->ar_title_pres) print_asn1_app_ref (ptr->ar_title, ptr->ar_len); else printf ("Not Present"); fname_idx = (FILE_NAME *)(ptr + 1); printf ("\n Number of Source FileNames : %d ", ptr->num_of_src_fname); for (i = 0; i < ptr->num_of_src_fname; i++, fname_idx++) { printf ("\n %d) ", i+1); list_bytes ((ST_UCHAR *)fname_idx->fname, fname_idx->fn_len); } printf ("\n Number of Destination FileNames : %d ", ptr->num_of_dest_fname); for (i = 0; i < ptr->num_of_dest_fname; i++, fname_idx++) { printf ("\n %d) ", i+1); list_bytes ((ST_UCHAR *)fname_idx->fname, fname_idx->fn_len); } } mv_obtfile_resp (req_info); indic_info_wait (); /* allow user to see indic info */ }#endif/************************************************************************//* FILE OPEN *//************************************************************************/#if MMS_FOPEN_EN & RESP_ENST_VOID u_fopen_ind (MMSREQ_IND *req_info) {#if !defined (USE_MV_RESP)FOPEN_RESP_INFO respinfo;#endifFOPEN_REQ_INFO *ptr;FILE_NAME *fname_idx;ST_INT i;static ST_INT32 frsmid = 123456789; if (mms_debug_sel & MMS_LOG_USR_IND) { indic_info_print (req_info,"File open "); ptr = (FOPEN_REQ_INFO *) req_info->req_info_ptr; fname_idx = (FILE_NAME *)(ptr + 1); printf ("\n Number of FileNames : %d ", ptr->num_of_fname); for (i = 0; i < ptr->num_of_fname; i++, fname_idx++) { printf ("\n %d) ", i+1); list_bytes ((ST_UCHAR *)fname_idx->fname, fname_idx->fn_len); } printf ("\n Initial Position = %lu ", ptr->init_pos); }#ifdef USE_MV_RESP mv_fopen_resp (req_info);#else respinfo.frsmid = frsmid++; respinfo.ent.mtimpres = SD_TRUE; respinfo.ent.fsize = 55611L; respinfo.ent.mtime = time (NULL); mp_fopen_resp (req_info, &respinfo); /* send the response */#endif indic_info_wait (); /* allow user to see indic info */ }#endif/************************************************************************//* FILE READ *//************************************************************************/#if MMS_FREAD_EN & RESP_ENST_VOID u_fread_ind (MMSREQ_IND *req_info) {FREAD_REQ_INFO *ptr; if (mms_debug_sel & MMS_LOG_USR_IND) { indic_info_print (req_info,"File read "); ptr = (FREAD_REQ_INFO *) req_info->req_info_ptr; printf ("\n File Read State Machine Id = %ld", ptr->frsmid); } mv_fread_resp (req_info); indic_info_wait (); /* allow user to see indic info */ }#endif/************************************************************************//* FILE CLOSE *//************************************************************************/#if MMS_FCLOSE_EN & RESP_ENST_VOID u_fclose_ind (MMSREQ_IND *req_info) {FCLOSE_REQ_INFO *ptr; if (mms_debug_sel & MMS_LOG_USR_IND) { indic_info_print (req_info,"File close "); ptr = (FCLOSE_REQ_INFO *) req_info->req_info_ptr; printf ("\n File Read State Machine Id = %ld", ptr->frsmid); } mv_fclose_resp (req_info); indic_info_wait (); /* allow user to see indic info */ }#endif/************************************************************************//* FILE RENAME *//************************************************************************/#if MMS_FRENAME_EN & RESP_ENST_VOID u_frename_ind (MMSREQ_IND *req_info) {FRENAME_REQ_INFO *info_ptr;FILE_NAME *fname_idx;ST_INT i; if (mms_debug_sel & MMS_LOG_USR_IND) { info_ptr = (FRENAME_REQ_INFO *) req_info->req_info_ptr; indic_info_print (req_info,"File rename "); fname_idx = (FILE_NAME *)(info_ptr + 1); printf ("\n Number of Current FileNames : %d ", info_ptr->num_of_cur_fname); for (i = 0; i < info_ptr->num_of_cur_fname; i++, fname_idx++) { printf ("\n %d) ", i+1); list_bytes ((ST_UCHAR *)fname_idx->fname, fname_idx->fn_len); } printf ("\n Number of New FileNames : %d ", info_ptr->num_of_new_fname); for (i = 0; i < info_ptr->num_of_new_fname; i++, fname_idx++) { printf ("\n %d) ", i+1); list_bytes ((ST_UCHAR *)fname_idx->fname, fname_idx->fn_len); } } mv_frename_resp (req_info); indic_info_wait (); /* allow user to see indic info */ }#endif/************************************************************************//* FILE DELETE *//************************************************************************/#if MMS_FDELETE_EN & RESP_ENST_VOID u_fdelete_ind (MMSREQ_IND *req_info) {FDELETE_REQ_INFO *info_ptr;FILE_NAME *fname_idx;ST_INT i; if (mms_debug_sel & MMS_LOG_USR_IND) { info_ptr = (FDELETE_REQ_INFO *) req_info->req_info_ptr; indic_info_print (req_info,"File delete "); fname_idx = (FILE_NAME *)(info_ptr + 1); printf ("\n Number of FileNames : %d ", info_ptr->num_of_fname); for (i = 0; i < info_ptr->num_of_fname; i++, fname_idx++) { printf ("\n %d) ", i+1); list_bytes ((ST_UCHAR *)fname_idx->fname, fname_idx->fn_len); } } mv_fdelete_resp (req_info); indic_info_wait (); /* allow user to see indic info */ }#endif/************************************************************************//* FILE DIRECTORY *//************************************************************************/#if MMS_FDIR_EN & RESP_ENST_VOID u_fdir_ind (MMSREQ_IND *req_info) {ST_INT i;FDIR_REQ_INFO *ind_ptr;FILE_NAME *fname_idx; if (mms_debug_sel & MMS_LOG_USR_IND) { ind_ptr = (FDIR_REQ_INFO *) req_info->req_info_ptr; indic_info_print (req_info,"File directory "); printf ("\n FileName Specification : "); if (ind_ptr->filespec_pres) { fname_idx = (FILE_NAME *)(ind_ptr + 1); printf ("\n Number FileName Specifications : %d ", ind_ptr->num_of_fs_fname); for (i = 0; i < ind_ptr->num_of_fs_fname; i++, fname_idx++) { printf ("\n %d) ", i+1); list_bytes ((ST_UCHAR *)fname_idx->fname, fname_idx->fn_len); } } else printf ("not present"); printf ("\n FileName to continue after : "); if (ind_ptr->cont_after_pres) { printf ("\n Number of FileNames to continue after : %d ", ind_ptr->num_of_ca_fname); fname_idx = (FILE_NAME *)(ind_ptr + 1); fname_idx += ind_ptr -> num_of_fs_fname; for (i = 0; i < ind_ptr->num_of_ca_fname; i++, fname_idx++) { printf ("\n %d) ", i+1); list_bytes ((ST_UCHAR *)fname_idx->fname, fname_idx->fn_len); } } else printf ("not present"); } mv_fdir_resp (req_info); indic_info_wait (); /* allow user to see indic info */ }#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -