ASYNC(3) 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 necessary 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
Page 1 Plan 9 (printed 10/30/25)