DataMuseum.dk

Presents historical artifacts from the history of:

DANOSI

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DANOSI

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦903c99f5d⟧ TextFile

    Length: 25245 (0x629d)
    Types: TextFile
    Names: »NET.ENV«

Derivation

└─⟦5bf9983c6⟧ Bits:30010496 DANOSI SW50070 Disk 2/2 MegaSwitch Development Toolset Rel. 1.1 PN: 798-66-79 DVBS1.SW50070.rel.1.1.2/2
    └─⟦this⟧ »PAXENV\NET.ENV« 

TextFile

netenv;\r
(**********************************************************************)\r
(*                                                                    *)\r
(*                            netenv                                  *)\r
(*                                                                    *)\r
(*                   common netnet environment                        *)\r
(*                                                                    *)\r
(* description:                                                       *)\r
(* This environment contain constants and types, relevant for most of *)\r
(* the PAXNET modules.                                                *)\r
(* Furthermore it contains some of the very important configuration   *)\r
(* parameters for a PAXNET node.                                      *)\r
(*                                                                    *)\r
(* This environment is intented to be used by all PAXNET modules.     *)\r
(*                                                                    *)\r
(*   date    init     changes                                         *)\r
(*  ----------------------------------------------------------------  *)\r
(*  820730   chh      first released version                          *)\r
(*  82....   ???      various changes                                 *)\r
(*  821104   tsg      head_lgt_rout changed (paxnet router head lgt)  *)\r
(*                    rlmax changed to 3 (no. of routing levels)      *)\r
(*  821119   jbf      dok_indent_type inserted                        *)\r
(*                    f_l_n_type changed                              *)\r
(*  821119   peho     ts_conf_type inserted                           *)\r
(*  830304   peho     ts_conf_type changed                            *)\r
(*  830526   chh      new hdlc driver interface (hdlc2).              *)\r
(*  830621   jli      new ph_type(pool handler)                       *)\r
(*  840101   uh       SL buffer parameters inserted.                  *)\r
(*  840323   chh      dnic_type and net_addr_type inserted.           *)\r
(*  840331   UH       min_inp_ctr_f_sl, min_inp_dt_f_sl from slenv    *)\r
(*  840528   tsg      stdpriority ch. to minpriority (from -3)        *)\r
(*  841011   tsg      exchange-lcp operation defined (u1, u2, type)   *)\r
(*  870923   phk      inserted paxopsys_zone declarations             *)\r
(*  870924   phk      inserted the new paxopsys process families      *)\r
(*  880302   phk      inserted declaration af hdlc_line_type and the  *)\r
(*                    get_hdlc_line function                          *)\r
(*  880808   kgj      lic_max_window defined                          *)\r
(*  880628   bb       inserted idte declarations                      *)\r
(*  890524   bb       paxsem_type extended with net_addr_modifier     *)\r
(*                    paxsem access routines included                 *)\r
(*  890524   bb       tofrom included                                 *)\r
(*                    stdpriority and releasepool removed             *)\r
(*  911111   inb      mini/midi/maxi param type extended to Mega      *)\r
(*  920204   tog      target RC5000 changed to TA                     *)\r
(*  920228   bb       merged with rc8000 version of netenv            *)\r
(*                    and now common for rtp3502 and notrtp3502       *)\r
(*  930920   bb       initpool, initsem, tofrom, uadd, usub, madd     *)\r
(*                    included once again for rtp3502                 *)\r
(*                                                                    *)\r
(**********************************************************************)\r
\r
const\r
(****************************)\r
(****   version number   ****)\r
(****************************)\r
\r
vers_netenv = 0;           (* version number *)\r
rel_netenv = 0;            (* release number *)\r
\r
\r
(******************************************************)\r
(****   important PAXNET configuration constants   ****)\r
(******************************************************)\r
\r
x25_packet_size = 256;    (* length in bytes of data part of x25 packet *)\r
\r
(*************************************)\r
(****   u1 values (function)      ****)\r
(*************************************)\r
\r
exch_lcp_u1      = 155;  (* exchange lcp values (requester/server) *)\r
\r
\r
(********************************)\r
(****   u2 values (result)   ****)\r
(********************************)\r
\r
(* basic function 0 *)\r
ab_term          =  16;  (* abnormal termination/disconnection *)\r
ab_user_term     =  24;  (*  -"-               -"-             upon user request *)\r
ok               =   0;  (* processed successfully *)\r
rem_ass_req      =   8;  (* connection/setup/establish request received *)\r
 \r
