[comp.os.minix] Important announcement about 1.3 kernel

ast@cs.vu.nl (Andy Tanenbaum) (06/28/88)

I am about to do something that I don't like doing, and have even castigated
other people for doing.  Still, under the circumstances, I am not sure what
else I can do.

I am basically finished with the V1.3 kernel with one exception: the RS232
driver.  This is a feature that we have discussed here so often that I clearly
think it is worth having.  Several drivers have been posted to this newsgroup,
but none of them really worked properly, and all of them made major changes to
the structure of the system.  Furthermore, none of them are compatible with
the V1.3 changes made on account of the Atari version (obviously this is not
the fault of the authors, but it is an issue).  Anyway, two of my students
modified tty.c to handle RS232 without changing the system structure and being
compatible with the Atari changes (e.g., process groups).  Unfortunately, one
of the students has gone on vacation, and although the other is still working
on it, he doesn't have convenient access to a computer.  I don't have a
terminal to test it on.  The net result is that the RS232 part of the driver
has not been tested.  The non-RS232 part has been tested thoroughly, as has
the rest of the kernel.

Since I can't really test it, I have decided to post the complete kernel
diffs in their current state.  If you install them, you get a kernel that
works normally, and is prepared for networking (to be posted later), but
may or may not work properly when you read or write to /dev/tty1 (device
4, 1).  My fervent hope is that some of the many readers of this group will
test (and if need be, debug it).  As an aide to debugging, I have installed
some debugging code.  There are calls to Count() and Event() scattered around
the code.  The former count events, and the latter keep track of the most
recent 32 events.  By hitting F5 you get a dump.  All the debugging code is
termporary, and will vanish as soon as it is debugged.  As one final debugging
aide, in rs_write_int contains a call to putc() to copy all RS232 output
to the screen as well as to the terminal.  Remove this if you don't need it.

Finally, RS232_VECTOR is set to 12 and mpx88.s thinks this is device 1.  I
am not sure if this is a good choice, but vector 11 was already in use for
Ethernet.  If your configuration is different, fix these.

Please post discussions of debugging tty rather than sending me mail.  Any
bugs you find will be of interest to many people.

Below are ls -l and sum listings of kernel, mm, h, and fs as they should be
after applying the fixes.

Andy Tanenbaum (ast@cs.vu.nl)


fs:
total 187
-rw-r--r--  1 ast          2988 Jun  3 21:38 buf.h
-rw-r--r--  1 ast         10863 Jun  3 21:38 cache.c
-rw-r--r--  1 ast          2925 Jun  3 21:38 const.h
-rw-r--r--  1 ast           273 Jun  3 21:38 dev.h
-rw-r--r--  1 ast          8530 Jun 26 23:10 device.c
-rw-r--r--  1 ast           474 Jun  3 21:38 file.h
-rw-r--r--  1 ast          3225 Jun  3 21:38 filedes.c
-rw-r--r--  1 ast          1502 Jun  3 21:38 fproc.h
-rw-r--r--  1 ast          1013 Jun  3 21:38 glo.h
-rw-r--r--  1 ast          7849 Jun  3 21:38 inode.c
-rw-r--r--  1 ast          1943 Jun  3 21:38 inode.h
-rw-r--r--  1 ast          5521 Jun  3 21:38 link.c
-rw-r--r--  1 ast         15303 Jun 26 23:10 main.c
-rw-r--r--  1 ast          4190 Jun  3 21:38 makefile
-rw-r--r--  1 ast          7670 Jun  3 21:38 misc.c
-rw-r--r--  1 ast          6257 Jun  3 21:38 mount.c
-rw-r--r--  1 ast          9226 Jun  3 21:38 open.c
-rw-r--r--  1 ast          1557 Jun  3 21:38 param.h
-rw-r--r--  1 ast         10716 Jun  3 21:38 path.c
-rw-r--r--  1 ast          8401 Jun  3 21:38 pipe.c
-rw-r--r--  1 ast          5864 Jun  3 21:38 protect.c
-rw-r--r--  1 ast          1440 Jun  3 21:38 putc.c
-rw-r--r--  1 ast         12198 Jun 26 23:10 read.c
-rw-r--r--  1 ast          5397 Jun  3 21:38 stadir.c
-rw-r--r--  1 ast          8912 Jun  3 21:38 super.c
-r--r--r--  1 ast          2081 Jun  3 21:38 super.h
-rw-r--r--  1 ast          4312 Jun  3 21:38 table.c
-rw-r--r--  1 ast          2620 Jun  3 21:38 time.c
-rw-r--r--  1 ast           710 Jun  3 21:38 type.h
-rw-r--r--  1 ast          5396 Jun  3 21:38 utility.c
-rw-r--r--  1 ast          7367 Jun  3 21:38 write.c

h:
total 31
-rw-r--r--  1 ast          1683 Jun  3 21:39 callnr.h
-rw-r--r--  1 ast          7424 Jun 26 23:09 com.h
-rw-r--r--  1 ast          4397 Jun  3 21:39 const.h
-rw-r--r--  1 ast          2191 Jun  3 21:39 error.h
-rw-r--r--  1 ast          1434 Jun 26 23:09 sgtty.h
-rw-r--r--  1 ast          1115 Jun  3 21:39 signal.h
-rw-r--r--  1 ast           861 Jun  3 21:39 stat.h
-rw-r--r--  1 ast          4001 Jun  3 21:39 type.h

