!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.