Commit Graph

463 Commits

Author SHA1 Message Date
thorpej b0ca4831ea Check in two changes I apparently overlooked the last time. "oops" 1995-12-08 07:45:31 +00:00
jtc 0cd793449e merge in changes from 1.1 release branch 1995-11-30 00:56:23 +00:00
thorpej 0d02785d6c Re-ran makesyscalls.sh; syscalls.conf and syscalls.master chagned. 1995-11-28 08:43:58 +00:00
thorpej 0ec193c9b2 Get COMPAT_HPUX partially working on the hp300. Notable improvements:
* It compiles (and links).
	* Make use of "/emul/hpux" where applicable.
	* Untangle a bit, pulling some funtions from the monolithic
	  hpux_compat.c into hpux_file.c, hpux_exec.c, etc.
	* Fix a couple of bugs.
Yet to do:
	* Move hp300-specific functions into hp300/hp300/hpux_machdep.c.
	* Make everything work properly (you laugh...)

These changes are sufficient to run some simple HP-UX 9.x executables,
including ls(1) (which will read password and group information from the
YP server correctly, albeit slowly), a simple "hello world", uname(1),
and a few other odds and ends.  Dynamically linked executables work, and
demand-paging _seems_ to work properly.  Major problems:
	* socket and/or signal handling appears to need some work yet.
	* 99% sure I didn't do exactly the right thing adjusting for the
	  fact that "kstack" is gone now.
	* ktrace(1)'ing some executables (HP-UX telnet(1) is what I tried)
	  causes the HP-UX executable to dump core with a SIGSEGV for an
	  as of yet unknown reason.

This is mostly meant as a checkpoint/snapshot, to make it easier for others
to track progress on this code, and hack on it themselves.  It's certainly
better off now than before.
1995-11-28 08:39:45 +00:00
thorpej b2f1fb085b Fix transposed copyin() args, from Niklas Hallqvist <niklas@appli.se>. 1995-11-16 18:42:05 +00:00
cgd bd4a0a45ea note that COMPAT_OSF1 requires ECOFF, in a comment. 1995-11-15 05:42:17 +00:00
gwr 883be4be3a ufs ==> ffs 1995-11-07 22:27:21 +00:00
mycroft d67fb08153 Make sure we free the pathname buffer in all error cases. 1995-10-22 08:20:44 +00:00
cgd d71e8d0d69 set, don't add to, CFLAGS from COMPATCFLAGS 1995-10-20 00:34:15 +00:00
mycroft 686dddaff9 Reran makesyscalls.sh. 1995-10-15 06:13:56 +00:00
christos 81ae32e332 syscalls.master was changed. 1995-10-14 20:26:39 +00:00
christos a4e2f7532a - Added msgsys, shmsys and semsys... MITSHM needs shmsys, so X applications
that used that would fail.
- Propagated all the fixes from the fully prototyped kernel.
1995-10-14 20:24:14 +00:00
pk b60d6eae12 Gets NFS-mounted /emul/sunos going again by faking readdir cookies if
not supported by VOP_READDIR().
1995-10-11 12:50:23 +00:00
mycroft 28484180c7 Fix minor oversight. 1995-10-10 18:27:25 +00:00
mycroft 5d9ff18d18 Switch to user code and data selectors in the GDT while handling signals. 1995-10-10 04:54:18 +00:00
mycroft 25f53a986f Add USERMODE() and KERNELMODE() macros, and use them. 1995-10-10 04:45:03 +00:00
mycroft d279b4198a Convert VMIN and VTIME. 1995-10-10 02:35:16 +00:00
mycroft e6d9bc8787 Fix typo. 1995-10-10 01:34:37 +00:00
mycroft a91100d6af Oops; remove something. 1995-10-10 01:20:55 +00:00
mycroft e1ac4c6362 Output of makesyscalls.sh. 1995-10-10 01:20:11 +00:00
mycroft 63bb46e733 FreeBSD binary compatibility module, from Noriyuki Soda. 1995-10-10 01:19:24 +00:00
thorpej d0c7d0fdd6 Add missing F_SETLKW case to svr4_sys_fcntl(), from Niklas Hallqvist
<niklas@appli.se>.
1995-10-09 23:56:17 +00:00
mycroft 0fff06cb86 Remove struct sunos_dirent from here. 1995-10-09 16:54:48 +00:00
mycroft 652c9eff74 Use cookies for directory offset, mostly from Greg Hudson. 1995-10-09 11:23:57 +00:00
fvdl 82079ba5b3 Work around calling the NetBSD fcntl(F_{G,S}ETOWN) for now; it is too
restrictive to implement the Linux equivalent (and perhaps too restrictive
overall).
1995-10-08 22:53:43 +00:00
fvdl 7292169d66 Avoid unnecessary copyin() of shmid_ds struct for shmctl(IPC_RMID) 1995-10-08 22:49:29 +00:00
fvdl 81d650570f Implement the KDGKBMODE ioctl for Linux (possible with pcvt 3.32). 1995-10-08 22:45:20 +00:00
mycroft 319813467d Prefix names of system call implementation functions with `sys_'. 1995-10-07 06:53:04 +00:00
mycroft 6263c69339 Reran makesyscalls.sh. 1995-10-07 06:51:37 +00:00
mycroft 55c46e9514 Reran makesyscalls.sh. 1995-10-07 06:41:34 +00:00
mycroft 245f292fed Prefix names of system call implementation functions with `sys_'. 1995-10-07 06:25:19 +00:00
pk 23b15422dc svr4_fcntl: make uap point to argument. 1995-10-02 08:20:47 +00:00
thorpej 4a15671a68 Fix the declaration of compat_43_wait() (int * -> register_t *), pointed
out by Chris Demetriou.
1995-09-29 05:18:41 +00:00
thorpej 236ee835ed Add common file lists, similar to what the other emulation modules use. 1995-09-20 00:15:18 +00:00
thorpej 7d7396c414 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 22:53:47 +00:00
thorpej d4153ed512 makesyscalls.sh changed 1995-09-19 22:50:38 +00:00
thorpej 78f7651c91 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 22:49:22 +00:00
thorpej 9c2a912abe makesyscalls.sh changed 1995-09-19 22:46:47 +00:00
thorpej e4747eef00 Obsolete; use the one in /sys/kern 1995-09-19 22:46:04 +00:00
thorpej 19ccdce168 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 22:44:25 +00:00
thorpej 134a6981d1 makesyscalls.sh changed 1995-09-19 22:42:48 +00:00
thorpej cd414f7dca Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 22:42:02 +00:00
thorpej 6d91dd5b49 makesyscalls.sh changed. 1995-09-19 22:38:15 +00:00
thorpej e1da0d5390 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 22:37:27 +00:00
thorpej 4d68188f17 makesyscalls.sh changed. 1995-09-19 22:24:14 +00:00
thorpej b5a39bba19 Make system calls conform to a standard prototype and bring those
prototypes into scope.

