diff --git a/NOTES/TO.DO b/NOTES/TO.DO new file mode 100644 index 0000000..63c94bc --- /dev/null +++ b/NOTES/TO.DO @@ -0,0 +1,90 @@ +******* +* soon +* +* $Id: TO.DO,v 1.1 1997/02/28 05:42:26 gdr Exp $ +* +******* + +Use result of _setModeEmulation(3) in appropriate calls. These include + chmod - + creat - done + open - done + stat - unnecessary + fstat - unnecessary + lstat - unnecessary + +check up on the type of nlink_t, used in stat(2) + +Write a test that handles: + - negative process numbers + - process numbers exceeding INT_MAX and UINT_MAX +the easiest way to do this is to repeatedly exec a program that prints +it's process number. Keep doing so until either the number wraps or +the machine crashes. + +libc/sys/exec.c: + buildCmd should single-quote strings containing whitespace. + If the string already has single quotes, then backspace them. + + buildPath should only return files of type S16, EXEC, or EXE. + + buildPath should use the mapPath facility. + + These functions should operate closer to GS/OS when possible. + Also need to reduce stack requirements. + +******* +* remove from / replace in Orcalib +******* + +strerror orcalib/string.asm +perror orcalib/stdio.a +sys_errlist orcalib/stdio.a problem +sys_nerr orcalib/vars.a problem + +******* +* defer +******* + +libc/stdio/perror.c: + use BSDish implementation for perror(3) to avoid stdio. + +libc/sys/syscall.c: + for unlink, if file is open, then register a call to unlink + (non-recursive) the file via atexit(3) + +libc/sys/trap.asm: + Insert conchecks in trap functions to check to see if GNO + is active and at the right version level. If not, they + should abort. + +libc/gen/environ.c: + Review routines. Force them to use GSString routines, reduce + stack usage (depend on dynamic allocation for parm blocks). + +libc/gen/err.c: + Use syslogd if not on a tty. + +libc/gen/tty.c: + review these routines + +do intro man pages: + 1 done + 2 review DEFINITIONS section + 3 done + 4 done + 5 done + 6 done + 7 done + 8 done + +various man pages: + add note under COMPATIBILITY as to whether the routines + are thread-safe. If they write any globals or static + variables, they are not. + +Verify that the setdebug(2) macros in gno/gno.h are correct. + +Add implementations for execle; the final +envp can't appear in the prototype, but it can be found since it is +the last argument after the first NULL pointer. diff --git a/NOTES/devel/TO.DO b/NOTES/devel/TO.DO new file mode 100644 index 0000000..63c94bc --- /dev/null +++ b/NOTES/devel/TO.DO @@ -0,0 +1,90 @@ +******* +* soon +* +* $Id: TO.DO,v 1.1 1997/02/28 05:42:26 gdr Exp $ +* +******* + +Use result of _setModeEmulation(3) in appropriate calls. These include + chmod - + creat - done + open - done + stat - unnecessary + fstat - unnecessary + lstat - unnecessary + +check up on the type of nlink_t, used in stat(2) + +Write a test that handles: + - negative process numbers + - process numbers exceeding INT_MAX and UINT_MAX +the easiest way to do this is to repeatedly exec a program that prints +it's process number. Keep doing so until either the number wraps or +the machine crashes. + +libc/sys/exec.c: + buildCmd should single-quote strings containing whitespace. + If the string already has single quotes, then backspace them. + + buildPath should only return files of type S16, EXEC, or EXE. + + buildPath should use the mapPath facility. + + These functions should operate closer to GS/OS when possible. + Also need to reduce stack requirements. + +******* +* remove from / replace in Orcalib +******* + +strerror orcalib/string.asm +perror orcalib/stdio.a +sys_errlist orcalib/stdio.a problem +sys_nerr orcalib/vars.a problem + +******* +* defer +******* + +libc/stdio/perror.c: + use BSDish implementation for perror(3) to avoid stdio. + +libc/sys/syscall.c: + for unlink, if file is open, then register a call to unlink + (non-recursive) the file via atexit(3) + +libc/sys/trap.asm: + Insert conchecks in trap functions to check to see if GNO + is active and at the right version level. If not, they + should abort. + +libc/gen/environ.c: + Review routines. Force them to use GSString routines, reduce + stack usage (depend on dynamic allocation for parm blocks). + +libc/gen/err.c: + Use syslogd if not on a tty. + +libc/gen/tty.c: + review these routines + +do intro man pages: + 1 done + 2 review DEFINITIONS section + 3 done + 4 done + 5 done + 6 done + 7 done + 8 done + +various man pages: + add note under COMPATIBILITY as to whether the routines + are thread-safe. If they write any globals or static + variables, they are not. + +Verify that the setdebug(2) macros in gno/gno.h are correct. + +Add implementations for execle; the final +envp can't appear in the prototype, but it can be found since it is +the last argument after the first NULL pointer. diff --git a/NOTES/deviations b/NOTES/deviations new file mode 100644 index 0000000..d4d59ad --- /dev/null +++ b/NOTES/deviations @@ -0,0 +1,76 @@ +$Id: deviations,v 1.1 1997/02/28 05:42:26 gdr Exp $ + +These are deviations from POSIX 1003.1: +====================================== + +Feature: full implementation +Header: (various) + Not all functions and system calls specified by POSIX 1003.1 are + implemented. + +Feature: non-compliant limits/constants +Header: (various) + + Value POSIX GNO Header File + ------------------------------------------------------------------- + STDIN_FILENO 0 1 unistd.h + STDOUT_FILENO 1 2 unistd.h + STDERR_FILENO 2 3 unistd.h + _POSIX_LINK_MAX 8 1 limits.h + +Feature: alarm(2) +Header: unistd.h + POSIX specifies that both the single argument and return type + should be unsigned int. GNO uses unsigned long for both. + +Feature: fork(2) +Header: unistd.h + POSIX specifies an empty argument list, and both child and parent + process resume execution at the point where fork() returns but in + different address spaces. The GNO implementation takes a pointer + to a function at which the child process begins execution, and child + and parent share the address space. + +Feature: getpgrp(2) +Header: unistd.h + POSIX specifies a pid_t return type. GNO implementation returns + an int. + +These are deviations from the BSD implementations: +================================================= + +Feature: POSIX compliance +Header: sys/unistd.h + BSD is POSIX2 compliant, GNO is not. (_POSIX2_VERSION is undefined) + +Feature: vfork(2) +Header: unistd.h + See the notes on fork(2) in the section on POSIX deviations. + +Feature: machine types +Header: , + BSD uses "long long" and "unsigned long long" for quad_t and u_quad_t, + respectively. GNO uses structures. + +Type BSD GNO Header File +------------------------------------------------------------------------------- +quad_t long long (structure) sys/types.h +u_quad_t unsigned long long (structure) sys/types.h +pid_t long short sys/types.h +off_t quad_t long sys/types.h +dev_t unsigned long unsigned short sys/types.h +uid_t unsigned long unsigned short sys/types.h +gid_t unsigned long unsigned short sys/types.h +_BSD_PTRDIFF_T_ int long machine/ansi.h +_BSD_SIZE_T_ unsigned int unsigned long machine/ansi.h +_BSD_SSIZE_T_ int long machine/ansi.h +_BSD_OFF_T_ long long long machine/ansi.h +_BSD_PID_T_ long short machine/ansi.h +_BSD_WCHAR_T_ int long machine/ansi.h +_BSD_RUNE_T_ int long machine/ansi.h + +Value BSD GNO Header File +------------------------------------------------------------------------------- +_BSD_CLK_TCK_ 128 60 machine/ansi.h +_BSD_CLOCKS_PER_SEC_ 128 60 machine/ansi.h +LINK_MAX 32767 1 sys/syslimits.h diff --git a/NOTES/headers b/NOTES/headers new file mode 100644 index 0000000..643bc64 --- /dev/null +++ b/NOTES/headers @@ -0,0 +1,95 @@ +$Id: headers,v 1.1 1997/02/28 05:42:26 gdr Exp $ + +A hash prefix indicates that it has passed the compile test. An "[Orca]" +indicates that the file is modified from an Orca/C header rather than +from either BSD or custom sources. + + +# curses.h changed hash type from u_int to u_long +# db.h various macros have changed. +# defaults.h add to user's copy, don't override it (Orca/C v2.1) +# dirent.h *** dirent structures have changed from gno v2.0.4 +# err.h +# errno.h +# fcntl.h +# fnmatch.h *** upgraded to BSD 4.4 (incompatible downward) +# fts.h *** upgraded to BSD 4.4 (incompatible downward) +# glob.h +# gno/conf.h +# gno/gno.h + gno/kerntool.h INCOMPLETE CHANGES -- OBSOLETE? +# gno/kvm.h +# gno/proc.h +# gno/sim.h +# grp.h +# limits.h +# machine/ansi.h +# machine/endian.h +# machine/limits.h +# machine/param.h missing a lot of BSD stuff +# machine/signal.h includes stuff from gno/signal.h +# machine/types.h label_t changed from GNO v2.0.4 +# netdb.h +# netinet/in.h +# netinet/in_systm.h +# netinet/ip.h +# netinet/tcp.h +# paths.h + protocols/talkd.h +# pwd.h +# regexp.h +# resolv.h +# rpc/types.h +# setjmp.h [Orca] +# sgtty.h +# signal.h +# stddef.h +# stdio.h [Orca] *** critical that __ORCAC_VERSION is correct +# stdlib.h +# string.h * check need for "const" in non-BSD, non-ORCA routines +# sys/cdefs.h +# sys/dirent.h *** dirent structures have changed from gno v2.0.4 +# sys/errno.h +# sys/fcntl.h +# sys/filio.h +# sys/ioccom.h +# sys/ioctl.h +# sys/ioctl_compat.h +# sys/mount.h +# sys/param.h +# sys/ports.h GNO specific +# sys/select.h +# sys/signal.h +# sys/sockio.h +# sys/stat.h +# sys/syslimits.h +# sys/syslog.h +# sys/termios.h +# sys/time.h +# sys/times.h +# sys/tty.h +# sys/ttychars.h +# sys/ttycom.h +# sys/ttydefaults.h +# sys/ttydev.h +# sys/types.h quad_t defined but as struct +# sys/uio.h +# sys/unistd.h +# sys/wait.h +# syslog.h +# termcap.h +# termios.h +# time.h * last two fields of struct tm disabled for Orca compat +# ttyent.h +# types.h [Orca] Added GSString types +# unistd.h +# utime.h +# utmp.h very non-BSD + +OBSOLETE: +getopt.h replaced by stdlib.h +sys/file.h This was really sys/fcntl.h. +sys/vfs.h Now sys/mount.h +types.h superceeded by one from Orca/C v2.1 +tzfile.h no longer part of BSD + diff --git a/NOTES/notes.960227 b/NOTES/notes.960227 new file mode 100644 index 0000000..d5a8c05 --- /dev/null +++ b/NOTES/notes.960227 @@ -0,0 +1,292 @@ +7 Jan 97 + +$Id: notes.960227,v 1.1 1997/02/28 05:42:27 gdr Exp $ + +Header File Changes +=================== + +Where the Orca headers no longer suffice, effort has been made to make use +of the BSD 4.4 headers with minimal modifications. + +Some BSD headers, due to the filenames used, cannot be placed on ProDOS +filesystems. There are a few problems with this (in my perceived order +of priority): + - having headers on HFS volumes slows down compilations + - the usual lack of disk optimization/fixing avail for HFS + - there are GNO users that don't use HFS volumes +OTOH, we don't want in general to break ported code which uses source like + #include +Therefore, I have renamed the original source files to use ProDOS naming +conventions. In this example, the new file is . There +is *also* a file called which can be installed on an +HFS volume, but this contains little more than an #include . +This way, the headers which require an HFS volume can be _optionally_ +installed by the GNO user. + +For the sake of compile time efficiency, I've been changing lines in +the GNO system header files like + #include +to + #ifndef _SYS_TYPES_H_ + #include + #endif +This isn't complete, but it's getting there. I didn't touch any Orca/C +headers that used nested #includes but otherwise needed no modifications. + +13/orcacdefs/defaults.h: + I'm trying to push through some "standard" arch and OS defines, + since they really help to be defined in many applications ports. + The contents of defaults.h should be copied into your + 13/orcacdefs/defaults.h file (or copied to that directory if you + don't already have such a file). + + The macros defined in that file are + __appleiigs__ + __GNO__ + __ORCAC_VERSION + _ANSI_SOURCE (if __KeepNamespacePure__ is defined) + __KeepNamespacePure__ (if _ANSI_SOURCE is defined) + + Currently nothing depends on the _value_ of "__GNO__", just + that it is defined. The system header files which would have + bad side effects if __GNO__ is not defined will bitch if this + is the case. These header files are ones where it was desirable + to leave the BSD version in for reference. + + By putting __ORCAC_VERSION in defaults.h, we know that + - it isn't defined for earlier Orca/C versions + - it can be incremented + + Orca headers use __KeepNamespacePure__ and BSD headers use + _ANSI_SOURCE. We try to make them identical. + +arpa/nameser.h: + The non-standard field 'pr' (primary server required) in + typedef struct {} HEADER has been removed, and it's storage + moved to the 'unused' field. The size of the structure and + the offsets of the remaining members haven't changed. This + was a BSD change, not mine. + + The following macros have been added. The the header for + their meanings: + __BIND + HFIXEDSZ + INT32SZ + INT64SZ + INADDRSZ + +arpa/telnet.h: + This file appears to have lots of changes, but I think + that, given a recompilation of the relevent sources, they + should be benign. If not, then the descriptions below + should give sufficient info to #ifdef out the problem parts. + + There are new TELOPT_* macros, values 35-39, inclusive. + This affects NTELOPTS, TELOPT_LAST, TELOPT_OK, and the + 'telopts' character array. + + The following arrays are now terminated by a NULL pointer + telopts + telcmnds + slc_names + + The following macros are also new: + TELQUAL_INFO + TELQUAL_REPLY + TELQUAL_NAME + LFLOW_* (4 of them) + MODE_SOFT_TAB + MODE_LIT_ECHO + MODE_MASK (changed due to two previous macros) + SLC_NAME_OK + SLC_NAME + +fcntl.h: + used to contain #defines for L_SET, L_INCR, and L_XTND. These + were renamed by POSIX 1003.1 to SEEK_SET, SEEK_CUR, and SEEK_END, + respectively. If the old macros are desired, they can be obtained + by #including . + +machine/ansi.h: + wchar_t (and therefore rune_t) have been changed from + "unsigned short" to "int" to match the is*() definitions + in . This shouldn't be a problem since there aren't + yet any library routines that use these types. + +machine/endian.h + Note that under BSD 4.4, both BIG_ENDIAN and LITTLE_ENDIAN (and, + for that matter, PDP_ENDIAN) are defined. The way to test + endianness is not + #ifdef LITTLE_ENDIAN + but rather + #if (BYTE_ORDER == LITTLE_ENDIAN) + I doubt that the kernel uses this macro ... + +netdb.h: + decl of inet_aton() removed; it should come from arpa/inet.h + decl of struct rpcent removed; it should come from rpc/rpc.h + +net/*: + It appears that this directory is very much non-BSD. I haven't + touched it at all -- something in me says, "Danger, Will!". + After things settle down, it might be worth it to make it + closer to BSD, at least in the file names. However, I'm not + going to worry about it right now. + + For your perusal (if required) I've included the directory + net.BSD which is the BSD 4.4 version of the net/* files. + This subdirectory is not intended to be part of the GNO + distribution. + +netinet/in.h: + If the functions in_makeaddr() and in_lnaof() are used in the + kernel, could you prototype them and reenable them where they + appear in this file? If not, please delete them and the + enclosing #ifdef. + +netinet/ip.h: + BSD 4.4 uses a different value for IPTOS_PREC_ROUTINE than was + in your original header. I've got both in (one #ifdef'd), but + could you delete the non-BSD one if it doesn't impact the + kernel or GS/TCP? + +pwd.h: + struct passwd has changed in BSD 4.4. getpwent and related + routines have been updated, so any program that is using those + routines to access the /etc/passwd file will be fine. The + file itself has not changed. + +resolv.h: + Name of "struct state" has changed to "__res_state" (I suspect + this was done to keep from polluting the namespace). The + "options" field has changed from long to u_long, and the + structure has been lengthened. + + The new 'struct __res_state' has, however, been #ifdef'd out + and you have your old 'struct state'. Macro values haven't + changed. The functions you were using weren't prototyped, so + I had to assume the BSD prototypes are correct. + + If you are willing to change to use 'struct __res_state', then + check out the #define of '__RES' near the top of . + If you change then '__RES' should become an unconditional #define. + +stdio.h: + As of Orca/C v2.1.1b2, the definition of FILE has changed. + The _pbk field has changed from + int _pbk; + to + int _pbk[2]; + This is controlled via __ORCAC_VERSION defined in defaults.h + +sys/ioccom.h: + This header file now specifies that the high 3 (vice 2) bits + of the uppper word are used to encode in/out status of the + parameter; is this compatible with the kernel? (Grep for + "IOCPARM_MASK" and look at the comments immediately prior to + it.) + +### sys/ioctl.h: + I've included a "GNO-specific" section -- are these GNO-specific + macros actually used anywhere? + + There are still some conflicts in this file with , + however they're not new -- they were in the headers you sent me + as well. One of these is the TOSTOP and associated macros. + +sys/socket.h: + It appears that the structures you used for "msghdr" and "sockaddr" + have been deemed out-of-date in 4.4BSD; they have been renamed + "omsghdr" and "osockaddr", respectively. I don't know how you + want to handle this; if necessary I guess one could use #ifdefs + and #define sockaddr as osockaddr, et al. I don't think the + new structs should be outright deleted from the header. + + The field sequence, macro values, and so forth match your previous + implementation. + + So that your routines are still getting the correct prototypes, + I've used the macros __SOCKADDR and __MSGHDR in the header file + prototypes; they're #defined right above the decls. + +sys/termios.h: + The names of two of the fields in struct termios has changed: + ispeed --> c_ispeed + ospeed --> c_ospeed + + See also the comments for + +sys/unistd.h: + The values of some of the _PC* macros have changed. I don't + think this should matter since the functions pathconf(3) and + fpathconf(3) haven't yet been implemented. + +The following headers I don't believe are part of GNO, although they +were included with the headers you sent. Please correct me if I'm +wrong: + cons.h + console.h + debug.h + sprite.h + sys/m16.ioctl -- perhaps part of GNO, but not a header + +The following Orca headers were modified, but I don't believe that the +mods are required for GNO users. (Are these fixes that should be +forwarded to Mike W?) [asked 12 Jan] + appleshare.h + appletalk.h <-- out of date as well + control.h + locator.h + misctool.h + +The following headers appear to be not only non-GNO, but obsolete: + newshell.h + shell2.h + + +Library Changes: +=============== + +There were lots of additions. + +libc/sys/trap.asm [formerly l2.asm] + + execve renamed to _execve + + getpgrp renamed to _getpgrp + + kvm_getproc, kvm_nextproc, and kvm_setproc provided as alternate + entry points into kvmgetproc, kvmnextproc, and kvmsetproc + (respectively) since they were documented entry points in GNO v2.0.4 + + setpgid is provided as an alternate entry point to setpgrp. + The two are identical (under BSD), but the latter is considered + obsolete. + + vfork added as alternate entry point to fork. + +libc/sys/syscall.c + The mkdir implementation could easily accept a mode parameter + and thus become POSIX compliant. Should the mode be added? + +Manual Page Considerations: +========================== + +undocumented(2): + This man page lists the undocumented kernel calls. I don't + know if all of these are supposed to _remain_ undocumented ... + +kill(2): + Please verify that description of operation with negative process + numbers matches implementation. If there is no match, and + the implementation cannot or will not be changed, please + delete these paragraphs and change the STANDARDS section + to read "The kill function is not POSIX 1003.1 conformant." + +semaphore(2): + I'm guessing at the behavior of scount; please verify it. + +intro(2): + The "DEFINITIONS" section of this man page is as yet verbatim + from the BSD man page; I haven't had a chance to review it. + If you have any comments, speak up ... diff --git a/NOTES/status.lib b/NOTES/status.lib new file mode 100644 index 0000000..3236ce5 --- /dev/null +++ b/NOTES/status.lib @@ -0,0 +1,384 @@ +$Id: status.lib,v 1.1 1997/02/28 05:42:27 gdr Exp $ + +Key for Code Status column: + R == reviewed + C == compiled + T == tested + +The man page column info specifies in which chapter the manual page +resides. If it is blank, it is not yet written. "2U" indicates +undocumented system calls in undocumented.2. If these should be documented, +Derek, please write a man page for them or tell me what should be in there. + +function file code man header + status page +====================================================================== + +GNO-specific +------------ +GIchange libc/gno/gsstring.c T 3 gno/gno.h +GIfree libc/gno/gsstring.c T 3 gno/gno.h +GIinit libc/gno/gsstring.c T 3 gno/gno.h +GOchange libc/gno/gsstring.c T 3 gno/gno.h +GOfree libc/gno/gsstring.c T 3 gno/gno.h +GOinit libc/gno/gsstring.c T 3 gno/gno.h +InstallNetDriver libc/sys/trap.asm C 2U gno/gno.h +SetGNOQuitRec libc/sys/trap.asm C 2U gno/gno.h +WriteGString libc/gno/gnomisc.c +__C2GS libc/gno/gsstring.c C 3 gno/gno.h +__C2GSMALLOC libc/gno/gsstring.c T 3 gno/gno.h +__GS2C libc/gno/gsstring.c C 3 gno/gno.h +__GS2CMALLOC libc/gno/gsstring.c C 3 gno/gno.h +__prognameGS libc/gno/gnomisc.c T 3 gno/gno.h +_beginStackCheck libc/gno/stack.asm T 3 gno/gno.h +_endStackCheck libc/gno/stack.asm T 3 gno/gno.h +_errnoText [var] libc/stdio/perror.c T na na +_getModeEmulation libc/sys/map.c T 3 gno/gno.h +_mapErr libc/gno/map.c T 3 gno/gno.h +_mapMode2GS libc/gno/map.c T 3 gno/gno.h +_mapMode2Unix libc/gno/map.c C 3 gno/gno.h +_mapPath libc/gno/map.c C 3 gno/gno.h +_mapPathGS libc/gno/map.c C 3 gno/gno.h +_setFdTranslation libc/sys/syscall.c C static na +_setModeEmulation libc/sys/map.c C 3 gno/gno.h +_setPathMapping libc/gno/map.c C 3 gno/gno.h +buildCmd libc/sys/exec.c C 3 gno/gno.h +buildEnv libc/sys/exec.c C 3 gno/gno.h +buildPath libc/sys/exec.c C 3 gno/gno.h +environInit libc/gen/environ.c T 3 stdlib.h +environPop libc/gen/environ.c T 3 stdlib.h +environPush libc/gen/environ.c T 3 stdlib.h +isRootPath libc/sys/exec.c C 3 gno/gno.h +kernStatus (inline) T 2 gno/gno.h +kernVersion (inline) T 2 gno/gno.h +needsgno libc/gno/gnomisc.c T 3 gno/gno.h +old_syslog libc/gen/oldlog.c C sys/syslog.h +rexit libc/sys/syscall.c C 3 stdlib.h +setdebug libc/sys/trap.asm T 2 gno/gno.h +setsystemvector libc/sys/trap.asm C 2U gno/gno.h +settpgrp libc/sys/trap.asm C 2 gno/gno.h +tcnewpgrp libc/sys/trap.asm C 2 gno/gno.h +tctpgrp libc/sys/trap.asm C 2 gno/gno.h +~GNO_COMMAND libc/gno/gnocmd.asm C 3 na +~GNO_FREEARG libc/gno/parsearg.asm C 3 na +~GNO_PARSEARG libc/gno/parsearg.asm C 3 na + + +BSD-ish +------- +__crypt_f libc/gen/crypta.asm C na na +__crypt_rotate libc/gen/crypta.asm C na na +__crypt_transpose libc/gen/crypta.asm C na na +__mb_cur_max [var] libc/locale/table.c C stdlib.h +_execve libc/sys/trap.asm C 2 unistd.h +_getpgrp libc/sys/trap.asm C 2 unistd.h +_longjmp libc/gen/setjmp.asm C 3 setjmp.h +_setjmp libc/gen/setjmp.asm C 3 setjmp.h +accept libc/sys/trap.asm C 2 sys/socket.h +access libc/sys/syscall.c C 2 unistd.h +alarm libc/sys/trap.asm C 2 unistd.h +alarm10 libc/sys/trap.asm C 2 unistd.h +alphasort libc/gen/scandir.c T 3 dirent.h +alphacasesort libc/gen/scandir.c T 3 dirent.h +basename libc/gen/basename.c T 3 unistd.h +bcopy libc/gen/bmem.c C 3 string.h +bind libc/sys/trap.asm C 2 sys/socket.h +bzero libc/gen/bmem.c C 3 string.h +chdir libc/sys/syscall.c C 3 unistd.h +close libc/sys/syscall.c C 2 unistd.h +closedir libc/gen/dirent.c T 3 dirent.h +closelog libc/gen/syslog.asm C 3 sys/syslog.h +connect libc/sys/trap.asm C 2 sys/socket.h +creat libc/sys/syscall.c T 2 sys/fcntl.h +crypt libc/gen/crypt.c C 3 unistd.h +dirfd (macro) T 3 dirent.h +dirname libc/gen/basename.c T 3 unistd.h +dup libc/sys/trap.asm C 2 unistd.h +dup2 libc/sys/trap.asm C 2 unistd.h +encrypt libc/gen/crypt.c C 3 unistd.h +endgrent libc/gen/getgrent.c T 3 grp.h +endpwent libc/gen/getpwent.c T 3 pwd.h +endttyent libc/gen/getttyent.c C 3 ttyent.h +err libc/gen/err.c T 3 err.h +errx libc/gen/err.c T 3 err.h +exec libc/sys/exec.c C 3 unistd.h +execl libc/sys/exec.c T 3 unistd.h +execle 3 unistd.h +execlp libc/sys/exec.c T 3 unistd.h +execv libc/sys/exec.c T 3 unistd.h +execve libc/sys/exec.c T 3 unistd.h +execvp libc/sys/exec.c T 3 unistd.h +fchdir libc/sys/syscall.c C 3 unistd.hf +fnmatch libc/gen/fnmatch.c T 3 fnmatch.h +fork libc/sys/trap.asm C 2 unistd.h +fork2 libc/sys/trap.asm C 2 unistd.h +fstat libc/sys/trap.asm C 2 sys/stat.h +fstatfs libc/sys/syscall.c C 2 sys/mount.h +fsync libc/sys/syscall.c C 2 unistd.h +ftruncate libc/sys/syscall.c C 2 unistd.h +getcwd libc/gen/getcwd.c T 3 unistd.h +getdtablesize libc/sys/syscall.c C 2 unistd.h +getegid libc/sys/trap.asm C 2 unistd.h +getenv libc/gen/environ.c T 3 stdlib.h +geteuid libc/sys/trap.asm C 2 unistd.h +getgid libc/sys/trap.asm C 2 unistd.h +getgrent libc/gen/getgrent.c T 3 grp.h +getgrgid libc/gen/getgrent.c T 3 grp.h +getgrnam libc/gen/getgrent.c T 3 grp.h +gethostname libc/gen/hostname.c C 3 unistd.h +getopt libc/stdlib/getopt.c C 3 stdlib.h +getopt_restart libc/stdlib/getopt.c C 3 stdlib.h +getpass libc/gen/getpass.c C 3 unistd.h +getpeername libc/sys/trap.asm C 2 sys/socket.h +getpgrp libc/sys/syscall.c C 2 unistd.h +getpid libc/sys/trap.asm T 2 unistd.h +getppid libc/sys/trap.asm C 2 unistd.h +getpwent libc/gen/getpwent.c T 3 pwd.h +getpwnam libc/gen/getpwent.c T 3 pwd.h +getpwuid libc/gen/getpwent.c T 3 pwd.h +getsockname libc/sys/trap.asm C 2 sys/socket.h +getsockopt 2 sys/socket.h +getsubopt libc/stdlib/getsubopt.c C 3 stdlib.h +gettimeofday libc/sys/syscall.c C 2 sys/time.h +getttyent libc/gen/getttyent.c C 3 ttyent.h +getttynam libc/gen/getttyent.c C 3 ttyent.h +getuid libc/sys/trap.asm C 2 unistd.h +getwd libc/gen/getcwd.c T 3 unistd.h +group_from_gid libc/gen/pwcache.c C 3 na +gtty libc/gen/compat.c C 3 sgtty.h +index libc/string/str.c C 3 string.h +ioctl libc/sys/trap.asm C 2 sys/ioctl.h +isatty libc/gen/tty.c C 3 unistd.h +kill libc/sys/trap.asm C 2 signal.h +kvm_close libc/sys/trap.asm C 2U gno/gno.h +kvm_getproc libc/sys/trap.asm C 2U gno/gno.h +kvm_nextproc libc/sys/trap.asm C 2U gno/gno.h +kvm_open libc/sys/trap.asm C 2U gno/gno.h +kvm_setproc libc/sys/trap.asm C 2U gno/gno.h +kvmgetproc libc/sys/trap.asm C 2U gno/gno.h +kvmnextproc libc/sys/trap.asm C 2U gno/gno.h +kvmsetproc libc/sys/trap.asm C 2U gno/gno.h +listen libc/sys/trap.asm C 2 sys/socket.h +longjmp libc/gen/setjmp.asm C 3 setjmp.h +lseek libc/sys/syscall.c C 2 unistd.h +lstat libc/sys/trap.asm C 2 sys/stat.h +mkdir libc/sys/syscall.c C 2 sys/stat.h +mkstemp libc/stdio/mktemp.c C 3 unistd.h +mktemp libc/stdio/mktemp.c C 3 unistd.h +open libc/sys/syscall.c C 2 sys/fcntl.h +opendir libc/gen/dirent.c T 3 dirent.h +openlog libc/gen/syslog.asm C 3 sys/syslog.h +optarg [var] libc/stdlib/getopt.c C 3 stdlib.h +opterr [var] libc/stdlib/getopt.c C 3 stdlib.h +optind [var] libc/stdlib/getopt.c C 3 stdlib.h +optopt [var] libc/stdlib/getopt.c C 3 stdlib.h +optreset [var] libc/stdlib/getopt.c C 3 stdlib.h +pause libc/gen/sleep.c T 3 unistd.h +pbind libc/sys/trap.asm C 2 sys/ports.h +pclose libc/gen/popen.c C 3 stdio.h +pcreate libc/sys/trap.asm C 2 sys/ports.h +pdelete libc/sys/trap.asm C 2 sys/ports.h +perror libc/stdio/perror.c T 3 stdio.h +pgetcount libc/sys/trap.asm C 2 sys/ports.h +pgetport libc/sys/trap.asm C 2 sys/ports.h +pipe libc/sys/trap.asm C 2 unistd.h +popen libc/gen/popen.c C 3 stdio.h +preceive libc/sys/trap.asm C 2 sys/ports.h +preset libc/sys/trap.asm C 2 sys/ports.h +procreceive libc/sys/trap.asm C 2 gno/gno.h +procrecvclr libc/sys/trap.asm C 2 gno/gno.h +procrecvtim libc/sys/trap.asm C 2 gno/gno.h +procsend libc/sys/trap.asm C 2 gno/gno.h +psend libc/sys/trap.asm C 2 sys/ports.h +putenv libc/gen/environ.c T 3 stdlib.h +raise libc/sys/syscall.c C 3 signal.h +read libc/sys/syscall.c C 2 unistd.h +readdir libc/gen/dirent.c T 3 dirent.h +recv libc/sys/trap.asm C 2 sys/socket.h +recvfrom libc/sys/trap.asm C 2 sys/socket.h +recvmsg ( missing from kernel ) 2 sys/socket.h +rewinddir libc/gen/dirent.c T 3 dirent.h +rindex libc/string/str.c C 3 string.h +scandir libc/gen/scandir.c T 3 dirent.h +scount libc/sys/trap.asm C 2 gno/gno.h +screate libc/sys/trap.asm C 2 gno/gno.h +sdelete libc/sys/trap.asm C 2 gno/gno.h +seekdir libc/gen/dirent.c T 3 dirent.h +select libc/sys/trap.asm C 2 unistd.h +send libc/sys/trap.asm C 2 sys/socket.h +sendmsg ( missing from kernel ) 2 sys/socket.h +sendto libc/sys/trap.asm C 2 sys/socket.h +setegid libc/sys/trap.asm C 2 unistd.h +setenv libc/gen/environ.c T 3 stdlib.h +seteuid libc/sys/trap.asm C 2 unistd.h +setgid libc/sys/trap.asm C 2 unistd.h +setgrent libc/gen/getgrent.c T 3 grp.h +setgroupent libc/gen/getgrent.c T 3 grp.h +sethostname libc/gen/hostname.c C 3 unistd.h +setjmp libc/gen/setjmp.asm C 3 setjmp.h +setkey libc/gen/crypt.c C 3 unistd.h +setlogmask libc/gen/syslog.asm C 3 sys/syslog.h +setpassent libc/gen/getpwent.c 3 pwd.h +setpgid libc/sys/trap.asm C 2 unistd.h +setpgrp libc/sys/trap.asm C 2 unistd.h +setpwent libc/gen/getpwent.c T 3 pwd.h +setregid libc/sys/trap.asm C 2 unistd.h +setreuid libc/sys/trap.asm C 2 unistd.h +setrgid libc/sys/trap.asm C 2 unistd.h +setruid libc/sys/trap.asm C 2 unistd.h +setsockopt libc/sys/trap.asm C 2 sys/socket.h +settimeofday 2 sys/time.h +setttyent libc/gen/getttyent.c C 3 ttyent.h +setuid libc/sys/trap.asm C 2 unistd.h +shutdown libc/sys/trap.asm C 2 sys/socket.h +sigblock libc/sys/trap.asm C 2 signal.h +siglongjmp 3 setjmp.h +sigmask (macro) C 2 sys/signal.h +signal libc/sys/trap.asm C 2 sys/signal.h +sigpause libc/sys/trap.asm C 2 signal.h +sigsetjmp 3 setjmp.h +sigsetmask libc/sys/trap.asm C 2 signal.h +sleep libc/gen/sleep.c T 3 unistd.h +socket libc/sys/trap.asm C 2 sys/socket.h +ssignal libc/sys/trap.asm C 2 gno/gno.h +stat libc/sys/trap.asm C 2 sys/stat.h +statfs libc/sys/syscall.c C 2 sys/mount.h +strcasecmp libc/str/case.c T 3 string.h +strdup libc/string/str.c C 3 string.h +strerror libc/stdio/perror.c T 3 stdio.h +stricmp libc/str/case.c C 3 string.h +strincmp libc/str/case.c C 3 string.h +strncasecmp libc/str/case.c C 3 string.h +strsep libc/string/str.c C 3 string.h +stty libc/gen/compat.c C 3 sgtty.h +suboptarg [var] libc/stdlib/getsubopt.c C 3 stdlib.h +swait libc/sys/trap.asm C 2 gno/gno.h +sys_errlist @@ [var] libc/stdio/perror.c T 3 stdio.h +sys_nerr @@ [var] libc/stdio/perror.c T 3 stdio.h +syslog libc/gen/syslog.asm C 3 sys/syslog.h +telldir libc/gen/dirent.c T 3 dirent.h +tempnam libc/stdio/tempnam.c C 3 stdio.h +times libc/sys/trap.asm C 2 sys/times.h +tmpfile orcalib/stdio.asm T 3 stdio.h +tmpnam orcalib/stdio.asm T 3 stdio.h +truncate libc/sys/syscall.c C 2 unistd.h +ttyname libc/gen/tty.c C 3 unistd.h +ttyslot libc/gen/tty.c C 3 unistd.h +umask libc/sys/syscall.c C 2 sys/stat.h +unlink libc/sys/syscall.c T 2 unistd.h +unsetenv libc/gen/environ.c T 3 stdlib.h +user_from_uid libc/gen/pwcache.c C 3 na +utime libc/gen/utime.c T 3 sys/time.h +utimes libc/gen/utime.c T 2 utime.h +verr libc/gen/err.c T 3 err.h +verrx libc/gen/err.c T 3 err.h +vfork libc/sys/trap.asm C 2 unistd.h +vsyslog libc/gen/syslog.asm C 3 sys/syslog.h +vwarn libc/gen/err.c T 3 err.h +vwarnx libc/gen/err.c T 3 err.h +wait libc/sys/trap.asm C 2 sys/wait.h +wait3 ( missing from kernel ) 2 sys/wait.h +wait4 ( missing from kernel ) 2 sys/wait.h +waitpid libc/sys/syscall.c C 2 sys/wait.h +warn libc/gen/err.c T 3 err.h +warnx libc/gen/err.c T 3 err.h +write libc/sys/syscall.c C 2 unistd.h + +login libutil/login.c C libutil.h +login_tty libutil/logintty.c C libutil.h + +@@ -- The sys_errlist and sys_nerr variables are currently renamed + to _gno_sys_errlist and _gno_sys_nerr until problems with OrcaLib + can be resolved. _Don't_ access any of these four variables + directly; go through strerror(). + +Files Currently Compiling: +------------------------- + +DATA OPTIMIZE DEBUG MEMORY SEGMENT TESTING NAME +BANK MODEL COMPLETE +============================================================== + 0 0 0 Y Y libc/gen/basename.c + 0 0 0 Y N libc/gen/bmem.c + 0 0 0 Y N libc/gen/compat.c + 0 0 0 N N libc/gen/crypt.c + na na N N libc/gen/crypta.asm + 0 0 0 Y Y libc/gen/dirent.c + 8 0 0 Y Y libc/gen/err.c + 0 0 0 Y Y libc/gen/fnmatch.c + 0 0 0 Y Y libc/gen/getcwd.c + 0 0 0 Y Y libc/gen/getgrent.c + 0 0 0 Y N libc/gen/getpass.c + 0 0 0 Y Y libc/gen/getpwent.c + 0 0 0 Y N libc/gen/getttyent.c + 0 0 0 Y N libc/gen/hostname.c + 0 0 0 Y N libc/gen/oldlog.c + 0 0 0 Y N libc/gen/popen.c + 0 0 0 Y N libc/gen/pwcache.c + 0 0 0 Y Y libc/gen/scandir.c + na na N N libc/gen/setjmp.asm + 0 0 0 Y Y libc/gen/sleep.c + na na Y N libc/gen/syslog.asm + 0 0 0 Y N libc/gen/tty.c + 0 0 0 Y Y libc/gen/utime.c + + na na N N libc/gno/gnocmd.asm + 0* 0 0 (1) Y Y libc/gno/gnomisc.c + 0 (79) 0 0 (1) Y Y libc/gno/gsstring.c + 0 0 (25) 0 (1) Y N libc/gno/map.c + na na N N libc/gno/parsearg.asm + na na Y Y libc/gno/stack.asm + + 0 0 0 Y N libc/locale/table.c [stub] + + 0 0 0 Y N libc/stdio/mktemp.c +1 0 0 0 Y Y libc/stdio/perror.c + 0 0 0 Y N libc/stdio/tempnam.c + +1 0 0 0 Y Y libc/stdlib/environ.c + 0 0 0 Y N libc/stdlib/getopt.c + 0 0 0 Y N libc/stdlib/getsubopt.c + + 0 0 0 Y N libc/string/case.c + 0 0 0 Y N libc/string/str.c + + 0+8 0 0 Y libc/sys/exec.c + 0+8 0 0 Y libc/sys/syscall.c + na na Y N libc/sys/trap.asm + + 0 0 0 Y N libutil/login.c + 0 0 0 Y N libutil/logintty.c + +NOTES: () tested at a previous level + + +NEED TO WRITE OR DUPLICATE MAN PAGES FOR +---------------------------------------- + login libc(3) + login_tty + regexp libc(3) + termcap libc(3) + queue 3 + tty 4 + grp 5 + passwd 5 + termcap 5 + environ 7 + ms 7 + man 7 + cron 8 + runover 8 (obsolete?) + dialup 8 + +PUT IN NEXT RELEASE +------------------- +fts_children (libc/gen/fts.c) 3 +fts_close (libc/gen/fts.c) 3 +fts_open (libc/gen/fts.c) 3 +fts_read (libc/gen/fts.c) 3 +fts_set (libc/gen/fts.c) 3 +chmod (libc/sys/syscall.c) 2 +fchmod (libc/sys/syscall.c) +fcntl (sys/fcntl.h) +fdopen +sys_siglist [var]