From 8a7d5b1064f8cedc319752da1f71251e70cc1922 Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Fri, 8 Jun 1979 15:51:25 -0500 Subject: [PATCH] Research V7 development Work on file usr/sys/conf/c.c Work on file usr/sys/conf/l.s Work on file usr/sys/conf/mch0.s Co-Authored-By: Dennis Ritchie Synthesized-from: v7 --- usr/sys/conf/c.c | 86 +++++++++++++++++++++++++++++++++++++++++++++ usr/sys/conf/l.s | 72 +++++++++++++++++++++++++++++++++++++ usr/sys/conf/mch0.s | 2 ++ 3 files changed, 160 insertions(+) create mode 100644 usr/sys/conf/c.c create mode 100644 usr/sys/conf/l.s create mode 100644 usr/sys/conf/mch0.s diff --git a/usr/sys/conf/c.c b/usr/sys/conf/c.c new file mode 100644 index 0000000000..8b82f1fb90 --- /dev/null +++ b/usr/sys/conf/c.c @@ -0,0 +1,86 @@ +#include "../h/param.h" +#include "../h/systm.h" +#include "../h/buf.h" +#include "../h/tty.h" +#include "../h/conf.h" +#include "../h/proc.h" +#include "../h/text.h" +#include "../h/dir.h" +#include "../h/user.h" +#include "../h/file.h" +#include "../h/inode.h" +#include "../h/acct.h" + +int nulldev(); +int nodev(); +int rkstrategy(); +struct buf rktab; +int htopen(), htclose(), htstrategy(); +struct buf httab; +struct bdevsw bdevsw[] = +{ + nulldev, nulldev, rkstrategy, &rktab, /* rk = 0 */ + nodev, nodev, nodev, 0, /* rp = 1 */ + nodev, nodev, nodev, 0, /* rf = 2 */ + nodev, nodev, nodev, 0, /* tm = 3 */ + nodev, nodev, nodev, 0, /* tc = 4 */ + nodev, nodev, nodev, 0, /* hs = 5 */ + nodev, nodev, nodev, 0, /* hp = 6 */ + htopen, htclose, htstrategy, &httab, /* ht = 7 */ + nodev, nodev, nodev, 0, /* rl = 8 */ + 0 +}; + +int klopen(), klclose(), klread(), klwrite(), klioctl(); +int mmread(), mmwrite(); +int rkread(), rkwrite(); +int htread(), htwrite(); +int syopen(), syread(), sywrite(), sysioctl(); + +struct cdevsw cdevsw[] = +{ + klopen, klclose, klread, klwrite, klioctl, nulldev, 0, /* console = 0 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* pc = 1 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* lp = 2 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* dc = 3 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* dh = 4 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* dp = 5 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* dj = 6 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* dn = 7 */ + nulldev, nulldev, mmread, mmwrite, nodev, nulldev, 0, /* mem = 8 */ + nulldev, nulldev, rkread, rkwrite, nodev, nulldev, 0, /* rk = 9 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* rf = 10 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* rp = 11 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* tm = 12 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* hs = 13 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* hp = 14 */ + htopen, htclose, htread, htwrite, nodev, nulldev, 0, /* ht = 15 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* du = 16 */ + syopen, nulldev, syread, sywrite, sysioctl, nulldev, 0, /* tty = 17 */ + nodev, nodev, nodev, nodev, nodev, nulldev, 0, /* rl = 18 */ + 0 +}; + +int ttyopen(), ttyclose(), ttread(), ttwrite(), ttyinput(), ttstart(); +struct linesw linesw[] = +{ + ttyopen, nulldev, ttread, ttwrite, nodev, ttyinput, ttstart, /* 0 */ + 0 +}; +int rootdev = makedev(0, 0); +int swapdev = makedev(0, 0); +int pipedev = makedev(0, 0); +int nldisp = 1; +daddr_t swplo = 4000; +int nswap = 872; + +struct buf buf[NBUF]; +struct file file[NFILE]; +struct inode inode[NINODE]; +int mpxchan(); +int (*ldmpx)() = mpxchan; +struct proc proc[NPROC]; +struct text text[NTEXT]; +struct buf bfreelist; +struct acct acctbuf; +struct inode *acctp; diff --git a/usr/sys/conf/l.s b/usr/sys/conf/l.s new file mode 100644 index 0000000000..c555d95c13 --- /dev/null +++ b/usr/sys/conf/l.s @@ -0,0 +1,72 @@ +/ low core + +.data +ZERO: + +br4 = 200 +br5 = 240 +br6 = 300 +br7 = 340 + +. = ZERO+0 + br 1f + 4 + +/ trap vectors + trap; br7+0. / bus error + trap; br7+1. / illegal instruction + trap; br7+2. / bpt-trace trap + trap; br7+3. / iot trap + trap; br7+4. / power fail + trap; br7+5. / emulator trap + start;br7+6. / system (overlaid by 'trap') + +. = ZERO+40 +.globl start, dump +1: jmp start + jmp dump + + +. = ZERO+60 + klin; br4 + klou; br4 + +. = ZERO+100 + kwlp; br6 + kwlp; br6 + +. = ZERO+114 + trap; br7+7. / 11/70 parity + +. = ZERO+220 + rkio; br5 + +. = ZERO+224 + htio; br5 + +. = ZERO+240 + trap; br7+7. / programmed interrupt + trap; br7+8. / floating point + trap; br7+9. / segmentation violation + +////////////////////////////////////////////////////// +/ interface code to C +////////////////////////////////////////////////////// + +.text +.globl call, trap + +.globl _klrint +klin: jsr r0,call; jmp _klrint +.globl _klxint +klou: jsr r0,call; jmp _klxint + +.globl _clock +kwlp: jsr r0,call; jmp _clock + + +.globl _rkintr +rkio: jsr r0,call; jmp _rkintr + +.globl _htintr +htio: jsr r0,call; jmp _htintr diff --git a/usr/sys/conf/mch0.s b/usr/sys/conf/mch0.s new file mode 100644 index 0000000000..67346533b2 --- /dev/null +++ b/usr/sys/conf/mch0.s @@ -0,0 +1,2 @@ +HTDUMP = 1 +TUDUMP = 0 -- 2.20.1