xref: /inferno-os/module/devpointer.m (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1*46439007SCharles.ForsythDevpointer: module
2*46439007SCharles.Forsyth{
3*46439007SCharles.Forsyth	PATH:	con	"/dis/lib/devpointer.dis";
4*46439007SCharles.Forsyth
5*46439007SCharles.Forsyth	Size:		con 1+4*12;	# 'm' plus 4 12-byte decimal integers
6*46439007SCharles.Forsyth	# merge events that have the same button state.
7*46439007SCharles.Forsyth	Ptrqueue: adt {
8*46439007SCharles.Forsyth		last: ref Draw->Pointer;
9*46439007SCharles.Forsyth		h, t: list of ref Draw->Pointer;
10*46439007SCharles.Forsyth		put:			fn(q: self ref Ptrqueue, s: ref Draw->Pointer);
11*46439007SCharles.Forsyth		get:			fn(q: self ref Ptrqueue): ref Draw->Pointer;
12*46439007SCharles.Forsyth		peek:		fn(q: self ref Ptrqueue): ref Draw->Pointer;
13*46439007SCharles.Forsyth		nonempty:	fn(q: self ref Ptrqueue): int;
14*46439007SCharles.Forsyth	};
15*46439007SCharles.Forsyth
16*46439007SCharles.Forsyth	init:		fn();
17*46439007SCharles.Forsyth	reader:	fn(file: string, posn: chan of ref Draw->Pointer, pid: chan of (int, string));
18*46439007SCharles.Forsyth	bytes2ptr:	fn(b: array of byte): ref Draw->Pointer;
19*46439007SCharles.Forsyth	ptr2bytes:	fn(p: ref Draw->Pointer): array of byte;
20*46439007SCharles.Forsyth	srv:	fn(c: chan of ref Draw->Pointer, f: ref Sys->FileIO);
21*46439007SCharles.Forsyth};
22