(* basic function 1 *)\r
sys_not_process  =   1;  (* not processed from basis system *)\r
not_processed    =   9;  (* not processed *)\r
rejected         =  17;  (* messages rejected by module or remote user *)\r
\r
(* basic function 2 *)\r
busy             =   2;  (* no internal resources, module busy *)\r
net_not_accs     =  18;  (* network not accessible *)\r
timeout          =  10;  (* timeout has occured *)\r
\r
(* basic function 3 *)\r
no_user_res      =  11;  (* the user has not delivered the needed resource *)\r
retr_exh         =  27;  (* number of retries exhausted *)\r
rem_user_term    =  19;  (* disconnection/clear by remote user *)\r
user_term        =   3;  (* local user has closed/cleared/disconnected the data path *)\r
\r
(* basic function 4 *)\r
buf_lgth_err     =  28;  (* buffer length error *)\r
fct_not_allw     =  12;  (* function not allowed *)\r
format_err       =  20;  (* format error in message *)\r
ill_opcode       =   4;  (* illegal ( unknown ) opcode *)\r
not_mess         =  44;  (* value in u2 of message header <> 7 *)\r
rec_unkw         =  36;  (* receiver unknown *)\r
\r
(* basic function 7 *)\r
message          =   7;  (* message *)\r
\r
\r
(*******************************)\r
(****   general constants   ****)\r
(*******************************)\r
\r
forever = false;\r
$IF fln > 0\r
drv_param_lgt = 6;    (* length of drvbuftype *)\r
$ELSE\r
drv_param_lgt = 0;\r
$ENDIF\r
pax_break_code = 80;  (* break code, when a process is breaked *)\r
\r
\r
type\r
(***************************)\r
(****   general types   ****)\r
(***************************)\r
\r
$IF language <> rtp3502\r
sempointer = ^mailbox;\r
$ELSE\r
sempointer = ^semaphore;\r
$ENDIF\r
\r
tap_pointer = record\r
s: sempointer;\r
w: sempointer;\r
end;\r
\r
int32 = record\r
msp: integer;\r
lsp: integer;\r
end;\r
\r
relation = (ls, eq, gr);\r
\r
drvbuftype = record\r
$IF fln > 0\r
first: integer;\r
last: integer;\r
next: integer;\r
$ENDIF\r
end;\r
\r
f_l_n_type = record\r
$IF fln > 0\r
               first,\r
               last,\r
               next     : integer;\r
$ENDIF\r
             end;\r
\r
exch_lcp_type = record  (* for exchange lcp function *)\r
fln          : drvbuftype;\r
user_index   : integer;\r
user_lcpid   : integer;\r
server_lcpid : integer;\r
end;\r
\r
\r
(*********************************)\r
(****   configuration types   ****)\r
(*********************************)\r
\r
$IF target <> TA\r
dnic_type = packed array(1..4) of 0..15;\r
$ELSE\r
dnic_type = packed3502 array(1..4) of 0..15;\r
$ENDIF\r
\r
net_addr_type = record\r
dnic: dnic_type;\r
net: byte;\r
$if language = rtp\r
region_: byte;\r
$else\r
region: byte;\r
$endif\r
node: byte;\r
end;\r
\r
\r
(******************************)\r
(****   hdlc parameters   *****)\r
(******************************)\r
\r
const\r
max_hdlc_lines = 64;    (* maximum number of hdlc lines. must be even *)\r
\r
type\r
hdlc_semaphores = record\r
hl_control: tap_pointer;\r
hl_input: tap_pointer;\r
hl_output: tap_pointer;\r
hl_reserve: tap_pointer;\r
end;\r
\r
hdlc_table_type = array(0..max_hdlc_lines - 1) of record\r
hdlc_sems: hdlc_semaphores;\r
user: integer;\r
?: array(1..4) of integer;\r
end;\r
\r
$IF language <> rtp3502\r
hdlc_line_type = record\r
  input, output, control,\r
  reserve : ^mailbox\r
