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