summaryrefslogtreecommitdiff
path: root/os/mpc/devboot.c
diff options
context:
space:
mode:
Diffstat (limited to 'os/mpc/devboot.c')
-rw-r--r--os/mpc/devboot.c132
1 files changed, 0 insertions, 132 deletions
diff --git a/os/mpc/devboot.c b/os/mpc/devboot.c
deleted file mode 100644
index 126fe6e6..00000000
--- a/os/mpc/devboot.c
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "u.h"
-#include "../port/lib.h"
-#include "mem.h"
-#include "dat.h"
-#include "fns.h"
-#include "../port/error.h"
-
-enum{
- Qdir,
- Qboot,
- Qmem,
-};
-
-Dirtab bootdir[]={
- ".", {Qdir,0,QTDIR}, 0, 0555,
- "boot", {Qboot}, 0, 0666,
- "mem", {Qmem}, 0, 0666,
-};
-
-#define NBOOT (sizeof bootdir/sizeof(Dirtab))
-
-static void
-bootreset(void)
-{
-}
-
-static Chan*
-bootattach(char *spec)
-{
- return devattach('B', spec);
-}
-
-static Walkqid*
-bootwalk(Chan *c, Chan *nc, char **name, int nname)
-{
- return devwalk(c, nc, name, nname, bootdir, NBOOT, devgen);
-}
-
-static int
-bootstat(Chan *c, uchar *dp, int n)
-{
- return devstat(c, dp, n, bootdir, NBOOT, devgen);
-}
-
-static Chan*
-bootopen(Chan *c, int omode)
-{
- return devopen(c, omode, bootdir, NBOOT, devgen);
-}
-
-static void
-bootclose(Chan*)
-{
-}
-
-static long
-bootread(Chan *c, void *buf, long n, vlong off)
-{
- ulong offset = off;
-
- switch((ulong)c->qid.path){
-
- case Qdir:
- return devdirread(c, buf, n, bootdir, NBOOT, devgen);
-
- case Qmem:
- /* kernel memory */
- if(offset>=KZERO && offset<KZERO+conf.npage*BY2PG){
- if(offset+n > KZERO+conf.npage*BY2PG)
- n = KZERO+conf.npage*BY2PG - offset;
- memmove(buf, (char*)offset, n);
- return n;
- }
- error(Ebadarg);
- }
-
- error(Egreg);
- return 0; /* not reached */
-}
-
-static long
-bootwrite(Chan *c, void *buf, long n, vlong off)
-{
- ulong offset = off;
- ulong pc;
- uchar *p;
-
- switch((ulong)c->qid.path){
- case Qmem:
- /* kernel memory */
- if(offset>=KZERO && offset<KZERO+conf.npage*BY2PG){
- if(offset+n > KZERO+conf.npage*BY2PG)
- n = KZERO+conf.npage*BY2PG - offset;
- memmove((char*)offset, buf, n);
- segflush((void*)offset, n);
- return n;
- }
- error(Ebadarg);
-
- case Qboot:
- p = (uchar*)buf;
- pc = (((((p[0]<<8)|p[1])<<8)|p[2])<<8)|p[3];
- if(pc < KZERO || pc >= KZERO+conf.npage*BY2PG)
- error(Ebadarg);
- splhi();
- segflush((void*)pc, 64*1024);
- gotopc(pc);
- }
- error(Ebadarg);
- return 0; /* not reached */
-}
-
-Dev bootdevtab = {
- 'B',
- "boot",
-
- bootreset,
- devinit,
- devshutdown,
- bootattach,
- bootwalk,
- bootstat,
- bootopen,
- devcreate,
- bootclose,
- bootread,
- devbread,
- bootwrite,
- devbwrite,
- devremove,
- devwstat,
-};