

	LibExt: Emulation of a Generic 4.4-BSD-Subsystem
	================================================


  -- A Table of 4.4-BSD-Subsystem Interfaces (Emulated/Missing/Stubs) --


 Listed below are all man(2) interfaces of the traditional 4.4BSD kernel. 
 The list is somewhat old-fashioned (for 4.3BSD compatibility) and not POSIX 
 conforming.

 For details, cf. 'doc/*.txt' and 'doc/man*'. The sources are organized
 mostly according to the standard headers, so that you can easily find the
 respective implementation. 

 You can find out the exact file name of the C module that defines a specific 
 interface function or global constant or variable by looking into the 'emxexp' 
 generated files with export definition tables, e.g. 'libext/exp'.

 Interfaces pre-fixed '# ' are defined in libExt. Usually, stubs are not marked.


   NAME		 DESCRIPTION			COMMENT
   ----------------------------------------------------

1. Kernel primitives

1.1. Process naming and protection
  # <sys/param.h>
  # sethostid	set host id 			dummy
   gethostid	get host id 			tcpip configuration
  # sethostname	set host name 			dummy
   gethostname	get host name 			tcpip configuration
   getuid	get user id			dummy (or missing)
   geteuid	get effective user id			"
   setreuid	set real and effective user id's	"
   getgid	get accounting group id		"
   getegid	get effective accounting group id	"
   getgroups	get access group set			"
   setregid	set real and effective group id's	"
   setgroups	set access group set			"
   getpgrp	get process group			"
   setpgrp	set process group			"
   getpid	get process id
   fork		create new process (child)
   exit		terminate a process
   execve	execute a different process

  <sys/wait.h>
   wait		wait for child information
   wait3	retrieve specific child information	missing

1.2 Memory management

  # <sys/mman.h> memory management definitions
   sbrk		 change data section size
   sstk		 change stack section size		missing
  # getpagesize	 get memory page size
  # mmap	 map pages of memory
  # msync	 flush modified mapped pages to filesystem
  # munmap	 unmap memory
  # mprotect	 change protection of pages
   madvise	 give memory management advice		missing
   mincore	 determine core residency of pages	missing
   msleep	 sleep on a lock			missing
   mwakeup	 wakeup process sleeping on a lock	missing

1.3 Signals

  # <signal.h> 	 signal definitions
  # sigvec	 set handler for signal
  kill		 send signal to process
  # killpg	 send signal to process group
  # sigblock	 block set of signals
  # sigsetmask 	 restore set of blocked signals
  # sigpause	 wait for signals
  sigstack	 set software stack for signals		missing

1.4 Timing and statistics

  # <sys/time.h>	 time-related definitions
   gettimeofday		 get current time and timezone
   settimeofday		 set current time and timezone
  # getitimer		 read an interval timer
  # setitimer		 get and set an interval timer
   profil		 profile process		emx experimental

1.5 Descriptors

  # getdtablesize	descriptor reference table size
   dup		 	duplicate descriptor
   dup2		 	duplicate to specified index
   close	 	close descriptor
   select	 	multiplex input/output
   fcntl	 	control descriptor options
   wrap		 	wrap descriptor with protocol	missing

1.6 Resource controls

  # <sys/resource.h>	 resource-related definitions
  # getpriority		 get process priority
  # setpriority		 set process priority
  # getrusage		 get resource usage		dummy
  # getrlimit		 get resource limitations	mostly dummy
  # setrlimit		 set resource limitations	mostly dummy

1.7 System operation support

 mount		mount a device file system		missing
 swapon		add a swap device			missing
 umount		umount a file system			missing
 # sync		flush system caches
 reboot		reboot a machine			missing
 acct		specify accounting file			missing


2. System facilities

2.1 Generic operations

 read		 read data
 write		 write data
 <sys/uio.h>	 scatter-gather related definitions
 readv		 scattered data input
 writev		 gathered data output
 #<sys/ioctl.h>	 standard control operations
 ioctl		 device control operation

2.2 File system

 Operations suffixed with a * exist in two forms as
shown,	operating on a file name, and operating on a file
descriptor, when the name is preceded with a ``f''.

 <sys/file.h>	 file system definitions
 chdir		 change directory
 chroot		 change root directory
 mkdir		 make a directory
 rmdir		 remove a directory
 open		 open a new or existing file
 mknod		 make a special file			missing
 portal		 make a portal entry			missing
 unlink		 remove a link				not fully compatible	
 # stat *	 return status for a file
 # lstat	 returned status of link
 # chown *	 change owner
 chmod *	 change mode
 utimes		 change access/modify times
 link		 make a hard link			missing
 # symlink	 make a symbolic link			stubs
 readlink	 read contents of symbolic link		missing
 rename		 change name of file			not fully compatible
 lseek		 reposition within file
 truncate *	 truncate file
 access		 determine accessibility
 flock		 lock a file				emx dummy

2.3 Communications

 #<sys/socket.h> standard definitions
 socket		 create socket
 bind		 bind socket to name
 getsockname	 get socket name
 listen		 allow queuing of connections
 accept		 accept a connection
 connect	 connect to peer socket
 socketpair 	 create pair of connected sockets
 sendto		 send data to named socket
 send		 send data to connected socket
 recvfrom	 receive data on unconnected socket
 recv		 receive data on connected socket
 sendmsg	 send gathered data and/or rights
 recvmsg	 receive scattered data and/or rights
 shutdown	 partially close full-duplex connection
 getsockopt 	 get socket option
 setsockopt 	 set socket option