kernel:
total 292
-rw-r--r--  1 ast         15925 Jun 26 23:10 at_wini.c
-rw-r--r--  1 ast          8874 Jun  3 21:40 clock.c
-rw-r--r--  1 ast          2683 Jun 26 23:10 const.h
-rw-r--r--  1 ast          3542 Jun  3 21:40 dmp.c
-rw-r--r--  1 ast         26050 Jun 26 23:10 floppy.c
-rw-r--r--  1 ast           599 Jun  3 21:40 glo.h
-rw-rw-rw-  1 ast         24997 Jun  3 21:40 klib88.s
-rw-r--r--  1 ast         10261 Jun 27 22:39 main.c
-rw-r--r--  1 ast          3078 Jun  3 21:40 makefile
-rw-r--r--  1 ast          5274 Jun 26 23:10 memory.c
-rw-r--r--  1 ast         13260 Jun 26 23:13 mpx88.s
-rw-r--r--  1 ast          9914 Jun  3 21:40 printer.c
-rw-r--r--  1 ast         13531 Jun 27 22:39 proc.c
-rw-r--r--  1 ast          2324 Jun 26 23:10 proc.h
-rw-r--r--  1 ast         19824 Jun 26 23:10 system.c
-rw-r--r--  1 ast          3617 Jun  3 21:40 table.c
-rw-r--r--  1 ast         71474 Jun 27 22:41 tty.c
-rw-r--r--  1 ast           742 Jun  3 21:40 type.h
-rw-r--r--  1 ast         26312 Jun 26 23:10 xt_wini.c

mm:
total 91
-rw-r--r--  1 ast          7857 Jun  3 21:38 alloc.c
-rw-r--r--  1 ast          7234 Jun  3 21:38 break.c
-r--r--r--  1 ast           744 Jun  3 21:38 const.h
-rw-r--r--  1 ast         17059 Jun  3 21:38 exec.c
-rw-r--r--  1 ast          9912 Jun  3 21:38 forkexit.c
-rw-r--r--  1 ast          1572 Jun  3 21:38 getset.c
-rw-r--r--  1 ast           799 Jun  3 21:38 glo.h
-rw-r--r--  1 ast          7272 Jun  3 21:38 main.c
-rw-r--r--  1 ast          1827 Jun  3 21:38 makefile
-rw-r--r--  1 ast          1661 Jun  3 21:38 mproc.h
-rw-r--r--  1 ast           677 Jun  3 21:38 param.h
-rw-r--r--  1 ast          1487 Jun  3 21:38 putc.c
-rw-r--r--  1 ast         13823 Jun  3 21:38 signal.c
-rw-r--r--  1 ast          3143 Jun  3 21:38 table.c
-rw-r--r--  1 ast           238 Jun  3 21:38 type.h
-rw-r--r--  1 ast          4181 Jun  3 21:38 utility.c

Sum listings - ignore the second number (these were done on the SUN)
48128     2 h/callnr.h
21939     8 h/com.h
47686     5 h/const.h
27489     3 h/error.h
53887     2 h/sgtty.h
60522     2 h/signal.h
02791     1 h/stat.h
41394     4 h/type.h

59931     8 mm/alloc.c
10052     8 mm/break.c
45764     1 mm/const.h
23112    17 mm/exec.c
23801    10 mm/forkexit.c
38667     2 mm/getset.c
05975     1 mm/glo.h
31173     8 mm/main.c
35943     2 mm/makefile
50783     2 mm/mproc.h
22827     1 mm/param.h
18405     2 mm/putc.c
15583    14 mm/signal.c
03826     4 mm/table.c
54367     1 mm/type.h
37329     5 mm/utility.c

40004     3 fs/buf.h
58946    11 fs/cache.c
23580     3 fs/const.h
15899     1 fs/dev.h
57260     9 fs/device.c
21474     1 fs/file.h
30842     4 fs/filedes.c
36879     2 fs/fproc.h
14328     1 fs/glo.h
58546     8 fs/inode.c
00348     2 fs/inode.h
47671     6 fs/link.c
00969    15 fs/main.c
13439     5 fs/makefile
43696     8 fs/misc.c
48883     7 fs/mount.c
40669    10 fs/open.c
50155     2 fs/param.h
59468    11 fs/path.c
30543     9 fs/pipe.c
56417     6 fs/protect.c
24524     2 fs/putc.c
64036    12 fs/read.c
04463     6 fs/stadir.c
52269     9 fs/super.c
32509     3 fs/super.h
18944     5 fs/table.c
33717     3 fs/time.c
25582     1 fs/type.h
64104     6 fs/utility.c
65375     8 fs/write.c

38225    16 kernel/at_wini.c
00963     9 kernel/clock.c
28520     3 kernel/const.h
17432     4 kernel/dmp.c
64042    26 kernel/floppy.c
59854     1 kernel/glo.h
41244    25 kernel/klib88.s
10988    11 kernel/main.c
16014     4 kernel/makefile
49658     6 kernel/memory.c
43743    13 kernel/mpx88.s
64081    10 kernel/printer.c
08788    14 kernel/proc.c
39886     3 kernel/proc.h
46461    20 kernel/system.c
35196     4 kernel/table.c
17517    70 kernel/tty.c
12620     1 kernel/type.h
29207    26 kernel/xt_wini.c