Using NS3000/iX Network Services (36920-90008)

154 Chapter 7
Remote Process Management
RPM Program 1
RPM Program 1
$standard_level 'HP3000', uslinit$
program creator (input,output);
const
maxdata = 2000;
maxname = 20;
type
smallint = -32768..32767;
datatype = packed array [1..maxdata] of char;
nametype = packed array [1..maxname] of char;
byte = 0..255;
var
calldesc : integer;
result : integer;
progname : packed array [1..15] of char;
location : packed array [1..16] of char;
login : packed array [1..25] of char;
flags : packed array [0..31] of boolean; {32 contiguous bits}
pd : packed array [0..15] of byte;
destdescriptor : integer;
vcdesc : integer;
dlen : integer;
i : integer;
data : datatype;
len : smallint;
datastr : string[maxdata];
socketname : nametype;
nodename : nametype;
opt : packed array [1..50] of byte; {INITOPT and ADDOPT
will structure the array for us}
procedure terminate; intrinsic;
{RPM and IPC intrinsic declarations}
procedure ipccreate; intrinsic;
procedure ipcname; intrinsic;
procedure initopt; intrinsic;
procedure addopt; intrinsic;
procedure rpmcreate; intrinsic;
procedure ipcrecvcn; intrinsic;
procedure ipcerrmsg; intrinsic;
procedure ipcrecv; intrinsic;
procedure ipcshutdown; intrinsic;
procedure ipcsend; intrinsic;
procedure leave(result: integer);
var msg: string[80];
i, len, newresult: integer;
begin
ipcerrmsg (result, msg, len, newresult);
if newresult = 0 then
begin
setstrlen(msg, len);
writeln(msg); {print error message}
end