[comp.os.minix] fs patches part 1/3

poole@forty2.UUCP (Simon Poole) (03/14/89)

The following patches to fs take minix a small step on the way to
some POSIX compatiblity, while they where developed on a ST, I don't
know of any reason why they shouldn't work on a PC. Please read
FSCHANGES.DOC besides applying the patches, it explains what I changed 
and why (this might be interesting even if you don't apply the patches).

WARNING: 
========

while I have been running the modified fs for over one and a
half months now, there is still a non-zero probability that there is a
bug or two somewhere. It is a GOOD IDEA to run the Minix test programs
with a modified fs with a file system that can be rebuilt without problems
(typically /dev/ram) BEFORE you mount your xx MB harddisk.

INSTALLATION:
=============

Unpack the shar files in the top level of your minix source directory,
after moving lib/open.c and fs/open.c somewhere safe (these two files are 
replaced completly and are not patched). Recompile minix and run the test 
programs (somewhere where it doesn't matter if the file system gets trashed).
Add mkfifo.c to lib/Makefile and rebuild the libary, recompile ls and fsck.


		Happy hacking
			Simon Poole

PS: the man pages were partly stolen from the PC 1.3 man pages 
-- 
----------------------------------------------------------------------------
UUCP:   ...mcvax!cernvax!forty2!poole			Simon Poole
BITNET: K538915@CZHRZU1A
----------------------------------------------------------------------------

ast@cs.vu.nl (Andy Tanenbaum) (03/14/89)

In article <658@forty2.UUCP> poole@forty2.UUCP (Simon Poole) writes:
>The following patches to fs take minix a small step on the way to
>some POSIX compatiblity, while they where developed on a ST, I don't
>know of any reason why they shouldn't work on a PC. 

Very nice and keep up the good work!  When I get done with my architecture
book I'll take a closer look at this stuff with an eye to incorporating it into
V2.0.  By then we will probably have more feedback from users.

General note to other people interested in making changes toward POSIX.
Please try to resist the temptation to make a lot of non-POSIX related
changes at the same time (e.g., a nonblocking FS).  Since we have a pretty
stable system now, I am hoping to make the minimal changes necessary to
achieve POSIX conformance.  I hope we can end up with one FS and one MM
that work on the PC, AT, 386, and ST with only a few #ifdefs.

Andy Tanenbaum (ast@cs.vu.nl)

ncoverby@ndsuvax.UUCP (Glen Overby) (03/18/89)

In article <2153@ast.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
>In article <658@forty2.UUCP> poole@forty2.UUCP (Simon Poole) writes:
>>The following patches to fs take minix a small step on the way to
>>some POSIX compatiblity, while they where developed on a ST, I don't
>>know of any reason why they shouldn't work on a PC.
>
>Very nice and keep up the good work!  When I get done with my architecture
>book I'll take a closer look at this stuff with an eye to incorporating it into
>V2.0.  By then we will probably have more feedback from users.

In light of Andy's stated intent to move Minix towards POSIX compatability,
I have collected all the changes I have seen on the group which were labeled
as improving the POSIX compatability of Minix.  This collection is available
from my archive on vm1.nodak.edu in the files "fixes posix*".  If you do not
know how to access this archive, send a message to listserv@vm1.nodak.edu
saying:

        get minix info minix

and you will be sent the Minix Information Sheet which contains this
information.

Below is a list of everything I have included in this collection.  If you
find anything that should be included and is not, please send me a note; I'd
appreciate it if you could give me a Message-ID:, Date: or Subject:
reference so I can find it.

                Glen Overby     <ncoverby@plains.nodak.edu>
        uunet!ndsuvax!ncoverby (UUCP)   ncoverby@ndsuvax (Bitnet)


# File: delta/posix/History
# POSIX - compatable path for Minix

# Evolution History...

On: Tue Nov 22 16:18:25 CST 1988
From: tholm@uvicctr.UUCP (Terrence W. Holm)
Subject: POSIX getppid(2)
Message-ID: <445@uvicctr.UUCP>
Date: 7 Jul 88 23:51:47 GMT
File: lib/getppid.c new

From: tholm@uvicctr.UUCP (Terrence W. Holm)
Subject: POSIX utime(2)
Message-ID: <446@uvicctr.UUCP>
Date: 7 Jul 88 23:53:23 GMT
File: lib/utime.c

From: tholm@uvicctr.UUCP (Terrence W. Holm)
Subject: fcntl.h, unistd.h & utime.h
Message-ID: <451@uvicctr.UUCP>
Date: 12 Jul 88 22:33:48 GMT
File: include/fcntl.h  (new)
File: include/unistd.h (new)
File: include/utime.h  (new)

From: tholm@uvicctr.UUCP (Terrence W. Holm)
Subject: varargs(3)
Message-ID: <506@uvicctr.UUCP>
Date: 20 Sep 88 21:26:51 GMT
File: doc/man/cat3/varargs.3
File: include/varargs.h

From: tholm@uvicctr.UUCP (Terrence W. Holm)
Newsgroups: comp.os.minix
Subject: ctype(3) changes
Message-ID: <524@uvicctr.UUCP>
Date: 18 Oct 88 02:53:03 GMT
File: doc/man/cat3/ctype.3 new
File: doc/man/cat3/toascii.3 new
File: doc/man/cat3/tolower.3 new
File: doc/man/cat3/toupper.3 new
File: doc/man/cat4/ascii.4 new
File: include/ctype.h changed
File: lib/ctype.c changed

I have changed iscntrl(3), isprint(3), isgraph(3),
toupper(3) and tolower(3) to be as defined in POSIX.
"man" pages are included.


Files changed: /usr/include/ctype.h and minix/lib/libc/ctype.c

Details of changes:
        1) isprint(3) now includes SPACE.
        2) isgraph(3) added.
        3) iscntrl(3) now includes all control characters.
        4) The old toupper() and tolower() are now
           called _toupper() and _tolower().
        5) Subroutines were added to perform the correct
           toupper(3) and tolower(3).
        6) Toascii(3) added.

