code: purgatorio

Download patch

ref: ccd7f9f1597e56d121e1d05cf6af86f688ef2c48
parent: 995a32b23775fd83b4d808d713b8d885cc2b297b
author: henesy <devnull@localhost>
date: Sun Nov 11 18:32:59 EST 2018

add extra INSTALL step to create stub directories

--- a/INSTALL
+++ b/INSTALL
@@ -62,7 +62,7 @@
      name), SYSHOST and OBJTYPE.  The comments in  the  file
      should help you choose.
 
-2    Run  makemk.sh to rebuild the   mk  command,  which  is
+2    Run `makemk.sh` to rebuild the `mk` command,  which  is
      used to build everything else.
 
 3    Set  PATH (or  path on Plan 9)  to  include  the    bin
@@ -69,9 +69,11 @@
      directory for the platform, which will now contain the
      mk binary just built.  On Unix, export  PATH.
 
-4    Then  mk nuke to remove any extraneous object files.
+4    Then `mk nuke` to remove any extraneous object files.
 
-5    Finally,    mk  install  to  create  and  install   the
+5	Then `mk mkdirs` to create all the missing directories.
+
+6    Finally, `mk install` to create and install   the
      libraries,    limbo  compiler,  emu for hosted Inferno,
      and auxiliary commands.  The rules do that in an  order
      that ensures that the commands or libraries needed by a
@@ -84,3 +86,4 @@
 search path, since there is no  equivalent  of    makemk.sh.
 Otherwise  the procedure is the same.  On Plan 9, of course,
 the host system's normal version of  mk should be adequate.
