datakit(3) [plan9 man page]
DATAKIT(3) Library Functions Manual DATAKIT(3) NAME
incon, hsvme, hs386 - Datakit interface SYNOPSIS
bind -a #i /dev bind -a #h /dev #i/data #i/ctl #h/data #h/ctl DESCRIPTION
The Datakit interface is a stream directory containing a data and a control file. Each write to the data file is a structured message. The first two bytes of the message are a 9-bit virtual circuit number, low order byte first. The third byte is a control byte. The rest are data bytes. The data bytes are sent onto the Datakit virtual circuit, tagged as data, followed by the control byte, tagged as control. Messages coming from Datakit are read from the data file in the same format. A read terminates at the end of a message. The largest pos- sible received message is 1024 + 3 bytes. SEE ALSO
dk(3) SOURCE
/sys/src/9/*/devhs.c /sys/src/9/*/devincon.c DATAKIT(3)
Check Out this Related Man Page
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)