From: tholm@uvicctr.UUCP (Terrence W. Holm)
Subject: POSIX sleep(3)
Message-ID: <527@uvicctr.UUCP>
Date: 25 Oct 88 20:39:49 GMT
File: doc/man/cat3/sleep.3 new, lib/sleep.c changed

The MINIX 1.3 sleep(3) does not handle alarm(2) pending
when sleep(3) is called. Nor does it return a correct
value. The following corrects these problems.

From: tholm@uvicctr.UUCP (Terrence W. Holm)
Subject: getopt(3)
Message-ID: <532@uvicctr.UUCP>
Date: 31 Oct 88 16:37:16 GMT
File: lib/getopt.c new, doc/man/cat3/getopt.3 new

EFTH MINIX report #54  - November 1988 -  getopt(3)

The recently posted ps(1) requires getopt(3), for those
people missing this subroutine: Here is Henry Spencer's
version, (slightly locally modified).

From: tholm@uvicctr.UUCP (Terrence W. Holm)
Subject: directory(3)
Message-ID: <575@uvicctr.UUCP>
Date: 13 Dec 88 08:22:02 GMT
File: include/dirent.h new, include/sys/dir.h new, include/sys/dirent.h new
File: lib/closedir.c new, lib/getdents.c new, lib/opendir.c new, lib/readdir.c new
File: lib/rewinddir.c new, lib/seekdir.c new, lib/telldir.c
File: doc/man/cat3/getdents.3 new, doc/man/cat3/directory.3 new, doc/man/cat4/dirent.4

EFTH MINIX report #62  - December 1988 -  directory(3)


This posting includes Douglas Gwyn's POSIX-compatible directory
routines. If you have been using his routines for a while, please
tell me what changes you have found necessary, so that I can keep
a current copy of the POSIX library.

If you have not been using Doug's library, then this is your chance
to install it!  Please find below the 13 files:

    HEADERS

        /usr/include/dirent.h           /usr/include/sys/dir.h
        /usr/include/sys/dirent.h

    LIBRARY

        closedir.c      getdents.c
        opendir.c       readdir.c
        rewinddir.c     seekdir.c
        telldir.c

    MAN PAGES
        getdents.3      directory.3
        dirent.4

Instructions,

    1) Install the header files, link in sys/errno.h.

    2) Put the man pages under /usr/man/cat3 and cat4.

    3) Compile and install the library routines. Note that "seekdir.s"
       must precede "readdir.s", which must precede "getdents.s" in
       libc.a

From: housel@en.ecn.purdue.edu (Peter S. Housel)
Subject: Improved 'varargs' support
Message-ID: <7490@ea.ecn.purdue.edu>
Date: 16 Dec 88 18:48:05 GMT
File: include/varargs.h changed, lib/vsprintf.c new

        Here is an improved version of the 'varargs.h' file originally
posted in EFTH report #47. There is also a version of vsprintf()
included.  This makes Frans Meulenbroeck's patch to the curses
"printw.c" file unnecessary. (How this particular patch ever managed
to work in the first place is beyond me...)

        Actually, what ought to happen is that _doprintf() should be renamed
vfprintf(), and that it and all of the other printf() and scanf() routines
should be rewritten in terms of varargs.h or stdarg.h, whichever is supported
by POSIX. (I'll probably do this sometime soon.)

--
                Glen Overby     <ncoverby@plains.nodak.edu>
        uunet!ndsuvax!ncoverby (UUCP)   ncoverby@ndsuvax (Bitnet)


#! rnews            787
Path: