------------- ToDo ------------------
$Id: ToDo,v 1.1.1.2 1994/02/23 17:22:37 mike Exp $
$Source: /var/CVS/ibcs/ToDo,v $

Repository: tsx-11.mit.edu:/pub/linux/ALPHA/ibcs2/private/.devel

This file contains a partial list of tasks that need doing
with iBCS2 emulation.  It is not yet complete.  Please
send bug fixes, suggestions, new code to me.
(Known bugs are flagged as ===BUG=== in comments.)

Drew Sullivan -- <drew@lethe.north.net>

------------- Who's Who ------------------
Drew Sullivan <drew@lethe.north.net>
	Emulator source maintainer.

Joseph L. Portman III <baron@hebron.connected.com>
	Major emulator developer.
	libc_s
	
Alfred Longyear <longyear@netcom.com>
	iBCS2 loader
	Emulator as of pl12
	? Xenix loader
	libc_s

Brandon S. Allbery <bsa@kf8nh.wariat.org>

Eric Youngdale <eric@tantalus.nrl.navy.mil>
	First cut of the emulator.
	ELF loader.
	Keeper of the tsx-11 archive
	libc_s (elf version)

Philip Balister <balister@vt.edu>
	Emulator as of pl13
	gdb for coff
Tor Arnsen 
	Emulator as of pl13

Graham Adams <gadams@ddrive.demon.co.uk>
------------- ToDo ------------------
* Priority
+ Must do to be complete
- Wish item

------------- Kernel ------------------
------------- Loader ------------------
* Get current patches into standard distribution.
  (There is a patch still left as of 14x)
- Look into adding 286 xenix binaries to the
  the loader.
------------- Emulator ------------------
* iBCS2 syscalls
	+ mount
	+ stty
	+ gtty
	+ lock/plock
	+ msgsys
	+ sysi86/sys3b
	+ advfs
	+ unadvfs
	+ rmount
	+ rumount
	+ rfstart
	+ rdebug
	+ rfstop
	+ rfsys
	+ sysfs
	+ getmsg
	+ putmsg

+ Ioctl
  A list of ones that are missing is needed.
+ Xenix
	* xnx_locking(int fd, int mode, long size)
	+ xnx_creatsem(char *sem_name, int mode)
	+ xnx_opensem(char *sem_name)
	+ xnx_sigsem(int sem_num)
	+ xnx_waitsem(int sem_num)
	+ xnx_nbwaitsem(int sem_num)
	* xnx_rdchk(int fd)
	* xnx_chsize(int fd, long size)
	+ xnx_ftime(struct timeb * tp)
	* xnx_nap(long period)
	+ xnx_sdget(char *path, int flags, long size, int mode)
	+ xnx_sdfree(char* addr)
	+ xnx_sdenter(char *addr, int flags)
	+ xnx_sdleave(char *addr)
	+ xnx_sdgetv(char *addr)
	+ xnx_sdwaitv(char *addr, int vnum)
	+ xnx_proctl(int pid, int command, char *arg)
	+ xnx_execseg(excode_t oldaddr, unsigned size)
	+ xnx_unexecseg(excode_t addr)
	+ xnx_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *execptfds, struct timeval *timeout)
	* xnx_eaccess(char *path, int mode)
	* xnx_paccess(int pid, int cmd, int offset, int count, char *ptr)
	* xnx_sigaction(int sig, struct sco_sigaction *act, struct sco_sigaction *oact)
	* xnx_sigprocmask(int how, sigset_t *set, sigset_t *oset)
	* xnx_sigpending(sigset_t *set)
	* xnx_sigsuspend(sigset_t *sigmask)
	* xnx_getgroups(int gidsetsize, gid_t *grouplist[])
	* xnx_setgroups(int gidsetsize, gid_t *grouplist[])
	* xnx_sysconf(int name)
	* xnx_pathconf(char *path, int name)
	* xnx_fpathconf(int fildes, int name)

? Do we need to support the "luid" or login user id C2 security stuff.

------------- Shared Library ------------------
* Finish the libc_s libary
	+ Test SVr4 versions with more and more applications.  Add missing
	  functions here and there as required by applications.
	* Get COFF version of library working.
+ Create a networking library (COFF only.  SVr4 binaries use Wyse socket
	calls, and shared library now exists).
+ Create X11R4 and X11R5 library (COFF only - SVr4 binaries can use
	XFree86 libraries).

SVr4 libraries still need the following entry points defined (among others):
    Unable to resolve symbol __xtol
    Unable to resolve symbol _doscan
    Unable to resolve symbol _dtop
    Unable to resolve symbol _ltostr
    Unable to resolve symbol _realfopen
    Unable to resolve symbol _realfreopen
    Unable to resolve symbol _siglongjmp
    Unable to resolve symbol _sysconf
    Unable to resolve symbol cuserid
    Unable to resolve symbol getgrgid
    Unable to resolve symbol getgrnam
    Unable to resolve symbol getservbyname
    Unable to resolve symbol gettimeofday
    Unable to resolve symbol gettxt
    Unable to resolve symbol getpgid
    Unable to resolve symbol lockf
    Unable to resolve symbol openlog
    Unable to resolve symbol pathconf
    Unable to resolve symbol pclose
    Unable to resolve symbol popen
    Unable to resolve symbol setitimer
    Unable to resolve symbol sigaltstack
    Unable to resolve symbol siglongjmp
    Unable to resolve symbol statvfs
    Unable to resolve symbol sysinfo
    Unable to resolve symbol syslog
    Unable to resolve symbol tcflow
    Unable to resolve symbol tcgetpgrp
    Unable to resolve symbol tcsetpgrp
    Unable to resolve symbol vfork
   


------------- Testing ------------------
* Create a complete set of test programs
  so that we can do regression tests.
  The perl code is a good start.
