------------- 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.
SVr4 libraries still need the following entry points defined (among others):
    Unable to resolve symbol __thr_errno
    Unable to resolve symbol __xtol
    Unable to resolve symbol _doscan
    Unable to resolve symbol _dtop
    Unable to resolve symbol _host_stayopen	zmail
    Unable to resolve symbol _ltostr
    Unable to resolve symbol _putmsg		emacs.18 emacs.19 zmail
    Unable to resolve symbol _realfopen
    Unable to resolve symbol _realfreopen
    Unable to resolve symbol _siglongjmp
    Unable to resolve symbol _sysconf
*   Unable to resolve symbol clearerr
*   Unable to resolve symbol cfgetospeed	emacs.19
*   Unable to resolve symbol cuserid
+   Unable to resolve symbol endnetconfig	zmail
+   Unable to resolve symbol freenetconfigent	zmail
    Unable to resolve symbol getgrgid
    Unable to resolve symbol getgrnam
    Unable to resolve symbol getmsg		zmail
+   Unable to resolve symbol getnetconfig	zmail
+   Unable to resolve symbol getnetconfigent	zmail
*   Unable to resolve symbol getpass		zmail
*   Unable to resolve symbol getpgid
    Unable to resolve symbol getservbyname	emacs.18 emacs.19
    Unable to resolve symbol gettimeofday
    Unable to resolve symbol gettxt
    Unable to resolve symbol grantpt		emacs.18 emacs.19
    Unable to resolve symbol lockf		zmail
    Unable to resolve symbol mbstowcs		emacs.19
    Unable to resolve symbol netdir_free	zmail
    Unable to resolve symbol netdir_getbyaddr	zmail
    Unable to resolve symbol netdir_getbyname	zmail
    Unable to resolve symbol openlog		emacs.18 emacs.19
    Unable to resolve symbol pathconf
    Unable to resolve symbol pclose
    Unable to resolve symbol pfmt		zmail
    Unable to resolve symbol popen
    Unable to resolve symbol ptsname		emacs.18 emacs.19
    Unable to resolve symbol putmsg		zmail
    Unable to resolve symbol select
    Unable to resolve symbol setitimer
    Unable to resolve symbol setnetconfig	zmail
    Unable to resolve symbol sigaltstack
    Unable to resolve symbol siglongjmp		zmail
    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		emacs.19
    Unable to resolve symbol tcsetpgrp		emacs.19
    Unable to resolve symbol unlockpt		emacs.18 emacs.19
    Unable to resolve symbol vfork
    Unable to resolve symbol wcstombs		emacs.19

+ 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).
   


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