end;\r
$ELSE\r
hdlc_line_type = record\r
  input, output, control,\r
  reserve : ^semaphore\r
end;\r
$ENDIF\r
 \r
\r
(*******************************)\r
(****   router parameters   ****)\r
(*******************************)\r
\r
const\r
cmax = 9;              (* max number of connectors *)\r
rlmax = 3;             (* number of routing levels *)\r
cparam_max = 10;       (* max. number of parameters in connector create *)\r
\r
rparam_lgt = 4*typesize(integer);        (* length of rparams *)\r
head_lgt_rout = 22;    (* max. length of router headers *)\r
min_f_rout = drv_param_lgt + rparam_lgt + head_lgt_rout; (* min. value of first *)\r
\r
type\r
nwadr = array(1..rlmax) of integer;\r
\r
ltsmarray = array(1..cmax) of tap_pointer;\r
\r
conn_typ = (none, typ_locon, typ_hlcon, typ_dtecon, typ_lancon);     (* connector types *)\r
\r
cparams_type = array(1..cparam_max) of integer;\r
\r
conn_desc_type = record\r
ctyp: conn_typ;\r
cparams: cparams_type;\r
end;\r
\r
conn_desc_array = array(1..cmax) of conn_desc_type;\r
\r
\r
(****************************)\r
(****   LIC parameters   ****)\r
(****************************)\r
\r
const\r
head_lgt_lic = 10;      (* max. length of lic headers *)\r
min_f_lic = min_f_rout + head_lgt_lic; (* min. value of first *)\r
lic_max_window = 16;    (* max possible window size *)\r
\r
(* constants used for stack size computing (words) *)\r
bst_lic = 400;          (* basic stack *)\r
licdescsz = 31;         (* size of lic descriptor per lic port *)\r
linksz = 8;             (* size of ???? *)\r
\r
(* formula for computing stack size:\r
stacksize = bst_lic +\r
no_of_lics * (licdescsz + lic_max_window * linksz)    *)\r
\r
\r
(****************************)\r
(****   DCE parameters   ****)\r
(****************************)\r
\r
\r
(*************************************)\r
(****   internal DTE parameters   ****)\r
(*************************************)\r
\r
const\r
head_lgt_idte = 3;       (* max. length of x25 headers *)\r
min_f_idte = min_f_lic + head_lgt_idte; (* min. value of first *)\r
\r
dte_addr_lgt = 14;       (* DTE address length *)\r
 \r
 \r
(*********************************)\r
(****   x.21 dte parameters   ****)\r
(*********************************)\r
 \r
type\r
charge_type          = (yes,no);\r
allowed_type         = (allowed,not_allowed);\r
x21_call_type        = (normal,direct,sel_direct,abbreviated);\r
\r
\r
(***************************)\r
(****   TS parameters   ****)\r
(***************************)\r
\r
const\r
ctr_lgt_ts = 40;             (* maximum length of control parameters *)\r
dt_lgt_ts = 4;               (* maximum length of data parameters *)\r
\r
ctr_dt_ts = 128;              (* maximun length of user data in control packets *)\r
\r
min_f_ctr_ts = drv_param_lgt + ctr_lgt_ts; (* min. value of first in control primitives *)\r
min_f_dt_ts = drv_param_lgt + dt_lgt_ts;   (* min. value of first in data transfer primitives *)\r
\r
min_rctr_ts = min_f_ctr_ts + ctr_dt_ts;    (* min. length of receive control buffer (bytes) *)\r
\r
tsap_id_length   = 3;          (* length of tsap identifier *)\r
ts_pool_id_length= 3;\r
\r
type\r
nuid_type      = array(1..dte_addr_lgt)        of   char;\r
tsap_id_type   = array(1..tsap_id_length)      of   char;\r
ts_pool_id_type= array(1..ts_pool_id_length)   of   char;\r
 \r
nuid_mask      = record\r
nuid_signf    :   byte;\r
nuid          :   nuid_type;\r
end;\r
\r
tsap_id_mask = record\r
tsap_id_signf :   byte;\r
tsap_id       :   tsap_id_type;\r
end;\r
 \r
ts_pool_id_mask = record\r
pool_id_signf :   byte;\r
pool_id       :   ts_pool_id_type;\r
end;\r
\r
ts_conf_type = record\r
tsa_max,\r
tcep_id_max,\r
pool_no_max:    byte;\r
tc_max:         integer;\r
nc_max,\r
xdte_maxstream,\r
idte_maxstream,\r
gen_number,\r
dedic_number,\r
recv_tsi_no,\r
no_event_buffers,\r
dedic_input_no,\r
xdte_gen_no,\r
idte_gen_no,\r
t_low_no_tc_pr_nc,\r
t_high_no_tc_pr_nc,\r
t_sup_high_no_tc_pr_nc,\r
t_low_credit,\r
t_high_credit,\r
t_sup_high_credit,\r
t_low_min_credit,\r
t_high_min_credit,\r
t_sup_high_min_credit,\r
ack_mins,\r
ack_secs,\r
ack_msecs,\r
tick_mins,\r
tick_secs,\r
tick_msecs,\r
cr_ticks,\r
dt_ticks,\r
dr_ticks,\r
ed_ticks,\r
pr_ticks,\r
err_ticks,\r
crd_ticks               : byte;\r
end;\r
\r
\r
(*****************************)\r
(*  SL parameters            *)\r
(*****************************)\r
const\r
head_lgt_sl = 52;\r
min_ctr_f_sl  = 140;\r
max_ctr_dt_sl = ctr_dt_ts - head_lgt_sl; (* max data in sl control output*)\r
min_dt_f_sl  = 20;\r
inp_ctr_f_sl =min_f_ctr_ts; (* the value of first in input control buffers*)\r
inp_dt_f_sl = 22;\r
min_inp_ctr_l_sl    = inp_ctr_f_sl + ctr_dt_ts -1;\r
min_inp_dt_l_sl     = inp_dt_f_sl  + head_lgt_sl + 64;\r
(* SAP address type  *)\r
\r
const\r
sap_adr_suf = 4;\r
sap_adr_lgt = dte_addr_lgt + sap_adr_suf;\r
\r
type\r
\r
hex_digit = 0 .. 15;\r
\r
sap_adr_t = packed array (1 .. sap_adr_lgt) of hex_digit;\r
\r
(* Logic id types   *)\r
\r
const\r
\r
logic_id_lgt = 63;\r
\r
type\r
\r
$IF target <> TA\r
logic_id_arr = array (1 .. logic_id_lgt) of char;\r
$ELSE\r
logic_id_arr = string( logic_id_lgt ); -- RC5000 change\r
$ENDIF\r
\r
logic_id_t = record\r
lgt   : byte;\r
id    : logic_id_arr;\r
end;\r
\r
restart_type = ( runs_restart, poll_restart);\r
\r
paxsem_type = record\r
restarted          : boolean;\r
net_addr           : net_addr_type;\r
restart_kind       : restart_type;\r
poll_restart_count : integer;\r
poll_restart_limit : integer;\r
runs_restart_count : integer;\r
nmc_ssap           : sap_adr_t;\r
nmc_luid           : logic_id_t;\r
no_of_files        : byte;\r
net_addr_modifier  : alfa;\r
end;\r
\r
const\r
paxsem_type_size = typesize (paxsem_type); -- bytes\r
\r
init_paxsem_value =\r
paxsem_type(:\r
false,\r
(: (: 4 *** 0 :), 0, 0, 0 :),\r
runs_restart,\r
0,\r
0,\r
0,\r
(: sap_adr_lgt *** 0:),\r
(: 0, (: logic_id_lgt *** nul :) :),\r
7, -- will never be changed when loading from fpa\r
"            ":);\r
\r
(****    TSAT parameters   ****)\r
(******************************)\r
\r
const\r
max_tsat_tcep_id = 4;         (* max. tcep_id for one tsat incarnation *)\r
\r
type\r
tr_sem_type = array(1..max_tsat_tcep_id) of tap_pointer;\r
\r
\r
\r
(*****************************)\r
(****  POBOX parameters   ****)\r
(*****************************)\r
\r
const\r
ss_pool_id_length   = 3;\r
doc_ident_length    = 12;\r
\r
type\r
doc_ident_type  = array(1..doc_ident_length)   of   char;\r
ss_pool_id_type = array(1..ss_pool_id_length) of char;\r
ss_pool_id_mask = record\r
                  pool_id_signf:  byte;\r
                  pool_id:        ss_pool_id_type;\r
                  end;\r
\r
\r
(*****************)\r
(****   com   ****)\r
(*****************)\r
\r
const\r
com_sem_max = 5;              (* max. number of command children *)\r
com_number_max = 30;          (* max. number of commands in command field *)\r
com_index_max = 40;           (* max. number of commands used *)\r
\r
type\r
com_index_type = array(1..com_index_max) of integer;\r
alfa36 = array(1..36) of char;\r
com_type = array(1..com_number_max) of alfa36;\r
$IF language <> rtp3502\r
com_sem_type = array(1..com_sem_max) of mailbox;\r
$ELSE\r
com_sem_type = array(1..com_sem_max) of semaphore;\r
$ENDIF\r
\r
(***********************)\r
(* ISO TEST PARAMETERS *)\r
(***********************)\r
\r
netsem_array = array (61..62) of tap_pointer;\r
\r
\r
\r
(*************************************)\r
(****   pool handler parameters   ****)\r
(*************************************)\r
\r
type\r
stat = record\r
req, (* total no of requests *)\r
wreq, (* waiting requests *)\r
mwreq, (* max waiting requests *)\r
twreq, (* total no of waits *)\r
tmout: integer; (* no of timeouts *)\r
end;\r
\r
bst = record\r
buffer_size, (* buffer size in words *)\r
buf, (* total no of buffers *)\r
wait_for_dealloc,\r
freebuf, (* no of free buffers *)\r
maxfree, (* max no of free buffers *)\r
minfree: integer; (* min no of free buffers *)\r
end;\r
\r
prelement = record\r
st: stat;\r
$IF language <> rtp3502\r
sem: mailbox;\r
$ELSE\r
sem: semaphore;\r
$ENDIF\r
end;\r
\r
prtable = array(0..3) of prelement;\r
\r
pst = record\r
wreq: integer;\r
stb: bst;\r
end;\r
\r
$IF language <> rtp3502\r
ph_type = record\r
key: mailbox;  (* semaphore to protect ph *)\r
mess_sem:mailbox;\r
answ_sem:mailbox;\r
buffer_sem: mailbox;\r
bpool: pst;\r
prio: prtable;\r
end;\r
$ELSE\r
ph_type = record\r
key: semaphore;  (* semaphore to protect ph *)\r
mess_sem:semaphore;\r
answ_sem:semaphore;\r
buffer_sem: semaphore;\r
bpool: pst;\r
prio: prtable;\r
end;\r
$ENDIF\r
\r
\r
(********************************)\r
(****   snooper parameters   ****)\r
(********************************)\r
\r
const\r
max_pickups = 20;         (* max. number of pickups *)\r
\r
type\r
snoop_semp_type = array(1..max_pickups) of tap_pointer;\r
\r
(************************************)\r
(***   paxopsys zone parameters   ***)\r
(************************************)\r
\r
const\r
  sync_pax_message     = 1;\r
  pax_create_semaphore = 2;\r
  pax_free_semaphore   = 3;\r
  pax_get_hdlc_line    = 4;\r
\r
type\r
  paxopsys_type = record\r
    name1 : alfa;\r
    name2 : alfa;\r
    aux   : integer\r
  end;\r
\r
$IF language <> rtp3502\r
  paxopsys_zone = record\r
    ? :^mailbox;\r
    ? : pool;\r
    ? : mailbox;\r
    ? : reference\r
  end;\r
$ELSE\r
  paxopsys_zone = record\r
    ? :^semaphore;\r
    ? : pool 1 of paxopsys_type;\r
    ? : semaphore;\r
    ? : reference\r
  end;\r
$ENDIF\r
\r
(*************************************)\r
(***   paxopsys process families   ***)\r
(*************************************)\r
\r
type\r
$IF target <> TA\r
  mini_param_type = array(1..  8) of byte;\r
  midi_param_type = array(1.. 32) of byte;\r
  maxi_param_type = array(1..128) of byte;\r