Fix a couple of bugs revealed during the prototyping process.
1995-09-19 22:19:01 +00:00
thorpej d95577b1ce makesyscalls.sh changed. 1995-09-19 22:13:07 +00:00
thorpej eecd40e854 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 22:10:11 +00:00
thorpej c8aae0e18a makesyscalls.sh changed. 1995-09-19 22:05:58 +00:00
thorpej 7160dfc805 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 21:57:36 +00:00
fvdl 788a8655bc Update offset elsewhere in linux_getdents(); still emulate a bug in
Linux, but avoid endless loops.
1995-09-13 21:51:14 +00:00
fvdl 43279db68d Fix PR #1445 (incorrect ifdef/else/endif), from Bill Sommerfeld via
John Kohl.
1995-09-08 07:57:15 +00:00
fvdl df2f99818a Get notion of VT number right. 1995-09-07 21:55:43 +00:00
fvdl 698e606f39 syscalls.master changed 1995-09-07 21:49:52 +00:00
fvdl a396a097b7 Fix some bugs & typing problems. 1995-09-07 21:48:59 +00:00
mycroft 29053c58b2 SA_ONSTACK --> SS_ONSTACK 1995-09-01 20:05:59 +00:00
fvdl 10101d52ba Only define some vars (one of pcvt-specific type) when pcvt is configured.
Fixes PR #1424 (from Mike Long)
1995-08-31 09:33:10 +00:00
fvdl 0324e91dae Remove VT-switch disabling hack now that pcvt handles this. 1995-08-30 00:32:51 +00:00
fvdl 9ca2821d22 A couple of definitions added for previous changes. 1995-08-27 20:57:18 +00:00
fvdl 040bcc367d Add some yucky code to emulate Linux VTs well enough to make svgalib
stuff work reasonably well.
1995-08-27 20:56:38 +00:00
fvdl a7459f5321 syscalls.master changed 1995-08-27 20:53:31 +00:00
fvdl d308963c5d Add a hook for MD ioctl calls, plus a couple of more changes to make
svgalib binaries work on the i386
1995-08-27 20:51:48 +00:00
fvdl 72e901b9ff syscalls.master changed 1995-08-23 20:19:15 +00:00
fvdl 28d9d64235 Emulate some syscalls that appear in Linux 1.3: a select() with normal args,
getdents() and flock().
1995-08-23 20:17:28 +00:00
fvdl 7cd62a508c Check for status NULL argument in wait4 and waitpid. From PR #1392
by Thomas EberHardt.
1995-08-21 23:15:51 +00:00
mycroft 7f01d32fb3 syscalls.master changed. 1995-08-21 03:42:35 +00:00
mycroft 9a0cd13442 Implement the old and older uname(2) calls. 1995-08-21 03:42:09 +00:00
cgd ce48e523d6 kill some redundant (and harmful) static definitions of functions 1995-08-19 04:04:50 +00:00
mycroft 760379d766 Update for signal handling changes. 1995-08-17 03:07:47 +00:00
mycroft 2c03307168 If updating the timeval would make it negative, zero it instead. 1995-08-16 04:50:17 +00:00
mycroft dc41c4257e Allow bogus timevals, per Linux. 1995-08-16 04:29:49 +00:00
mycroft 54c148fda5 Convert 230400 baud. 1995-08-16 04:14:51 +00:00
fvdl 02b3c95be6 Implement the rest of the sysv ipc calls ({sem,msg}*()) 1995-08-15 21:14:32 +00:00
gwr 3d4ed382f6 Catch up with renamed SA_DISABLE flag and update
sunos_sigvec to allow the new SA_RESETHAND flag.
1995-08-15 17:28:02 +00:00
mycroft c331c7be82 Rename ss_flags bits. 1995-08-15 16:52:30 +00:00
mycroft e9d68a777e Export bsd_to_linux_sig[], and use it. 1995-08-14 02:58:29 +00:00
mycroft d2c9e4f1c8 Export bsd_to_ibcs2_sig[], and use it. 1995-08-14 02:26:01 +00:00
mycroft 10c06fe363 Prototype some functions. 1995-08-14 02:22:20 +00:00
mycroft 9b899c17cd Export bsd_to_linux_sig[], and use it. 1995-08-14 02:19:08 +00:00
mycroft 1e69f23205 Export bsd_to_svr4_sig[], and use it. 1995-08-14 02:07:57 +00:00
mycroft baaaba9bc5 Rearrange #includes. 1995-08-14 01:38:24 +00:00
mycroft 283f211782 Sort. 1995-08-14 01:34:09 +00:00
mycroft 01fa87477a syscalls.master changed. 1995-08-14 01:29:05 +00:00
mycroft 88b8e43a80 Rearrange #includes. 1995-08-14 01:27:43 +00:00
mycroft 9440382c88 svr4_stack_t --> svr4_sigaltstack 1995-08-14 01:13:29 +00:00
mycroft 05abc039c9 syscalls.master changed. 1995-08-14 01:13:11 +00:00
mycroft eba2f2e81a Move signal types into signal.h. 1995-08-14 01:11:52 +00:00
mycroft 3b76c0ddef svr4_stack_t --> svr4_sigaltstack 1995-08-14 00:57:13 +00:00
mycroft 475edc261c Move definition of sigset_t into types.h. 1995-08-14 00:50:27 +00:00
mycroft a6bb142d21 Various clean up and bug fixes. Make this look like the SVR4 and Linux
versions.
1995-08-14 00:44:12 +00:00
mycroft ca057762b9 Minor cleanup. 1995-08-14 00:41:02 +00:00
mycroft 1575859e07 Minor cleanup. 1995-08-13 23:37:56 +00:00
mycroft a6b7c740c6 Convert SA_RESETHAND and SA_NODEFER.
Scrub this code a bit.
1995-08-13 22:57:10 +00:00
mycroft fef558efaa Convert SA_NOMASK and SA_ONESHOT.
Clean up this code a bit.
1995-08-13 22:55:28 +00:00
mycroft ad35618e1e Linux doesn't allow select(2) to be restarted. 1995-08-13 17:51:40 +00:00
mycroft 6f7dc7fd4e Make this compile if one of SYSV{SEM,SHM,MSG} is not defined. 1995-08-10 04:08:57 +00:00
fvdl 64b54f62f4 syscalls.master changed 1995-07-24 06:39:38 +00:00
fvdl 83ed983d47 mkdir() has 2 arguments.. fixes PR 1248 (from Brad Spencer) 1995-07-24 06:35:28 +00:00
christos 3a1e063118 Make the macro botch fix more palatable. 1995-07-05 17:08:54 +00:00
pk cde4f269ae Start using sunos_sigvec(). 1995-07-05 13:14:09 +00:00
pk 426fb108d1 Brutally work around a macro botch. 1995-07-05 13:07:12 +00:00
christos 87b62763ae Add a few more sockio ioctls... Now sunxdoom is running! 1995-07-04 23:00:11 +00:00
christos c07ddb7c1d Added sockioctls... Only getifnum supported for now.
Added SVR4_EMT_TAGOVF, needed by new machdep translations.
1995-07-04 19:46:58 +00:00
fvdl 059661a991 Fix totally bogus implementation of a few fcntl() calls. I think I'll go
live on a deserted island now..
1995-07-03 21:33:59 +00:00
christos ed63c665eb - make svr4_break() identical to obreak(). We still keep the code here,
to do some more testing.
- add POSIX.4 sysconfig options [we don't support them, but we don't
  return EINVAL too]
