53 lines
		
	
	
	
		
			897 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			897 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* $Header$ */
 | 
						|
/*	ocrt.c - Occam runtime support */
 | 
						|
#include "ocm_chan.h"
 | 
						|
 | 
						|
int chandes[]= { 0, 0, sizeof(int)+sizeof(long) };
 | 
						|
int worddes[]= { 0, 0, sizeof(long) };
 | 
						|
int bytedes[]= { 0, 0, 1 };
 | 
						|
long any;
 | 
						|
 | 
						|
void catch(sig, file, line) int sig; char *file; int line;
 | 
						|
/* Catches traps in the occam program */
 | 
						|
{
 | 
						|
	register char *mes;
 | 
						|
 | 
						|
	switch (sig) {
 | 
						|
	case 0:
 | 
						|
		mes="array bound error";
 | 
						|
		break;
 | 
						|
	case 6:
 | 
						|
		mes="division by zero";
 | 
						|
		break;
 | 
						|
	case 8:
 | 
						|
		mes="undefined variable";
 | 
						|
		break;
 | 
						|
	default:
 | 
						|
		return;
 | 
						|
	}
 | 
						|
	fprintf(stderr, "%s (%d) F: %s\n", file, line, mes);
 | 
						|
	abort();
 | 
						|
}
 | 
						|
 | 
						|
chan file[20];
 | 
						|
FILE *unix_file[20];
 | 
						|
 | 
						|
void initfile()
 | 
						|
{
 | 
						|
	register i;
 | 
						|
	register chan *c=file;
 | 
						|
 | 
						|
	for (i=0; i<20; i++) {
 | 
						|
		c->type=C_T_FILE;
 | 
						|
		c->f.flgs=0;
 | 
						|
		(c++)->f.index=i;
 | 
						|
	}
 | 
						|
	file[0].f.flgs|=C_F_INUSE;
 | 
						|
	unix_file[0]=stdin;
 | 
						|
 | 
						|
	file[1].f.flgs|=C_F_INUSE;
 | 
						|
	unix_file[1]=stdout;
 | 
						|
 | 
						|
	file[2].f.flgs|=C_F_INUSE;
 | 
						|
	unix_file[2]=stderr;
 | 
						|
}
 |