|
|
DataMuseum.dkPresents historical artifacts from the history of: RC3500 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC3500 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3840 (0xf00)
Types: TextFileVerbose
Names: »noah«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
└─⟦72244f0ef⟧
└─⟦this⟧ »noah«
(*****************************************************************)
(* *)
(* process noah - father of the paxnet node *)
(*---------------------------------------------------------------*)
(* *)
(* ncp ncp process semaphore *)
(* ltrm connector transmitter semaphores *)
(* lrec connector receiver semaphores *)
(* ldrv line driver semaphore array *)
(* ldrv2 line driver second semaphore array (hdlcsim) *)
(* supv supervisor process semaphore *)
(* poolh transit buffer pool process *)
(* poolnnp nnp buffer pool process *)
(* incno incarnation number *)
(* *)
(*****************************************************************)
process noah (
var sysvec: system_vector;
var ncp: ! tap_pointer;
var ltrm: ! ltsmarray;
var lrec: ! ltsmarray;
var ldrv: ! ltsmarray;
var ldrv2: ! ltsmarray;
var supv, poolh, poolnnp: ! tap_pointer;
var ph:ph_type; var phnnp:ph_type;
incno:integer);
const
version='vers. 810317/';
nwu_del1=125; (* networktime update *)
nwu_del2=4;
nwb_del1=120; (* networktime broadcast *)
nwb_del2=11;
(* type *)
var
(* ----- this node address ------------------------- *)
ownadr: nwadr;
(* ----- lcp ident of the router ------------------- *)
r_lcp_id: integer;
r_transit_ph: integer; (* transit buffer pool *)
r_nnp_ph: integer; (* nnp buffer pool *)
(* ----- connector descriptions -------------------- *)
conn_desc: conn_desc_array;
(* ------ shadows -----------------------------------*)
sh_routsupv: shadow;
sh_poolh: shadow;
sh_poolnnp: shadow;
i: integer;
z:zone;
process pool_handler( var sysvec: system_vector;
var poolh_sem: semaphore;
var ncp_sem: semaphore;
lcp_ident: integer;
var ph:ph_type);
external;
process supervisor( var sysvec: system_vector;
var ncp: ! tap_pointer;
lcp_ident: integer;
var ltrm: ! ltsmarray;
var lrec: ! ltsmarray;
var ldrv: ! ltsmarray;
var ldrv2: ! ltsmarray;
var conn_desc: conn_desc_array;
var supv: ! tap_pointer;
var poolh,poolnnp: ! tap_pointer;
udelay1,udelay2,bdelay1,bdelay2: byte;
var ownaddr: nwadr);
external;
begin
testopen(z,own.incname,sysvec(operatorsem));
testout(z,version,0);
r_lcp_id:=200+incno;
r_transit_ph:=10+incno;
r_nnp_ph:=20+incno;
for i:=1 to cmax do conn_desc(i).ctyp:=none;
(* create router supervisor *)
i:=link('supervisor ',supervisor);
i:=create('supv ',supervisor(sysvec,
ncp,r_lcp_id,ltrm,lrec,ldrv,ldrv2,conn_desc,
supv,poolh,poolnnp,nwu_del1,nwu_del2,nwb_del1,nwb_del2,ownadr),
sh_routsupv,700);
start(sh_routsupv,stdpriority);
(* create pool handlers *)
i:=link('pool_handler',pool_handler);
i:=create('transit pool',pool_handler(sysvec,
poolh.w^,ncp.s^,r_transit_ph,ph),sh_poolh,300);
start(sh_poolh,stdpriority);
i:=create('nnp pool ',pool_handler(sysvec,
poolnnp.w^,ncp.s^,r_nnp_ph,phnnp),sh_poolnnp,300);
start(sh_poolnnp,stdpriority);
end.
«eof»