Initial revision
This commit is contained in:
parent
362378a94a
commit
0d6d5ff541
39
lang/occam/lib/chan_strct.c
Normal file
39
lang/occam/lib/chan_strct.c
Normal file
|
@ -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);
|
||||||
|
}
|
Loading…
Reference in a new issue