glenda.party
term% ls -F
term% cat index.txt
ASYNC(3)                   Library Functions Manual                   ASYNC(3)



NAME
       async - framing for a serial line to Datakit

SYNOPSIS
       ctlfd = open(".../ctl", ORDWR);
       write(ctlfd, "push async", 10);

DESCRIPTION
       This  is  not a device, but rather a stream module (see stream(3)) that
       can be pushed onto a stream.  This module provides the  framing  necesā€
       sary  to  treat a serial line as a Datakit trunk.  It is usually pushed
       onto a stream before the dkmux module.  The frame includes a CRC.   Any
       received frames with an incorrect CRC are discarded.

       The format of a message upstream of the module is:

              channel # low byte
              channel # high byte
              control byte (0 means none)
              data bytes

       The format of a frame is:

              0x7d
              0x7d
              channel # low byte
              channel # high byte
              crc low byte
              crc high byte
              0x7d
              0x7d

       All  control  bytes in the frame are preceded by a 0x9d byte.  All 0x9d
       and 0x7d bytes in the data are followed by a 0x00 byte  to  distinguish
       them from framing or control specifiers.

SEE ALSO
       stream(3), cons(3), dk(3)

SOURCE
       /sys/src/9/port/stasync.c



                                                                      ASYNC(3)