+
binary files a/Linux/386/bin/c2l b/Linux/386/bin/c2l differ
binary files a/Linux/386/bin/data2c b/Linux/386/bin/data2c differ
binary files a/Linux/386/bin/ftl b/Linux/386/bin/ftl differ
binary files a/Linux/386/bin/iar b/Linux/386/bin/iar differ
binary files a/Linux/386/bin/idea b/Linux/386/bin/idea differ
binary files a/Linux/386/bin/inm b/Linux/386/bin/inm differ
binary files a/Linux/386/bin/iyacc b/Linux/386/bin/iyacc differ
binary files a/Linux/386/bin/kprof b/Linux/386/bin/kprof differ
binary files a/Linux/386/bin/ksize b/Linux/386/bin/ksize differ
binary files a/Linux/386/bin/kstrip b/Linux/386/bin/kstrip differ
binary files a/Linux/386/bin/md5sum b/Linux/386/bin/md5sum differ
binary files a/Linux/386/bin/mk b/Linux/386/bin/mk differ
binary files a/Linux/386/bin/mk.save b/Linux/386/bin/mk.save differ
binary files a/Linux/386/bin/mkext b/Linux/386/bin/mkext differ
binary files a/Linux/386/bin/mkppcimage b/Linux/386/bin/mkppcimage differ
binary files a/Linux/386/bin/ms2 b/Linux/386/bin/ms2 differ
binary files a/Linux/386/bin/ndate b/Linux/386/bin/ndate differ
binary files a/Linux/386/bin/sqz b/Linux/386/bin/sqz differ
binary files a/Linux/386/bin/srclist b/Linux/386/bin/srclist differ
binary files a/Linux/386/bin/styxtest b/Linux/386/bin/styxtest differ
--- /dev/null
+++ b/emu/Linux/emu.c
@@ -1,0 +1,90 @@
+#include "dat.h"
+#include "fns.h"
+#include "error.h"
+#include "interp.h"
+
+
+#include "emu.root.h"
+
+ulong ndevs = 28;
+
+extern Dev rootdevtab;
+extern Dev consdevtab;
+extern Dev envdevtab;
+extern Dev mntdevtab;
+extern Dev pipedevtab;
+extern Dev progdevtab;
+extern Dev profdevtab;
+extern Dev srvdevtab;
+extern Dev dupdevtab;
+extern Dev ssldevtab;
+extern Dev capdevtab;
+extern Dev fsdevtab;
+extern Dev cmddevtab;
+extern Dev indirdevtab;
+extern Dev drawdevtab;
+extern Dev pointerdevtab;
+extern Dev snarfdevtab;
+extern Dev ipdevtab;
+extern Dev eiadevtab;
+extern Dev memdevtab;
+Dev* devtab[]={
+	&rootdevtab,
+	&consdevtab,
+	&envdevtab,
+	&mntdevtab,
+	&pipedevtab,
+	&progdevtab,
+	&profdevtab,
+	&srvdevtab,
+	&dupdevtab,
+	&ssldevtab,
+	&capdevtab,
+	&fsdevtab,
+	&cmddevtab,
+	&indirdevtab,
+	&drawdevtab,
+	&pointerdevtab,
+	&snarfdevtab,
+	&ipdevtab,
+	&eiadevtab,
+	&memdevtab,
+	nil,
+	nil,
+	nil,
+	nil,
+	nil,
+	nil,
+	nil,
+	nil,
+	nil,
+};
+
+void links(void){
+}
+
+extern void sysmodinit(void);
+extern void drawmodinit(void);
+extern void tkmodinit(void);
+extern void mathmodinit(void);
+extern void srvmodinit(void);
+extern void keyringmodinit(void);
+extern void cryptmodinit(void);
+extern void ipintsmodinit(void);
+extern void loadermodinit(void);
+extern void freetypemodinit(void);
+void modinit(void){
+	sysmodinit();
+	drawmodinit();
+	tkmodinit();
+	mathmodinit();
+	srvmodinit();
+	keyringmodinit();
+	cryptmodinit();
+	ipintsmodinit();
+	loadermodinit();
+	freetypemodinit();
+}
+
+char* conffile = "emu";
+ulong kerndate = KERNDATE;
--- /dev/null
+++ b/emu/Linux/emu.root.c
@@ -1,0 +1,1 @@
+/* Generated by mkroot */
--- /dev/null
+++ b/emu/Linux/emu.root.h
@@ -1,0 +1,25 @@
+int rootmaxq = 10;
+Dirtab roottab[10] = {
+	"",	{0, 0, QTDIR},	 0,	0555,
+	"dev",	{1, 0, QTDIR},	 0,	0555,
+	"fd",	{2, 0, QTDIR},	 0,	0555,
+	"prog",	{3, 0, QTDIR},	 0,	0555,
+	"prof",	{4, 0, QTDIR},	 0,	0555,
+	"net",	{5, 0, QTDIR},	 0,	0555,
+	"net.alt",	{6, 0, QTDIR},	 0,	0555,
+	"chan",	{7, 0, QTDIR},	 0,	0555,
+	"nvfs",	{8, 0, QTDIR},	 0,	0555,
+	"env",	{9, 0, QTDIR},	 0,	0555,
+};
+Rootdata rootdata[10] = {
+	0,	 &roottab[1],	 9,	nil,
+	0,	 nil,	 0,	 nil,
+	0,	 nil,	 0,	 nil,
+	0,	 nil,	 0,	 nil,
+	0,	 nil,	 0,	 nil,
+	0,	 nil,	 0,	 nil,
+	0,	 nil,	 0,	 nil,
+	0,	 nil,	 0,	 nil,
+	0,	 nil,	 0,	 nil,
+	0,	 nil,	 0,	 nil,
+};
--- /dev/null
+++ b/emu/Linux/errstr.h
@@ -1,0 +1,65 @@
+char Enoerror[] = "no error";
+char Emount[] = "inconsistent mount";
+char Eunmount[] = "not mounted";
+char Eunion[] = "not in union";
+char Emountrpc[] = "mount rpc error";
+char Eshutdown[] = "mounted device shut down";
+char Eowner[] = "not owner";
+char Eunknown[] = "unknown user or group id";
+char Enocreate[] = "mounted directory forbids creation";
+char Enonexist[] = "file does not exist";
+char Eexist[] = "file already exists";
+char Ebadsharp[] = "unknown device in # filename";
+char Enotdir[] = "not a directory";
+char Eisdir[] = "file is a directory";
+char Ebadchar[] = "bad character in file name";
+char Efilename[] = "file name syntax";
+char Eperm[] = "permission denied";
+char Ebadusefd[] = "inappropriate use of fd";
+char Ebadarg[] = "bad arg in system call";
+char Einuse[] = "device or object already in use";
+char Eio[] = "i/o error";
+char Etoobig[] = "read or write too large";
+char Etoosmall[] = "read or write too small";
+char Enetaddr[] = "bad network address";
+char Emsgsize[] = "message is too big for protocol";
+char Enetbusy[] = "network device is busy or allocated";
+char Enoproto[] = "network protocol not supported";
+char Enoport[] = "network port not available";
+char Enoifc[] = "bad interface or no free interface slots";
+char Enolisten[] = "not announced";
+char Ehungup[] = "i/o on hungup channel";
+char Ebadctl[] = "bad process or channel control request";
+char Enodev[] = "no free devices";
+char Enoenv[] = "no free environment resources";
+char Ethread[] = "thread exited";
+char Enochild[] = "no living children";
+char Eioload[] = "i/o error in demand load";
+char Enovmem[] = "out of memory: virtual memory";
+char Ebadld[] = "illegal line discipline";
+char Ebadfd[] = "fd out of range or not open";
+char Eisstream[] = "seek on a stream";
+char Ebadexec[] = "exec header invalid";
+char Etimedout[] = "connection timed out";
+char Econrefused[] = "connection refused";
+char Econinuse[] = "connection in use";
+char Enetunreach[] = "network unreachable";
+char Eintr[] = "interrupted";
+char Enomem[] = "out of memory: kernel";
+char Esfnotcached[] = "subfont not cached";
+char Esoverlap[] = "segments overlap";
+char Emouseset[] = "mouse type already set";
+char Eshort[] = "i/o count too small";
+char Enobitstore[] = "out of screen memory";
+char Egreg[] = "jim'll fix it";
+char Ebadspec[] = "bad attach specifier";
+char Estopped[] = "thread must be stopped";
+char Enoattach[] = "mount/attach disallowed";
+char Eshortstat[] = "stat buffer too small";
+char Enegoff[] = "negative i/o offset";
+char Ebadstat[] = "malformed stat buffer";
+char Ecmdargs[] = "wrong #args in control message";
+char	Enofd[] = "no free file descriptors";
+char Enoctl[] = "unknown control request";
+
+void	error(char*);
binary files a/utils/mk/mk b/utils/mk/mk differ