191 lines
5.6 KiB
RPGLE
191 lines
5.6 KiB
RPGLE
**FREE
|
|
|
|
//=====================================================================
|
|
//
|
|
// Program......: MEDDFNHTST
|
|
//
|
|
// Description..: MEDDFN hardware test program
|
|
//
|
|
// Creates one media definition for six parallel streams
|
|
// using the same tape library device and six media files.
|
|
//
|
|
// Erstellen mit:
|
|
//
|
|
// CRTRPGMOD MODULE(GOSCH1/MEDDFNHTST)
|
|
// SRCSTMF('/home/GOSCH/meddfn/meddfnhtst.rpgle')
|
|
// OPTION(*EVENTF)
|
|
// DBGVIEW(*SOURCE)
|
|
// TGTRLS(*CURRENT)
|
|
//
|
|
// CRTPGM PGM(GOSCH1/MEDDFNHTST)
|
|
// MODULE(GOSCH1/MEDDFNHTST)
|
|
// BNDSRVPGM(GOSCH1/MEDDFNSRV)
|
|
// ACTGRP(*NEW)
|
|
// TGTRLS(*CURRENT)
|
|
//
|
|
//=====================================================================
|
|
|
|
ctl-opt
|
|
option(*srcstmt:*nodebugio);
|
|
|
|
|
|
/COPY './meddfn_h.rpgle'
|
|
/COPY './meddfnpr.rpgle'
|
|
|
|
|
|
//=====================================================================
|
|
//
|
|
// Program Interface
|
|
//
|
|
//=====================================================================
|
|
|
|
dcl-pi *n;
|
|
|
|
pMediaDefinitionName char(10) const;
|
|
pLibraryName char(10) const;
|
|
pDeviceName char(10) const;
|
|
|
|
pVolume1 char(6) const;
|
|
pVolume2 char(6) const;
|
|
pVolume3 char(6) const;
|
|
pVolume4 char(6) const;
|
|
pVolume5 char(6) const;
|
|
pVolume6 char(6) const;
|
|
|
|
pTextDescription char(50) const;
|
|
pReplace char(4) const;
|
|
|
|
end-pi;
|
|
|
|
|
|
//=====================================================================
|
|
//
|
|
// Data
|
|
//
|
|
//=====================================================================
|
|
|
|
dcl-ds MediaDefinition
|
|
likeds(MD_MediaDefinition_T);
|
|
|
|
dcl-ds Error
|
|
likeds(MD_Error_T);
|
|
|
|
|
|
//=====================================================================
|
|
//
|
|
// Build media definition
|
|
//
|
|
//=====================================================================
|
|
|
|
clear MediaDefinition;
|
|
|
|
MediaDefinition.MediaDefinitionName =
|
|
pMediaDefinitionName;
|
|
|
|
MediaDefinition.LibraryName =
|
|
pLibraryName;
|
|
|
|
MediaDefinition.TextDescription =
|
|
pTextDescription;
|
|
|
|
MediaDefinition.Replace =
|
|
(pReplace = '*YES');
|
|
|
|
MediaDefinition.DeviceAllocation =
|
|
MD_DeviceAllocateAll;
|
|
|
|
MediaDefinition.SaveFormat =
|
|
MD_SaveFormatParallel;
|
|
|
|
MediaDefinition.MaximumParallelResources =
|
|
6;
|
|
|
|
MediaDefinition.MinimumParallelResources =
|
|
6;
|
|
|
|
MediaDefinition.NumberOfDevices =
|
|
6;
|
|
|
|
|
|
//=====================================================================
|
|
// Devices and media files
|
|
//=====================================================================
|
|
|
|
MediaDefinition.Device(1).DeviceName = pDeviceName;
|
|
MediaDefinition.Device(2).DeviceName = pDeviceName;
|
|
MediaDefinition.Device(3).DeviceName = pDeviceName;
|
|
MediaDefinition.Device(4).DeviceName = pDeviceName;
|
|
MediaDefinition.Device(5).DeviceName = pDeviceName;
|
|
MediaDefinition.Device(6).DeviceName = pDeviceName;
|
|
|
|
MediaDefinition.Device(1).NumberOfMediaFiles = 1;
|
|
MediaDefinition.Device(2).NumberOfMediaFiles = 1;
|
|
MediaDefinition.Device(3).NumberOfMediaFiles = 1;
|
|
MediaDefinition.Device(4).NumberOfMediaFiles = 1;
|
|
MediaDefinition.Device(5).NumberOfMediaFiles = 1;
|
|
MediaDefinition.Device(6).NumberOfMediaFiles = 1;
|
|
|
|
|
|
//=====================================================================
|
|
// Media files
|
|
//=====================================================================
|
|
|
|
MediaDefinition.Device(1).MediaFile(1).SequenceNumber = 1;
|
|
MediaDefinition.Device(2).MediaFile(1).SequenceNumber = 1;
|
|
MediaDefinition.Device(3).MediaFile(1).SequenceNumber = 1;
|
|
MediaDefinition.Device(4).MediaFile(1).SequenceNumber = 1;
|
|
MediaDefinition.Device(5).MediaFile(1).SequenceNumber = 1;
|
|
MediaDefinition.Device(6).MediaFile(1).SequenceNumber = 1;
|
|
|
|
MediaDefinition.Device(1).MediaFile(1).StartingPositionInFile = *ALL'0';
|
|
MediaDefinition.Device(2).MediaFile(1).StartingPositionInFile = *ALL'0';
|
|
MediaDefinition.Device(3).MediaFile(1).StartingPositionInFile = *ALL'0';
|
|
MediaDefinition.Device(4).MediaFile(1).StartingPositionInFile = *ALL'0';
|
|
MediaDefinition.Device(5).MediaFile(1).StartingPositionInFile = *ALL'0';
|
|
MediaDefinition.Device(6).MediaFile(1).StartingPositionInFile = *ALL'0';
|
|
|
|
MediaDefinition.Device(1).MediaFile(1).NumberOfVolumeIdentifiers = 1;
|
|
MediaDefinition.Device(2).MediaFile(1).NumberOfVolumeIdentifiers = 1;
|
|
MediaDefinition.Device(3).MediaFile(1).NumberOfVolumeIdentifiers = 1;
|
|
MediaDefinition.Device(4).MediaFile(1).NumberOfVolumeIdentifiers = 1;
|
|
MediaDefinition.Device(5).MediaFile(1).NumberOfVolumeIdentifiers = 1;
|
|
MediaDefinition.Device(6).MediaFile(1).NumberOfVolumeIdentifiers = 1;
|
|
|
|
|
|
//=====================================================================
|
|
// Volume identifiers
|
|
//=====================================================================
|
|
|
|
MediaDefinition.Device(1).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume1;
|
|
MediaDefinition.Device(2).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume2;
|
|
MediaDefinition.Device(3).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume3;
|
|
MediaDefinition.Device(4).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume4;
|
|
MediaDefinition.Device(5).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume5;
|
|
MediaDefinition.Device(6).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume6;
|
|
|
|
|
|
//=====================================================================
|
|
// Create MEDDFN
|
|
//=====================================================================
|
|
|
|
clear Error;
|
|
|
|
MD_CreateMediaDefinition(
|
|
MediaDefinition :
|
|
Error);
|
|
|
|
if Error.HasError;
|
|
|
|
dsply ('MEDDFN creation failed: ' +
|
|
Error.MessageID);
|
|
|
|
dsply Error.MessageData;
|
|
|
|
else;
|
|
|
|
dsply 'MEDDFN created successfully';
|
|
|
|
endif;
|
|
|
|
return;
|