Initial revision
authorceriel <none@none>
Wed, 25 Feb 1987 16:41:54 +0000 (16:41 +0000)
committerceriel <none@none>
Wed, 25 Feb 1987 16:41:54 +0000 (16:41 +0000)
lang/occam/lib/chan_strct.c [new file with mode: 0644]

diff --git a/lang/occam/lib/chan_strct.c b/lang/occam/lib/chan_strct.c
new file mode 100644 (file)
index 0000000..5fcb3e8
--- /dev/null
@@ -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);
+}