From 022c39ec18fef206d57bcab5220087508a1eb1a8 Mon Sep 17 00:00:00 2001 From: ceriel Date: Wed, 25 Feb 1987 16:41:54 +0000 Subject: [PATCH] Initial revision --- lang/occam/lib/chan_strct.c | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lang/occam/lib/chan_strct.c diff --git a/lang/occam/lib/chan_strct.c b/lang/occam/lib/chan_strct.c new file mode 100644 index 00000000..5fcb3e8b --- /dev/null +++ b/lang/occam/lib/chan_strct.c @@ -0,0 +1,39 @@ +/* chan_struct.c - channel routines for more structured objects */ +#include "ocm_chan.h" + +void cbyte_in(b, c) char *b; chan *c; +{ + long v; + chan_in(&v, c); + *b= (char) v; +} + +void c_wa_in(a, z, c) register long *a; register unsigned z; register chan *c; +{ + do + chan_in(a++, c); + while (--z!=0); +} + +void c_ba_in(a, z, c) register char *a; register unsigned z; register chan *c; +{ + do { + long v; + chan_in(&v, c); + *a++ = (char) v; + } while (--z!=0); +} + +void c_wa_out(a, z, c) register long *a; register unsigned z; register chan *c; +{ + do + chan_out(*a++, c); + while (--z!=0); +} + +void c_ba_out(a, z, c) register char *a; register unsigned z; register chan *c; +{ + do + chan_out((long) (*a++ &0377), c); + while (--z!=0); +}