summaryrefslogtreecommitdiff
path: root/module/inflate.m
blob: c547ec168e103bb8ee69658c2ee7208629f5fcbb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Inflate: module
{
	PATH:	con "/dis/lib/inflate.dis";

	InflateBlock:	con 16r8000;
	InflateMask:	con 16rf0000;

	InflateEmptyIn,
	InflateFlushOut,
	InflateAck,
	InflateDone,
	InflateError:	con iota + (1 << 16) + 1;

	# conduit for data streaming between inflate and its producer/consumer
	InflateIO: adt
	{
		ibuf: array of byte;	# input buffer [InflateBlock]
		obuf: array of byte;	# output buffer [InflateBlock]
		c: chan of int;	# for inflate <-> server comm.
	};
	
	init: fn();
	reset: fn(): ref InflateIO;
	inflate: fn();
};