- More kludges in the interpeter load address. I hope I escape the kludge
  police...
1995-07-02 06:16:06 +00:00
christos 294f607d50 Fix alignment of svr4_getdents, so that it works for solaris2.4/sparc 1995-07-01 23:42:54 +00:00
cgd 26340c4a2e sync with my current sources. WAY out of date. 1995-06-28 04:41:30 +00:00
cgd 65c4cf2b9a light cleanup, adjustments for the Alpha 1995-06-28 03:00:20 +00:00
christos 68328ddcdd Fixes for Solaris-2.4/sparc dynamically linked binaries.
We can now run them, but:

1. setcontext() causes a panic so binaries that receive signals
   crash the machine [something is wrong with the register setup].
   sleep 10 ==
    Watchdog reset
    Data Access Exception
    Type  help  for more information
    ok

2. csh says "unknown software trap a7".
3. ls gives us a bus error.
4. ldd works :-)

But I solved the problem that had been bothering me for weeks :-)
1995-06-27 22:12:47 +00:00
christos c35bc29cc9 Fix PR1160... (bug with the new compat_util prefix) 1995-06-26 19:27:17 +00:00
christos 2a17942096 Add the ability to override COMPATREL and COMPATDST similar to libkern 1995-06-26 03:27:13 +00:00
briggs a734709115 Oops... NOARGS for compat_43_sigvec. 1995-06-25 14:58:17 +00:00
briggs e1731cd1bf syscalls.master changed. 1995-06-25 14:18:56 +00:00
briggs de17480671 sigvec -> compat_43_sigvec. 1995-06-25 14:18:35 +00:00
briggs 09e0072b98 Add sunos_emul_path (/emul/sunos). I don't know if this is correct, but
this will at least aid the compilation step and is similar to the
others.
1995-06-25 14:15:08 +00:00
briggs c9917aa539 * Don't include sys/exec.h explicitly--it's not protected against multiple
inclusions and compat_util.h now includes it.
* Declare struct emul *e=p->p_emul in a couple of places so we can use
  STACKGAPBASE macro (should this macro be modified to take a struct
  emul * or struct proc * parameter?).
