📄 mms_vfil.h
字号:
/************************************************************************//* SISCO SOFTWARE MODULE HEADER *****************************************//************************************************************************//* (c) Copyright Systems Integration Specialists Company, Inc., *//* 1986 - 1997, All Rights Reserved. *//* *//* MODULE NAME : mms_vfil.h *//* PRODUCT(S) : MMSEASE *//* *//* MODULE DESCRIPTION : *//* This module contains data and function definitions associated *//* with the MMS virtual machine file operations. *//* *//* MODIFICATION LOG : *//* Date Who Rev Comments *//* -------- --- ------ ------------------------------------------- *//* 08/13/97 RKR 01 Format changes *//* 04/02/97 DTL 7.00 MMSEASE 7.0 release. See MODL70.DOC for *//* history. *//************************************************************************/#ifndef MMS_VFIL_INCLUDED#define MMS_VFIL_INCLUDED#include "mms_pfil.h"#ifdef __cplusplusextern "C" {#endif/************************************************************************//************************************************************************//* FILE HANDLING *//************************************************************************//* structures and variables used in remote file access handling *//* *//* The user can set the variables below if desired to modify the limits *//* of the file handling system. They should be changed at powerup time *//* if at all; they are setup with appropriate default values. *//************************************************************************/extern ST_INT max_loc_open; /* user limit # open (20) */extern ST_INT max_rem_open; /* user limit # open (20) */extern ST_INT m_loc_files_open; /* number of files open */extern ST_INT m_rem_files_open; /* number of files open *//************************************************************************/#define MAX_FCOPY_PIPELINE_DEPTH 10/* This array of integers is used to specify the pipeline depth for *//* file copies on a channel by channel basis. A value of 0 or 1 causes *//* no pipelining to take place. */extern ST_INT *m_fcopy_pipe_depth;/************************************************************************//* The structure below is the basic file control element, and is used *//* for both local and remote file control, as well as virtial machine *//* file operation control. *//************************************************************************/struct fctrl_info { ST_INT refnum; /* index back to table */ ST_INT chan; /* channel that requested open */ ST_INT32 frsmid; /* file read state machine id */ FILE *handle; /* file pointer */ ST_UINT32 fsize; /* length of file */ time_t open_time; /* time file was opened */ time_t acc_time; /* time file was last accessed */ ST_INT path_len; /* length of file path name */ ST_CHAR path[MAX_FILE_NAME]; /* file path name */ /* data read parameters */ ST_INT dest_path_len; /* length of dest file name */ ST_CHAR dest_path[MAX_FILE_NAME]; /* destination file path name */ ST_UCHAR *buffer; /* destination */ ST_LONG bytes_read; /* # bytes read into buffer */ ST_LONG bytes_req; /* # bytes requested */ };typedef struct fctrl_info FCTRL_INFO;/************************************************************************//* The two structures below are used for local and remote file control *//* and should not be modified or used directly by the user, as they *//*are subject to change. *//* *//* Remote/Local File Control - *//* stat values : *//* 0 : No Activity *//* 1 : Pending Open *//* 2 : Open *//* 3 : Pending Close *//************************************************************************/struct fctrlinfo { ST_CHAR stat[MAX_FILES_OPEN]; /* flag, set if file open */ FCTRL_INFO *finfo[MAX_FILES_OPEN]; };typedef struct fctrlinfo FCTRLINFO;/************************************************************************//* File Control Structure used to execute a FILE COPY *//************************************************************************/struct fcopy_info { ST_INT opcode; /* operation code */ ST_RET error; /* error code */ OBTFILE_REQ_INFO *obtfinfo; /* pointer to file information */ FCTRL_INFO *fctrl; /* pointer to file control */ struct fcopy_pipe_ctrl *fpipe;/* pointer to pipeline */ };typedef struct fcopy_info FCOPY_INFO;extern FCTRLINFO m_local_fctrl_info;extern FCTRLINFO m_rem_fctrl_info;/************************************************************************//* Functions used to get a pointer to file ctrl information for local *//* and remote files. *//************************************************************************/FCTRL_INFO *ms_get_rem_finfo (ST_CHAR *fname, ST_INT chan);FCTRL_INFO *ms_get_loc_finfo (ST_CHAR *fname);/************************************************************************//* Virtual Machine functions for handling FILE ACCESS *//************************************************************************/MMSREQ_PEND *mv_fcopy (ST_INT chan, ST_CHAR *from, ST_INT from_len, ST_CHAR *to, ST_INT to_len);MMSREQ_PEND *mv_fopen (ST_INT chan, ST_CHAR *path, ST_INT path_len, ST_UINT32 init_pos);MMSREQ_PEND *mv_fread (ST_INT chan, ST_INT refnum, ST_UCHAR *dest, ST_LONG num_bytes);MMSREQ_PEND *mv_fclose (ST_INT chan, ST_INT refnum);ST_RET mv_obtfile_resp (MMSREQ_IND *ind);ST_RET mv_fopen_resp (MMSREQ_IND *ind);ST_RET mv_file_open_resp (MMSREQ_IND *req_info, ST_INT *fctrl_index_out);ST_RET mv_fread_resp (MMSREQ_IND *ind);ST_RET mv_fclose_resp (MMSREQ_IND *ind);ST_RET mv_frename_resp (MMSREQ_IND *ind);ST_RET mv_fdelete_resp (MMSREQ_IND *ind);ST_RET mv_fdir_resp (MMSREQ_IND *ind);/************************************************************************//* The functions below are used for clearing the local and remote file *//* control structures. If the selected channel == -1, clear all. *//************************************************************************/ST_RET ms_clr_rem_fctrl (ST_INT chan);ST_RET ms_clr_locl_fctrl (ST_INT chan);/************************************************************************/MMSREQ_PEND *ms_fcopy_start (ST_INT chan, ST_INT opcode, OBTFILE_REQ_INFO *obtfile_info);#ifdef __cplusplus}#endif#endif /* #define MMS_VFIL_INCLUDED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -