!iso2.inc
! Uni-process interface to implementation of ISO-LL

%recordformat DTE F (%bytearray DTE(1:6))       { a machine address
%recordformat BUF F (%record(buf f)%name NEXT,  { a data unit descriptor
                     %name ADDRESS, %integer LENGTH)

%externalrecord(buf f)%mapspec L GET BUF (%integer WAIT)
! Acquires a buffer descriptor from the pool managed by the LL provider,
! result NIL if none available and WAIT=0.

%externalroutinespec L DATA REQUEST (%record(dte f)%name LDTE, %byte LSAP,
                         %record(dte f)%name RDTE, %byte RSAP,
                         %record(buf f)%name LSDU)
! Sends the data described by LSDU to the destination entity addressed by
! RDTE and RSAP, signed as the source entity addressed by LDTE and LSAP.
! If the ether station is not operating in promiscuous mode, the LDTE
! parameter will be ignored, and may thus normally be specified as NIL.
! Once the packet has been transmitted, the buffer descriptor is returned
! to the pool.

%externalrecord(buf f)%mapspec L INDICATED DATA(%byte SAP,
                                %record(dte f)%name LDTE, %bytename LSAP,
                                %record(dte f)%name RDTE, %bytename RSAP,
                                %integer WAIT)
! Returns a buffer descriptor containing an LSDU that has arrived at
! the access point SAP, copying the address parameters into the fields
! specified by LSAP, LDTE, RSAP, and RDTE.
! For non-promiscuous stations LDTE and LSAP may still be of interest,
! as they may be multicast addresses.  If the caller is not interested
! in the address parameters, they may be specified as NIL.
! If no packet has arrived yet, the caller is suspended unless WAIT=0,
! in which case the result is NIL.

%externalroutinespec L PUT BUF (%record(buf f)%name LSDU)
! This must be called by the user in order to return a buffer descriptor
! which it was given by L INDICATED DATA to the pool.

%externalintegerfnspec L DATA INDICATED
! This returns -1 if no packets are available waiting to be read using
! L INDICATED DATA.  If at least one packet is there, the result is the
! LSAP address of one of them.
