Commit Graph

26 Commits

Author SHA1 Message Date
christos 0f380fac15 Add an e_trapsignal member to struct emul, so that emulated processes can
send the appropriate signal depending on the trap type.
2001-06-18 02:00:48 +00:00
manu a7cdf998ec Removed obsoletes EMUL_NO_BSD_ASYNCIO_PIPE and EMUL_NO_SIGIO_ON_READ flags.
Async I/O OS specifities should now handled in OS specific code. Linux
has been done, but other emulation should be handled. See case LINUX_F_SETFL
in sys/compat/linux/common/linux_file.c:linux_sys_fcntl() for more details.

The data that has been collected yet:

                                  Net Free Open Linux SunOS AIX OSF1 Darwin
send SIGIO to write end of pipe		Y  N    N     N     N    N   Y     Y
send SIGIO to read end of pipe      Y  Y    N     N     N    ?   Y     ?
send SIGIO to write end of socket   Y  Y    Y     N     N    Y   Y     Y
send SIGIO to read end of socket    Y  Y    Y     Y     Y    ?   Y     ?
2001-06-16 21:44:27 +00:00
thorpej 80cc38a1af Fix a partial construction problem that can cause race conditions
between creation of a file descriptor and close(2) when using kernel
assisted threads.  What we do is stick descriptors in the table, but
mark them as "larval".  This causes essentially everything to treat
it as a non-existent descriptor, except for fdalloc(), which sees a
filled slot so that it won't (incorrectly) allocate it again.  When
a descriptor is fully constructed, the code that has constructed it
marks it as "mature" (which actually clears the "larval" flag), and
things continue to work as normal.

While here, gather all the code that gets a descriptor from the table
into a fd_getfile() function, and call it, rather than having the
same (sometimes incorrect) code copied all over the place.
2001-06-14 20:32:41 +00:00
mrg 46762d3560 fix lint exposed by GCC 3.0 20010604 (prerelease). 2001-06-04 20:56:51 +00:00
mrg 6a89288a37 use _KERNEL_OPT. 2001-05-30 11:37:21 +00:00
manu 7e6929fe90 Changed EMUL_BSD_ASYNCIO_PIPE to EMUL_NO_BSD_ASYNCIO_PIPE, so that
the native emulation (NetBSD) does not have a flag.
2001-05-07 09:55:12 +00:00
manu 5a6b8191b5 Added two flags to emulation packages:
EMUL_BSD_ASYNCIO_PIPE notes that the emulated binaries expect the original
BSD pipe behavior for asynchronous I/O, which is to fire SIGIO on read() and
write(). OSes without this flag do not expect any SIGIO to be fired on
read() and write() for pipes, even when async I/O was requested. As far as
we know, the OSes that need EMUL_BSD_ASYNCIO_PIPE are NetBSD, OSF/1 and
Darwin.

EMUL_NO_SIGIO_ON_READ notes that the emulated binaries that requested
asynchrnous I/O expect the reader process to be notified by a SIGIO, but
not the writer process. OSes without this flag expect the reader and the
writer to be notified when some data has arrived or when some data have been
read. As far as we know, the OSes that need EMUL_NO_SIGIO_ON_READ are Linux
and SunOS.
2001-05-06 19:09:52 +00:00
mrg 477f3d1140 header is struct netbsd32_exec 2001-02-08 12:32:41 +00:00
mrg 098da9d296 use the standard alt check for creat. 2001-02-07 01:34:21 +00:00
mrg d0f57eaf28 regen 2001-02-06 15:42:34 +00:00
mrg bb4dfb96a8 oops, use netbsd32_select(). 2001-02-06 15:41:53 +00:00
mrg 79c2fcd3b2 add from NetBSD Id. 2001-02-06 15:39:38 +00:00
mrg 5cd04bbafa use struct sunos32_dirent. now getwd() works. 2001-02-06 13:13:42 +00:00
mrg 04534d365c stat/lstat must use netbsd32_stat43 not stat43. 2001-02-06 10:32:34 +00:00
mrg 8507daffe2 regen 2001-02-05 12:48:33 +00:00
mrg f973f47b9c s/sunos_sendsig/sunos32_sendsig/ 2001-02-05 12:48:13 +00:00
mrg 2bdf90f148 use sunos32_sys_sigreturn 2001-02-05 12:46:19 +00:00
mrg 973fe837ab s/long/netbsd32_long/ in various places. call netbsd32_fcntl, not sys_fcntl. 2001-02-05 06:28:55 +00:00
mrg 07df067e6c make sunos32_sys_stime() & sunos32_sys_sigvec() work. 2001-02-05 06:27:57 +00:00
mrg 2343525d2b we don't #include ../sunos/sunos_ioctl.c anymore...sigh 2001-02-04 15:38:17 +00:00
mrg 9e0d8392a4 clean up sunos32_sys_mmap(), modelling it more like netbsd32_mmap() 2001-02-04 11:06:14 +00:00
mrg b4e92dfd81 regen 2001-02-04 09:48:43 +00:00
mrg b352fc1de2 s/long/netbsd32_long/ in sunos32_sys_mmap(). noted by chuq. 2001-02-04 09:47:22 +00:00
mrg 2110531265 implement stat & fstat properly. 2001-02-02 13:00:29 +00:00
mrg 2f62d51a64 generate. 2001-02-02 07:29:42 +00:00
mrg 3fbaadb80d initial support for sunos binaries running on a 64 bit sparc64 kernel.
some programs work, many do not yet.
2001-02-02 07:28:54 +00:00