00001 //--------------------------------------------------------------- 00002 // Go4 Release Package v2.10-5 (build 21005) 00003 // 03-Nov-2005 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at DVEE department, GSI 00007 //--------------------------------------------------------------- 00008 // 00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI 00010 // Planckstr. 1, 64291 Darmstadt, Germany 00011 //Contact: http://go4.gsi.de 00012 //---------------------------------------------------------------- 00013 //This software can be used under the license agreements as stated 00014 //in Go4License.txt file which is part of the distribution. 00015 //---------------------------------------------------------------- 00016 /**************************************************************************** 00017 * Copyright: 00018 * GSI, Gesellschaft fuer Schwerionenforschung mbH 00019 * Planckstr. 1 00020 * D-64291 Darmstadt 00021 * Germany 00022 * created 25. 1.1996 by Horst Goeringer 00023 **************************************************************************** 00024 * rawcommn.h 00025 * communication structure tsmcli client - servers 00026 **************************************************************************** 00027 * 11. 9.1996, H.G.: alternate archive tape device "ARCH_TAPE_2" added 00028 * 26. 9.1996, H.G.: new archive tape device "ARCH_TAPE_MC" added 00029 * "ARCH_TAPE_2" changed to "ARCH_TAPE_MC_2" 00030 * 8. 1.1997, H.G.: new parameter MAX_FILE_SIZE 00031 * 21. 7.1997, H.G.: new parameter srawComm.cliNode 00032 * 10. 9.1997, H.G.: new ACTION value STAGE 00033 * 15. 9.1997, H.G.: new enum RETR_DEVICE 00034 * 26. 9.1997, H.G.: new ACTION value RETRIEVE_STAGE 00035 * 21.10.1997, H.G.: replace ARCHIVE_STAGE by ARCHIVE_OVER 00036 * 19. 1.1998, H.G.: new status flag STA_END_OF_FILE_NOT_STAGED 00037 * 8. 7.1998, H.G.: use MBUF_SOCK and MBUF_ADSM; set both to 16384 00038 * new filetype STREAM 00039 * 28. 7.1999, H.G.: new ACTION values UNSTAGE, QUERY_UNSTAGE 00040 * 16. 8.2000, H.G.: new ACTION values QUERY_WORKSPACE, QUERY_POOL 00041 * new structures srawPoolStatus, srawWorkSpace 00042 * 16. 8.2000, H.G.: mod srawPoolStatus, new srawPoolAttr 00043 * 5. 9.2000, H.G.: new ACTION value QUERY_STAGE 00044 * 22.11.2000, H.G.: enhance range of values for srawWorkSpace.iStatus 00045 * 1.12.2000, H.G.: new status id IDENT_NEXT_BUFFER 00046 * 21.12.2000, H.G.: new structure srawRequest for seek functionality 00047 * 1. 2.2001, H.G.: new action values ARCHIVE_STAGE, METADATA_MOD 00048 * 30. 5.2001, H.G.: increase MAX_TAPE_FILE from 16 to 17 00049 * 13. 6.2001, H.G.: new STATUS value ARCHIVE_AVAILABLE 00050 * 22. 6.2001, H.G.: new ACTION QUERY_RETRIEVE 00051 * replace MPORT by new def PORT_MASTER 00052 * 17. 7.2001, H.G.: enhance srawObjAttr by data mover info 00053 * new structure srawDataMover 00054 * 23. 8.2001, H.G.: enhance srawComm by stage info 00055 * 29.10.2001, H.G.: ported to W2000 00056 * 14.11.2001, H.G.: rename ACTION DELETE -> REMOVE (used in winnt.h) 00057 * 28. 2.2002, H.G.: new: IDENT_STAGE_xxx, IDENT_SPACE_xx 00058 * 15. 3.2002, H.G.: rename srawPoolAttr -> srawPoolStatusData, enhance 00059 * 18. 3.2002, H.G.: new define MAX_NUM_DM (<- rawservn.h) 00060 * 20. 3.2002, H.G.: new structure srawPoolStatusDMData 00061 * 27. 5.2002, H.G.: new ACTION QUERY_ARCHIVE_OVER 00062 * 6. 6.2002, H.G.: new identifier: IDENT_PURGE_INFO 00063 * 20. 8.2002, H.G.: new identifier: IDENT_SPACE_LOOK 00064 * 19. 9.2002, H.G.: new identifier: IDENT_CLEAN_REQUEST 00065 * 26. 9.2002, H.G.: new deinition PORT_RFIO_SERV 00066 * 29.10.2002, H.G.: new identifier: IDENT_FILELIST_REQUEST, 00067 * new define MAX_STAGE_FILE_NO 00068 * 22.11.2002, H.G.: new status STA_INFO, STA_PURGED, STA_NOT_PURGED 00069 * 13. 1.2003, H.G.: add definition PORT_MOVER 00070 * 30. 1.2003, H.G.: add declarations cMasterNode(i), new: MAX_MASTER 00071 * 13. 2.2003, H.G.: add definition MAX_MOVER 00072 * 24. 2.2003, H.G.: new actions SPM_REQUEST_MOVER, QUERY_ARCHIVE_STAGE 00073 * 8. 5.2003, H.G.: add synchronization parameters to srawDataMoverAttr 00074 * 9. 5.2003, H.G.: add synchronization parameters to srawComm 00075 * 21. 8.2003, H.G.: srawComm: new string cTapeLib, 00076 * replace ACTION values: 00077 * ARCHIVE_STAGE -> ARCHIVE_TO_STAGE 00078 * METADATA_MOD -> ARCHIVE_FROM_STAGE 00079 * new ACTION values: QUERY_ARCHIVE_TO_STAGE, 00080 * QUERY_ARCHIVE_FROM_STAGE 00081 * 28. 8.2003, H.G.: srawObjAttr: add parameter cStageUser 00082 * 15. 9.2003, H.G.: increase MAX_NUM_DM: 5 -> 10 00083 * 6.10.2003, H.G.: cNodeMaster2 now gsitsma, depc134 is backup node 00084 * 10.10.2003, H.G.: new identifier: IDENT_QUERY_ARCHDB 00085 * 15.10.2003, H.G.: new action END_SESSION 00086 * 31.10.2003, H.G.: remove unused definition MAX_MOVER 00087 * 6.11.2003, H.G.: new action QUERY_ARCHIVE_RECORD 00088 * 18.11.2003, H.G.: new identifier: IDENT_FULL_ARCHDISK 00089 * 18.12.2003, H.G.: new identifier: IDENT_ARCHIVE_FILE 00090 * 22. 1.2004, H.G.: add cNodeMaster2A: gsitsmb 00091 * 20. 2.2004, H.G.: srawObjAttr: rename iPort (unused) -> iFS 00092 * new structure srawFileSystem 00093 * 24. 2.2004, H.G.: new ACTION values: STAGE_FROM_CACHE, RETRIEVE_FROM_CACHE 00094 * replace ACTION values: 00095 * QUERY_ARCHIVE_TO_STAGE -> QUERY_ARCHIVE_TO_CACHE 00096 * QUERY_ARCHIVE_FROM_STAGE -> QUERY_ARCHIVE_FROM_CACHE 00097 * ARCHIVE_TO_STAGE -> ARCHIVE_TO_CACHE 00098 * ARCHIVE_FROM_STAGE -> ARCHIVE_FROM_CACHE 00099 * 5. 3.2004, H.G.: srawFileSystem: add cArchiveDate, cArchiveUser 00100 * new ACTION value READ_FROM_CACHE 00101 **************************************************************************** 00102 */ 00103 00104 #define PORT_MASTER 1996 /* default port number master server */ 00105 #define PORT_MOVER 1994 /* default port number data mover */ 00106 #define PORT_RFIO_SERV 1974 /* default port number RFIO server */ 00107 00108 #define MAX_MASTER 2 /* max number of master servers */ 00109 #define MAX_NUM_DM 10 /* max no. of data movers on platform */ 00110 00111 #define MAX_NODE 16 /* max length node name */ 00112 static char cNodeMaster[MAX_NODE] = ""; /* requested server */ 00113 static char cNodeMaster1[MAX_NODE] = "adsmexp"; /* server 1 (AIX) */ 00114 static char cNodeMaster2[MAX_NODE] = "gsitsma"; /* server 2 (Windows)*/ 00115 static char cNodeMaster2A[MAX_NODE] = "gsitsmb"; /* server 2 backup */ 00116 static char cNodeMaster2B[MAX_NODE] = "depc134"; /* server 2 backup */ 00117 00118 #define MBUF_SOCK 16384 /* default buffer size sockets */ 00119 #define MBUF_ADSM 16384 /* default buffer size ADSM */ 00120 #define MBUF_API 65536 /* default buffer size for API client */ 00121 00122 #define MAX_FILE_SIZE 2147483647 /* max filesize 2Gbyte - 1 */ 00123 #define MAX_FILE_NO 1024 /* max number of file names in list */ 00124 #define MAX_STAGE_FILE_NO 5000 /* max no of stage file names in list */ 00125 #define MAX_FILE 128 /* max length file name */ 00126 #define MAX_TAPE_FILE 17 /* max length file name on tape */ 00127 #define MAX_OWNER 16 /* max length object owner */ 00128 #define MAX_OBJ_FS 32 /* max length filespace name */ 00129 #define MAX_OBJ_HL 92 /* max length object high level name */ 00130 #define MAX_OBJ_LL 36 /* max length object low level name */ 00131 #define MAX_DATE 20 /* max length archive date and time */ 00132 #define MAX_OS 8 /* max length operating system name */ 00133 #define MAX_APPLTYPE 32 /* max length application type */ 00134 #define MAX_MC 12 /* max length Management class name */ 00135 00136 #define HEAD_OFFSET 3 /* offset common pre-header (int array) */ 00137 #define HEAD_LEN 12 /* length common pre-header (bytes) */ 00138 #define STATUS_LEN 256 /* max length status/error message */ 00139 #define WORK_LEN 20 /* length work space info */ 00140 00141 /* identifiers for buffer headers transfered via sockets */ 00142 /* at least IDENT_STATUS must be <0 to avoid confusion with data */ 00143 #define IDENT_COMM -1 /* communication control buffer */ 00144 #define IDENT_STATUS -2 /* status buffer from/to client */ 00145 #define IDENT_QUERY -3 /* query result buffer */ 00146 #define IDENT_POOL -4 /* stage pool info buffer */ 00147 #define IDENT_WORKSPACE -5 /* work space info buffer */ 00148 #define IDENT_NEXT_BUFFER -6 /* request next data buffer */ 00149 #define IDENT_MOVER_ATTR -7 /* data mover attributes */ 00150 #define IDENT_STAGE_FILE -8 /* stage file data (read cache) */ 00151 #define IDENT_SPACE_INFO -9 /* data mover space info */ 00152 #define IDENT_PURGE_INFO -10 /* purge request for data mover */ 00153 #define IDENT_SPACE_LOOK -11 /* meta data DB space info */ 00154 #define IDENT_CLEAN_REQUEST -12 /* clean request for stage pool */ 00155 #define IDENT_FILELIST_REQUEST -13 /* filelist request for stage FS */ 00156 #define IDENT_QUERY_ARCHDB -14 /* query result buffer archDB */ 00157 #define IDENT_FULL_ARCHDISK -15 /* buffer describing full disk */ 00158 #define IDENT_ARCHIVE_FILE -16 /* archive file data (write cache) */ 00159 00160 enum ARCH_DEVICE /* archive device */ 00161 { 00162 ARCH_ANY, /* any device (for query) */ 00163 ARCH_TAPE, /* standard tape class */ 00164 ARCH_TAPE_MC, /* special tape class for archive */ 00165 MGR_TAPE, /* tape system manager: special MC */ 00166 ARCH_DISK, /* disk */ 00167 ARCH_TAPE_MC_2 /* alternate special tape class for archive */ 00168 }; 00169 00170 enum RETR_DEVICE /* logical staging device */ 00171 { 00172 RETR_CLIENT, /* no staging */ 00173 RETR_STAGE_TEMP, /* delete imediately after retrieve */ 00174 RETR_STAGE_PERM, /* kept, but erased if not used some time */ 00175 RETR_STAGE_DATE /* kept for one day, if enough space */ 00176 /* RETR_STAGE_DATE+n: kept n+1 days, if space */ 00177 }; 00178 00179 enum FILETYPE /* describes data */ 00180 { 00181 FIXED_INTS4, /* fixed records, 4 byte int (signed) */ 00182 STREAM /* record length not defined */ 00183 }; 00184 00185 enum ACTION /* action */ 00186 { 00187 ARCHIVE, /* 0: archive files */ 00188 ARCHIVE_MGR, /* 1: system mgr only: set owner, special MC */ 00189 ARCHIVE_RECORD, /* 2: archive file from client program */ 00190 ARCHIVE_OVER, /* 3: existing file will be overwritten 00191 client only, server: REMOVE + ARCHIVE */ 00192 CREATE_ARCHIVE, /* 4: system mgr only: create new archive */ 00193 CLOSE, /* 5: close tape for client */ 00194 REMOVE, /* 6: delete file from archive (stage pool) */ 00195 REMOVE_MGR, /* 7: delete file from archive (stage pool) */ 00196 FILE_CHECK, /* 8: only needed for client side */ 00197 OPEN, /* 9: open tape for client */ 00198 QUERY, /* 10: query for files */ 00199 QUERY_ARCHIVE, /* 11: query for files already archived */ 00200 QUERY_ARCHIVE_MGR, /* 12: query for files already archived */ 00201 QUERY_REMOVE, /* 13: query for files to be deleted */ 00202 QUERY_REMOVE_MGR, /* 14: query for files to be deleted */ 00203 RETRIEVE, /* 15: retrieve file to client */ 00204 RETRIEVE_RECORD, /* 16: retrieve file to client program */ 00205 RETRIEVE_STAGE, /* 17: retrieve file to client via stage disk */ 00206 STAGE, /* 18: retrieve file to stage disk pool */ 00207 QUERY_UNSTAGE, /* 19: query for files to be unstaged */ 00208 UNSTAGE, /* 20: remove file from stage disk pool */ 00209 QUERY_POOL, /* 21: query for status of disk pools */ 00210 QUERY_WORKSPACE, /* 22: query for files to be staged + stage pool*/ 00211 QUERY_STAGE, /* 23: query for files to be staged */ 00212 ARCHIVE_TO_CACHE, /* 24: archive files to write cache */ 00213 ARCHIVE_FROM_CACHE, /* 25: archive files from write cache */ 00214 QUERY_RETRIEVE, /* 26: query for files to be retrieved */ 00215 QUERY_ARCHIVE_OVER, /* 27: query before "archive -over" action */ 00216 QUERY_ARCHIVE_TO_CACHE, /* 28: query before archive to write cache */ 00217 SPM_REQUEST_MOVER, /* 29: request data mover from SPM for action */ 00218 QUERY_RETRIEVE_API, /* 30: query before retrieve to client program */ 00219 QUERY_ARCHIVE_FROM_CACHE, /* 31: query before archive from write cache */ 00220 END_SESSION, /* 32: end session on server */ 00221 QUERY_ARCHIVE_RECORD, /* 33: query before archive from client program */ 00222 STAGE_FROM_CACHE, /* 34: stage files from write cache */ 00223 RETRIEVE_FROM_CACHE, /* 35: retr. files (via stage) from write cache */ 00224 READ_FROM_CACHE /* 36: read from write cache, send to other DM */ 00225 }; 00226 00227 /* command buffer with object attributes */ 00228 typedef struct 00229 { 00230 int iIdent; /* IDENT_COMM identifies command buffer */ 00231 int iAction; /* see definition of ACTION */ 00232 int iCommLen; /* length of following data */ 00233 char cNamefs[MAX_OBJ_FS]; /* filespace name */ 00234 char cNamehl[MAX_OBJ_HL]; /* object high level name */ 00235 char cNamell[MAX_OBJ_LL]; /* file name / object low level name */ 00236 char cOwner[MAX_OWNER]; /* account name of requestor */ 00237 char cOS[MAX_OS]; /* user operating system */ 00238 char cApplType[MAX_APPLTYPE]; /* application type */ 00239 int iFileType; /* see definition of FILETYPE */ 00240 int iBufsizeFile; /* buffer size file */ 00241 unsigned long iFileSize; /* size of file in bytes */ 00242 int iArchDev; /* = ARCH_DEVICE or RETR_DEVICE */ 00243 unsigned int iObjHigh; /* upper four bytes object Id */ 00244 unsigned int iObjLow; /* lower four bytes object Id */ 00245 char cliNode[MAX_NODE]; /* client node name */ 00246 int iStageFSid; 00247 /* stage file system no. on selected data mover (0: not staged) */ 00248 int iExecStatus; /* execution status set by LockManager: 00249 = 1: active, = 2 waiting, = 3 suppressed */ 00250 int iWaitTime; /* time to wait before execution (seconds) */ 00251 int iSynchId; /* id number of synch request */ 00252 char cTapeLib[16]; /* name of ATL: "" default, "*" all */ 00253 } srawComm; 00254 00255 enum STATUS /* status of action */ 00256 { 00257 STA_BEGIN_TRANS, /* 0: server ready for data transfer */ 00258 STA_NEXT_BUFFER, /* 1: API client: request next sequ. buffer */ 00259 STA_END_OF_FILE, /* 2: */ 00260 STA_END_OF_SESSION, /* 3: */ 00261 STA_ERROR, /* 4: error, end session */ 00262 STA_ERROR_EOF, /* 5: error, handle next file */ 00263 STA_FILE_STAGED, /* 6: */ 00264 STA_END_OF_FILE_NOT_STAGED, /* 7: file retrieved, but not staged */ 00265 STA_SEEK_BUFFER, /* 8: API client: request buffer at any position */ 00266 ARCHIVE_AVAILABLE, /* 9: */ 00267 STA_SWITCH_SERVER, /* 10: switch data mover */ 00268 STA_INFO, /* 11: informatory message */ 00269 STA_PURGED, /* 12: some/all requested files purged on DM */ 00270 STA_NOT_PURGED /* 13: no file could be purged on DM */ 00271 }; 00272 00273 typedef struct /* Status buffer */ 00274 { 00275 int iIdent; /* IDENT_STATUS identifies status buffer */ 00276 int iStatus; /* see definition of STATUS */ 00277 int iStatusLen; /* length of following message */ 00278 char cStatus[STATUS_LEN]; /* status message */ 00279 } srawStatus; 00280 00281 typedef struct /* Request buffer for API client */ 00282 { 00283 int iIdent; /* IDENT_NEXT_BUFFER identifies request buffer */ 00284 int iStatus; /* see definition of STATUS */ 00285 int iStatusLen; /* length of following info */ 00286 int iSeekMode; /* byte offset mode (see lseek C function): 00287 SEEK_SET: set offset to iOffset bytes 00288 SEEK_CUR: increase current offset for iOffset bytes 00289 SEEK_END: set offset to file size plus iOffset bytes */ 00290 int iOffset; /* requested byte offset */ 00291 int iBufferSize; /* length of requested buffer */ 00292 } srawRequest; 00293 00294 typedef struct /* Object attribute buffer */ 00295 { 00296 int iVersion; /* structure version */ 00297 char cNamefs[MAX_OBJ_FS]; /* filespace name */ 00298 char cNamehl[MAX_OBJ_HL]; /* object high level name */ 00299 char cNamell[MAX_OBJ_LL]; /* file name / object low level name */ 00300 int iFileType; /* see definition of FILETYPE */ 00301 int iBufsizeFile; /* buffer size file */ 00302 unsigned long iFileSize; /* size of file in bytes */ 00303 char cDate[MAX_DATE]; /* archive date and time */ 00304 char cOwner[MAX_OWNER]; /* account name of owner */ 00305 char cOS[MAX_OS]; /* operating system archiving client */ 00306 char cMgmtClass[MAX_MC]; /* management class */ 00307 int iMediaClass; /* media class */ 00308 unsigned int iObjHigh; /* upper four bytes object Id */ 00309 unsigned int iObjLow; /* lower four bytes object Id */ 00310 unsigned int iRestoHigh; /* upper four bytes restore order */ 00311 unsigned int iRestoLow; /* lower four bytes restore order */ 00312 int iFS; /* filesystem number if file on disk */ 00313 char cNode[MAX_NODE]; /* node name data mover */ 00314 char cStageUser[MAX_OWNER]; /* account name of staging user */ 00315 } srawObjAttr; 00316 00317 typedef struct /* Query response buffer */ 00318 { 00319 int iIdent; /* IDENT_QUERY or IDENT_QUERY_ARCHDB */ 00320 int iObjCount; /* no. of objects matching */ 00321 int iAttrLen; /* length attributes buffer of object */ 00322 srawObjAttr objAttr; /* attributes of object found */ 00323 /* appended for each object */ 00324 } srawQueryResult; 00325 00326 /* stage pool attributes for one data mover */ 00327 typedef struct 00328 { 00329 char cNodeName[MAX_NODE]; /* node name data mover */ 00330 int iMaxSizeMover; /* max size of pool on this data mover (MByte) */ 00331 int iFreeSizeHW; /* current free size in hardware (MByte) */ 00332 int iFreeSize; /* current free size in pool (MByte) */ 00333 int iFiles; /* current no. of files in pool */ 00334 int iFileSystems; /* no. of FS on this data mover: 00335 = 0: all FS, > 0: list follows (srawStageFS) */ 00336 } srawPoolStatusDMData; 00337 00338 /* stage pool attributes */ 00339 typedef struct 00340 { 00341 char cPoolName[32]; /* pool name */ 00342 char cPoolOS[MAX_OS]; /* name of OS where pool resides */ 00343 int iPoolId; /* pool identification number */ 00344 int iMaxSizeHW; /* overall size of HW (MByte) */ 00345 int iFreeSizeHW; /* current free size in HW (MByte) */ 00346 int iMaxSize; /* overall size of pool (MByte) */ 00347 int iFreeSize; /* current free size in pool (MByte) */ 00348 int iMaxWorkSize; /* max size of work space in pool (MByte) */ 00349 int iFileAvail; /* guaranteed availability of files (days) */ 00350 int iCheckSize; 00351 /* threshold work space size for check of pool status (MByte) */ 00352 int iFiles; /* current no. of files in pool */ 00353 int iDataMover; /* number of data movers in pool */ 00354 } srawPoolStatusData; 00355 00356 /* for exchange with client: status buffers stage pool + WS */ 00357 typedef struct 00358 { 00359 int iIdent; /* IDENT_POOL identifies pool status header */ 00360 int iPoolNo; /* no. of pool + WS buffers following */ 00361 int iStatusLen; /* size of following data (n pools, opt. 1 WS) */ 00362 srawPoolStatusData sPoolStatusData; /* stage pool attributes */ 00363 } srawPoolStatus; 00364 00365 typedef struct /* server infos on requ. work space */ 00366 { 00367 int iIdent;/* IDENT_WORKSPACE identifies work space status header */ 00368 int iWorkId; /* work space identification number */ 00369 int iStatusLen; /* length of following data */ 00370 int iWorkSizeAll; /* size of requ. work space (MByte) */ 00371 int iWorkFilesAll; /* total no. of files in work space */ 00372 int iWorkSizeSta; /* part of requ. work space already staged */ 00373 int iWorkFilesSta; /* no. of files in work space already staged */ 00374 int iWorkSizeStaTemp; /* part of staged work space in temp pool */ 00375 int iWorkFilesStaTemp; /* no. of staged files in temp pool */ 00376 int iWorkSizeEst; /* part of requ. work space size estimated */ 00377 int iWorkFilesEst; 00378 /* no. of files in work space with size estimated */ 00379 int iStatus; /* work space status flag: 00380 = -1: problem, can't create 00381 = 0: okay, space available 00382 = 1: lack of space in pool 00383 = 2: above allowed limit of work space 00384 = 3: work space larger than pool 00385 = 9: lack of space -> clean job, no sleep 00386 >= 10: lack of space -> clean job, sleep iStatus min. 00387 */ 00388 } srawWorkSpace; 00389 00390 typedef struct /* attributes of data mover */ 00391 { 00392 char cNode[MAX_NODE]; /* node name */ 00393 int iPort; /* port no. */ 00394 int iSocket; /* socket no. */ 00395 int iExecStatus; /* execution status set by LockManager: 00396 = 1: active, = 2 waiting, = 3 suppressed */ 00397 int iWaitTime; /* time to wait before execution (seconds) */ 00398 int iSynchId; /* id number of synch request */ 00399 } srawDataMoverAttr; 00400 00401 typedef struct /* communication buffer with data mover attributes */ 00402 { 00403 int iIdent; /* IDENT_STATUS identifies status buffer */ 00404 int iStatus; /* see definition of STATUS */ 00405 int iStatusLen; /* length of following message */ 00406 srawDataMoverAttr sDataMoverAttr; /* attributes of data mover */ 00407 } srawDataMover; 00408 00409 typedef struct /* filesystem infos */ 00410 { 00411 char cOS[MAX_OS]; /* operating system */ 00412 char cNode[MAX_NODE]; /* node name */ 00413 int iFileSystem; /* no. of filesystem on node */ 00414 char cArchiveDate[MAX_DATE]; /* creation date in ArchivePool */ 00415 char cArchiveUser[MAX_OWNER]; /* account name of archiving user */ 00416 } srawFileSystem; 00417 00418 00419 00420 //----------------------------END OF GO4 SOURCE FILE ---------------------