Commit Graph

243 Commits

Author SHA1 Message Date
lukem
dab6ef8b56 add RCSIDs (including regeneration of files as appropriate) 2001-11-13 02:07:52 +00:00
jdolecek
d08f6c6e2e pull <sys/exec.h> to get setregs prototype.
problem noted by Chuck Silvers
2001-09-23 19:32:10 +00:00
jdolecek
ef8abe0767 Make the setregs hook emulation-specific, rather than executable
format specific.
Struct emul has a e_setregs hook back, which points to emulation-specific
setregs function. es_setregs of struct execsw now only points to
optional executable-specific setup function (this is only used for
ECOFF).
2001-09-18 19:36:32 +00:00
jdolecek
6b213f8761 remove superfluous cpu_exec_ecoff_setregs() prototype 2001-09-17 17:46:16 +00:00
christos
934898bc32 Adjust to the new copyargs() footprint. 2001-07-29 21:28:45 +00:00
thorpej
cbf41a143a bzero -> memset 2001-07-18 16:43:09 +00:00
simonb
e6f5e42d1b Regen; new syscalls. 2001-06-28 04:10:07 +00:00
simonb
9086d98157 Add some (unimplemented) syscalls from Tru64 Unix 5.1a. 2001-06-28 04:08:58 +00:00
dmcmahill
2beb554d4c regen after adding COMPAT_OSF1 getitimer(2). 2001-06-28 01:49:04 +00:00
dmcmahill
e844f04e07 add COMPAT_OSF1 getitimer(2). Patch submitted by Kevin Schoedel
<schoedel@kw.igs.net> in PR port-alpha/13071, reviewed by Jason Thorpe.
2001-06-28 01:48:22 +00:00
dmcmahill
1880c09133 regen after adding flock. 2001-06-23 02:46:25 +00:00
dmcmahill
b2ddb9701f Add entry for flock() syscall.
From the NetBSD and OSF man pages, the arguments and operation of the
2 flocks are identical.  The only differences are in some of the possible
values for errno which may be set in the event of certain errors.  These
differences are (again from the manual pages):

The NetBSD flock may set errno to

     [EOPNOTSUPP]  The argument fd refers to an object other than a file.

and the OSF flock doesn't list this is a possible error code.

The OSF flock may set errno to:

  [EINTR]   A signal interuppted the flock call.
  [ENOLCK]  The lock table is full.  Too many regions are already locked.
  [EDEADLK] The lock is blocked by some lock from another process.  Putting
            the calling process to sleep while waiting for that lock to
            become free would cause a deadlock.

while the NetBSD flock does not list these as possibilities.

The remainder of the possible error codes are the same.

commit cleared with thorpej first.
2001-06-23 02:45:54 +00:00
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
nathanw
4b2dbe7a1a Note that negative system call numbers no longer appear negative in
ktrace output, due to range-bounding by binary masking.
2001-06-04 20:06:41 +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
ross
2df695b1e4 o IEEE 754 floating-point completion code.
o Implement the architected FP_C "Floating Point Control Quadword"
2001-04-26 03:10:44 +00:00
jdolecek
b6d1d4db02 Change the first arg to fileops fo_stat routine to struct file *, adjust
callers and appropriate routines to cope. This makes fo_stat more
consistent with rest of fileops routines and also makes the fo_stat
match FreeBSD as an added bonus.
Discussed with Luke Mewburn on tech-kern@.
2001-04-09 10:22:00 +00:00
jdolecek
c1dca7fa03 also use fops fo_stat for osf1_sys_fstat2() 2001-04-09 10:08:51 +00:00
jdolecek
3fc6fc58e6 Call file descriptor stat function via (*fp->f_ops->fo_stat) instead
of a switch statement and explicit call.
Sprinkle some FILE_USE()/FILE_UNUSE() as appropriate.
2001-04-09 09:39:09 +00:00
ross
2d8e2c19d6 Fix soo_stat() calls for the new parameter, even if the direct call is
now obsolete, so that kernels will at least compile. I guess it was too
much trouble to change all 10 call sites, or perhaps, these days, only
things that build on i386 are important. Maybe it's the full moon tonight.
2001-04-08 08:01:36 +00:00
ross
3bbe93edd6 new syscalls 2001-04-04 19:52:18 +00:00
ross
cf6a3cc49d prototypes and comments 2001-04-04 19:41:00 +00:00
thorpej
1b6a66420e Regen; add sy_flags. 2001-01-27 07:23:06 +00:00
mycroft
108d17eb16 Do the md_syscall, __HAVE_MINIMAL_EMUL and __HAVE_SYSCALL_INTERN thangs. 2000-12-13 03:16:36 +00:00
mycroft
165574c579 Regen. 2000-12-13 01:29:35 +00:00
mycroft
c87c56ee90 Round up sysent[] table size. 2000-12-13 01:29:16 +00:00
mycroft
f495cd9dc6 Introduce 2 new flags in types.h:
* __HAVE_SYSCALL_INTERN.  If this is defined, e_syscall is replaced by
  e_syscall_intern, which is called at key places in the kernel.  This can be
  used to set a MD syscall handler pointer.  This obsoletes and replaces the
  *_HAS_SEPARATED_SYSCALL flags.
