Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (3) — Plan9 1st Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

stream(3)

cons(3)

dk(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

Plan 9  —  April 04, 1995

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026