$ELSE\r
  mini_param_type = array(1.. 16) of byte;\r
  midi_param_type = array(1.. 64) of byte;\r
  maxi_param_type = array(1..256) of byte;\r
$ENDIF\r
\r
   (************************************************************)\r
   (*    address parameters and types                          *)\r
   (*************************************************ktas/87****)\r
\r
const\r
\r
  nl_addr_length            = 40;\r
\r
  afi_length                =  2;\r
  idi_length                = 14;\r
\r
type\r
\r
  afi_type                  = array (1..afi_length) of '0'..'9';\r
  idi_type                  = array (1..idi_length) of '0'..'9';\r
  dsp_type                  = array (1..nl_addr_length \r
                                        - afi_length\r
                                        - idi_length) of '0'..'9';\r
\r
const \r
  x121_afi                 = afi_type(:'3','6':);\r
\r
\r
\r
type\r
\r
  osi_net_addr_type =\r
        record\r
        afi : afi_type;\r
        idi : idi_type;\r
        dsp : dsp_type;\r
        end;\r
\r
  nsap_addr_type =\r
        record\r
        net_act_lg  : byte;\r
        net_addr    : osi_net_addr_type;\r
        end;\r
\r
\r
\r
\r
(*****************************************)\r
(****   general external procedures   ****)\r
(*****************************************)\r
\r
procedure inc15(var i:integer);\r
external;\r
\r
procedure inc32(var i:int32);\r
external;\r
\r
function comp32(i,j: int32) : relation;\r
external;\r
\r
procedure increment_mod_64k(var i: integer);\r
external;\r
\r
$if language = rtp3502\r
function uadd(a,b:integer):integer;\r
external;\r
\r
function msub(a,b:integer):integer;\r
external;\r
\r
function madd(a,b:integer):integer;\r
external;\r
\r
function initpool(\r
var p: pool 1;\r
number: integer;\r
size_in_word: integer): integer;\r
external;\r
\r
function initsem(\r
var s: semaphore;\r
number,\r
size_in_words: integer): integer;\r
external;\r
\r
procedure tofrom(\r
var toref : reference; toindex : integer;\r
var fromref : reference; fromindex : integer;\r
bytes : integer);\r
external;\r
$endif\r
\r
procedure nameinit(\r
var name: alfa;\r
a: alfa;\r
pos,incno: integer);\r
external;\r
\r
procedure panic(code: integer);\r
external;\r
\r
$IF target <> TA\r
procedure init_pax_name(var paxname : alfa; procname : alfa; inc : byte);\r
  external;\r
$ELSE\r
procedure init_pax_name(var paxname : alfa; procname : string; inc : byte);\r
  external;\r
$ENDIF\r
\r
function sync_paxopsys(var z : paxopsys_zone; cause : integer) : integer;\r
  external;\r
\r
$IF language <> rtp3502\r
function  get_pax_sem(var z : paxopsys_zone; name : alfa) : ^mailbox;\r
  external;\r
$ELSE\r
function  get_pax_sem(var z : paxopsys_zone; name : alfa) : ^semaphore;\r
  external;\r
$ENDIF\r
\r
function free_pax_sem(var z : paxopsys_zone; name : alfa) : integer;\r
  external;\r
\r
function get_hdlc_line(var z : paxopsys_zone; var l : hdlc_line_type) : integer;\r
  external;\r
\r
CONST\r
  paxsem_ok_done         = 0;\r
  paxsem_ok_done_bad     = 1;\r
  paxsem_no_message      = 2;\r
  paxsem_no_paxsem       = 3;\r
  paxsem_ok_not_done     = 4;\r
  paxsem_ok_already_done = 5;\r
  paxsem_no_adam         = 6;\r
  paxsem_no_resource1    = 7;\r
  paxsem_no_resource2    = 8;\r
  paxsem_adam_error_low  = 9;\r
  paxsem_adam_error_high = 29;\r
  paxsem_not_done        = 30;\r
TYPE\r
  nmc_address = RECORD\r
                  ssap : sap_adr_t;\r
                  luid : logic_id_t;\r
                END;\r