* __HAVE_MINIMAL_EMUL.  If this is defined, certain (deprecated) elements in
  struct emul are omitted.
2000-12-11 05:28:59 +00:00
jdolecek
a6ca890142 always fill in e_syscall in respective emul_*; if the emulation doesn't
have it's own separated *_syscall() function, use syscall()
2000-12-09 12:38:23 +00:00
mycroft
dd92250590 Regen. 2000-12-09 07:11:17 +00:00
mycroft
9b7a9b2897 Get rid of the damn EMUL_GET* flags. 2000-12-09 07:10:34 +00:00
mycroft
f348afacb9 Regen. 2000-12-09 05:37:01 +00:00
mycroft
9682cf0b09 Add the %% separators. 2000-12-09 05:27:28 +00:00
jdolecek
cc5b7ecb22 put the ecoff specific code from osf1_exec.c to osf1_exec_ecoff.c 2000-12-08 21:39:30 +00:00
jdolecek
7f86cf1b2c make LKM safe 2000-12-01 19:20:56 +00:00
jdolecek
e0c059250f emul_osf1: add flags EMUL_GETPID_PASS_PPID|EMUL_GETID_PASS_EID 2000-12-01 19:20:22 +00:00
jdolecek
28c12f0c39 provide extern const struct emul emul_osf1 2000-12-01 12:51:03 +00:00
jdolecek
01040d97a2 add e_path (emulation path) to struct emul, which replaces emulation-specific
*_emul_path variables

change macros CHECK_ALT_{CREAT|EXIST} to use that, 'root' doesn't need
to be passed explicitly any more and *_CHECK_ALT_{CREAT|EXIST} are removed
change explicit emul_find() calls in probe functions to get the emulation
path from the checked exec switch entry's emulation

remove no longer needed header files

add e_flags and e_syscall to struct emul; these are unsed and empty for now
2000-12-01 12:28:30 +00:00
jdolecek
6626f506b3 LKMify 2000-11-30 19:05:26 +00:00
jdolecek
73f3cd8c7e LKMify 2000-11-29 21:51:49 +00:00
thorpej
32831b2eb4 Update for change of name of FPU synch routine. 2000-11-22 08:40:47 +00:00
itojun
fdbcde1abe more COMPAT_OSF1 fix (exec_conf.c conversion?) 2000-11-22 03:56:52 +00:00
itojun
6c7e531e99 make COMPAT_OSF1 to compile. not tested (could someone review?). 2000-11-22 03:48:33 +00:00
jdolecek
baae0324b9 restructure struct emul and execsw, in preparation to make emulations LKMable:
* move all exec-type specific information from struct emul to execsw[] and
  provide single struct emul per emulation
* elf:
  - kern/exec_elf32.c:probe_funcs[] is gone, execsw[] how has one entry
    per emulation and contains pointer to respective probe function
  - interp is allocated via MALLOC() rather than on stack
  - elf_args structure is allocated via MALLOC() rather than malloc()
* ecoff: the per-emulation hooks moved from alpha and mips specific code
  to OSF1 and Ultrix compat code as appropriate, execsw[] has one entry per
  emulation supporting ecoff with appropriate probe function
* the makecmds/probe functions don't set emulation, pointer to emulation is
  part of appropriate execsw[] entry
* constify couple of structures
2000-11-21 00:37:49 +00:00
thorpej
db3db664bd Make this compile again. 2000-11-17 21:40:04 +00:00
simonb
1982741ab4 Don't need to extern ncpus - <sys/systm.h> has this. 2000-11-17 05:07:45 +00:00
erh
2681c46114 Regen. 2000-11-17 03:07:25 +00:00