|
|
1.1 root 1: /* io.h - fgetc, fputc, getchar, isbaddev, putchar */
2:
3: #include <iodisp.h>
4:
5: #if defined(NDEVS) && NDEVS > 0
6: #define INTVECI ((int)devveci0) /* lowest input interrupt dispatch loc */
7: #define INTVECO ((int)devveco0) /* lowest output interrupt dispatch loc */
8: #define DVECSIZE (INTVECO-INTVECI)/* bytes per dispatch vector-to loc */
9: #else
10: #define INTVECI NULLPTR /* dummy definitions */
11: #define INTVECO NULLPTR
12: #define DVECSIZE 0
13: #endif
14:
15: struct intmap { /* device-to-interrupt routine mapping */
16: int (*iin)(); /* address of input interrupt routine */
17: int icode; /* argument passed to input routine */
18: int (*iout)(); /* address of output interrupt routine */
19: int ocode; /* argument passed to output routine */
20: };
21:
22: #ifdef NDEVS
23: extern struct intmap intmap[NDEVS];
24: #define isbaddev(f) ( (f)<0 || (f)>=NDEVS )
25: #endif
26:
27: #define BADDEV -1
28:
29: /* In-line I/O procedures */
30:
31: #define getchar() getc(CONSOLE)
32: #define putchar(ch) putc(CONSOLE,(ch))
33: #define fgetc(unit) getc((unit))
34: #define fputc(unit,ch) putc((unit),(ch))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.