{ Component scheduling }

%constinteger  packet arrived    = 0
%constinteger  ether ack wait    = packet arrived     + 1
%constinteger  ether RX request  = ether ack wait     + ether TX procs
%constinteger  disc  transfer    = ether RX request   + 1
%constinteger  disc  completion  = disc  transfer     + 1
%constinteger  disc  sema wait   = disc  completion   + 1
%constinteger  ether TX request  = disc  sema wait    + 1
%constinteger  proc  request     = ether TX request   + 1
%constinteger  stamp flag        = proc  request      + 1 + procs
%constinteger  spooler base      = stamp flag         + 1

%constinteger inhibit limit      = ether TX request
%constinteger last event         = spooler base + spoolers
%constinteger schedule queue     = 15  {** Must be (power of 2) - 1 **}

%externalroutinespec  kick    (%integer target)
%externalroutinespec  wait for(%integer event)

%externalroutinespec  wait for ack(%integer port, proc)

%externalroutinespec  inhibit noncritical
%externalroutinespec  uninhibit all

%externalroutinespec schedule
%externalroutinespec start process(%integer where, stack)

%end %of %file