* Declare extern struct emul emul_sunos for sunos_sigvec's comparison.
1995-06-25 13:11:44 +00:00
christos fc741845e6 Stackgap_init() now takes an p->p_emul argument. 1995-06-24 20:36:28 +00:00
christos d0169ce44a Use compat_util.[ch] 1995-06-24 20:29:17 +00:00
christos 5ad8a15866 Syscalls.master was changed 1995-06-24 20:26:41 +00:00
christos 57b6b2745e Use compat_util.[ch] 1995-06-24 20:22:33 +00:00
christos 6b95b513b0 Use compat_util.[ch]. 1995-06-24 20:20:04 +00:00
christos 3a3aa6407e Use compat_util.[ch] 1995-06-24 20:18:53 +00:00
christos 8207f8e49e Use the new compat_util.h 1995-06-24 20:17:54 +00:00
christos dcb2a50b2b - Extracted all compat routines from the kern directory and moved here.
- Created compat_util.c and compat_util.h to be used by the compatibility
  modules, so they don't duplicate the same code.
- Added prototypes to the stackgap allocation routines.
1995-06-24 20:15:55 +00:00
fvdl cbcf8eee8a Check for invalid filedescriptors in getmsg() and putmsg(). 1995-06-24 18:47:08 +00:00
fvdl 1634acc3e4 Include file change. 1995-06-22 21:35:42 +00:00
fvdl c4aaa6000c * Changed to use generic ELF code from kern/exec_elf.c (which was taken
from the svr4 exec code plus the linux compat mods)
* Include file change
* Add multicast sockopts (from John Brezak)
1995-06-22 21:34:27 +00:00
fvdl 4a10f838e7 Changed to use generic ELF code from kern/exec_elf.c (which was taken
from the svr4 exec code plus the linux compat mods)
1995-06-22 21:32:57 +00:00
cgd 8f62c773e8 don't assume the f_fsnamelen is nul-truncated or longer than MFSNAMELEN 1995-06-18 14:45:14 +00:00
pk 1e070197f4 Go with the flow; use `/emul/sunos' pseudo-root (from Matthew Green).
Note: sunos_stat() and sunos_lstat() were added too.
1995-06-11 22:33:50 +00:00
fvdl 769310e81d Linux select() returns the amount of time left before a timeout would have
occured in the timeval structure. Emulate this behavior. Reported by
Theo de Raadt.
1995-06-11 21:51:38 +00:00
fvdl fb777788b1 Don't forget to acknowledge that all the ELF stuff was taken from
Christos' svr4 code.
1995-06-11 15:15:09 +00:00
fvdl 8bf395c808 Make this link when SYSVXXXX is not enabled too. 1995-06-11 15:07:55 +00:00
fvdl a22d72bf4d * Always kill all vm_cmds before giving up on loading an executable
* Don't try to use auxiliary arguments with statically linked executables.
* Remove 'cannot find interpreter' uprintf, as other exec modules may
  succeed in running the binary after all, and then we don't want this message.
* Some linkers produce rw- for the data segment, not rwx.
* Remove a few debugging printfs
1995-06-11 15:06:11 +00:00
fvdl bfc9b29ab2 Remade these after syscalls.master had changed. 1995-06-11 14:57:56 +00:00
fvdl fc7cfb5f0b * Make Linux ELF binaries work. Lots of code duplication, but it will have to do
for now.
* Add a sanity check in linux_uselib
1995-06-11 14:56:47 +00:00
mycroft abd4cc9991 Remove /dev/zero special case. It's done in mmap(). 1995-06-10 22:45:15 +00:00
mycroft b1868d1bdf Set st_rdev in SVR4 struct stat. 1995-06-10 22:44:18 +00:00
mycroft 1e1e52e395 Rename the dirent fields to match Linux. Make sure the requested buffer
is no larger than MAXBSIZE.
1995-06-10 22:19:06 +00:00
jtc 95ded74f58 Moved egid credential from cr_groups[0] to new field cr_gid. POSIX.1
requires that sgid executables and the setuid() syscall *not* change
the supplemental group list.
1995-06-01 22:43:30 +00:00
mellon b23214bbd9 Clear up name conflict between Ultrix syscall 103 and 139. 1995-06-01 16:38:15 +00:00
mellon ccd1ab13a1 syscall 139 is ULTRIX_SYS_sigcleanup (from Simon Burge) 1995-05-29 17:32:35 +00:00
mycroft cc8da4254d Need netinet/tcp.h. 1995-05-28 10:20:46 +00:00
mycroft 32659780f6 Convert TCP socket options. 1995-05-28 10:16:32 +00:00
mycroft 00569bf574 Fill in `name' argument to getsockopt() correctly. 1995-05-28 09:39:45 +00:00
mycroft 116c7de730 Fix typo. 1995-05-28 08:52:07 +00:00
mycroft e89504670f Convert IP socket options. 1995-05-28 08:50:17 +00:00
mycroft fbc3ef234b Get rid of damned `static's. 1995-05-28 08:09:51 +00:00
mycroft bfd22ffde8 Generate the new ps_strings format. 1995-05-16 14:19:03 +00:00
christos dbb1f513f8 syscalls.master was changed.
Note that COMPAT_OHPUX has been renamed to COMPAT_HPUX_6X and this is a
kernel option now, that should be specified together with COMPAT_HPUX.
1995-05-10 16:47:21 +00:00