\r
  FUNCTION net_addr_legal( net_addr : net_addr_type): boolean;\r
    -- net_addr expressed as 10 bcd-digits fulfills the following:\r
    -- 1st       digit in (. 2..7 .)\r
    -- 2nd..10th digit in (. 0..9 .)\r
  EXTERNAL;\r
\r
  FUNCTION create_paxsem( timer_onoff : boolean): integer;\r
    -- paxsem_ok_done         <= new paxsem-message created\r
    -- paxsem_ok_already_done <= existing paxsem-message not changed\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
    -- paxsem_no_resource1    <= lack of intermediate resources \r
    -- paxsem_no_resource2    <= lack of allocator resources\r
  EXTERNAL;\r
\r
  FUNCTION read_paxsem( VAR msg : reference;\r
                        offset : integer;\r
                        max_bytecount : integer;\r
                        VAR bytecount : integer): integer;\r
    -- paxsem_ok_done         <= paxsem-message read\r
    -- paxsem_ok_done_bad     <= only part of paxsem-message read\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION set_no_of_bls_files( no_of_files : byte): integer;\r
    -- paxsem_ok_done         <= paxsem.no_of_files := no_of_files\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION get_no_of_bls_files( VAR no_of_files : byte): integer;\r
    -- paxsem_ok_done         <= no_of_files := paxsem.no_of_files\r
    -- paxsem_ok_done_bad     <= as above, but no_of_files = 0\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION set_init_load_done: integer;\r
    -- paxsem_ok_done         <= paxsem.restarted := true\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION get_init_load_done: integer;\r
    -- paxsem_ok_done         <= paxsem.restarted = true\r
    -- paxsem_ok_not_done     <= paxsem.restarted = false\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION set_net_addr( net_addr : net_addr_type): integer;\r
    -- paxsem_ok_done         <= paxsem.net_addr := net_addr\r
    -- paxsem_not_done        <= net_addr illegal and saved net_addr legal\r
    -- paxsem_ok_done_bad     <= net_addr illegal, but so is saved net_addr\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION get_net_addr( VAR net_addr : net_addr_type): integer;\r
    -- paxsem_ok_done         <= net_addr := paxsem.net_addr\r
    -- paxsem_ok_done_bad     <= as above, but net_addr not legal\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION get_addr_modifier( VAR modifier : alfa): integer;\r
    -- paxsem_ok_done         <= modifier := paxsem.net_addr_modifier\r
    -- paxsem_ok_not_done     <= net_addr never modified\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION set_restart_nmc( restart_nmc : nmc_address): integer;\r
    -- paxsem_ok_done         <= paxsem.ssap/luid := restart_nmc\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION get_restart_nmc( VAR restart_nmc : nmc_address): integer;\r
    -- paxsem_ok_done         <= restart_nmc := paxsem.ssap/luid\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION set_poll_restart_limit( restart_limit : integer): integer;\r
    -- paxsem_ok_done         <= paxsem.poll_restart_limit := restart_limit\r
    -- paxsem_ok_done_bad     <= as above, but count now exceeds limit\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION restart_s( restart_kind : restart_type): integer;\r
    -- paxsem_ok_done         <= ok, attempt to restart s done\r
    -- paxsem_no_adam         <= couldn't find adam-semaphore\r
    -- paxsem_no_resource1    <= lack of intermediate resources \r
    -- paxsem_no_resource2    <= lack of allocator resources\r
    -- paxsem_adam_error_low ..\r
    -- paxsem_adam_error_high <= adam answer-error\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
\r
  FUNCTION restarted_get_action( VAR restart_kind : restart_type;\r
                                 VAR restart_count : integer): integer;\r
    -- paxsem_ok_done         <= ok \r
    -- paxsem_ok_done_bad     <= as above, but poll and count exceeds limit\r
    -- paxsem_no_paxsem       <= couldn't find paxsem-semaphore\r
  EXTERNAL;\r
 \r
(********************************************************************)\r
(*                                                                  *)\r
(*                       end of NETENV                              *)\r
(*                                                                  *)\r
(********************************************************************)\r
.\r