Commit Graph

350 Commits

Author SHA1 Message Date
christos 6e98c7aef2 Moved via repository copy 1998-10-03 18:44:32 +00:00
christos 6e31782a3f moved via repository copy. 1998-10-03 18:43:28 +00:00
perry 036f631693 shut up egcs complaints by adding braces 1998-10-01 18:58:28 +00:00
perry 4a2f07c9cd shut up egcs complaints about braces 1998-10-01 18:57:05 +00:00
perry 5535f2a14b Add braces to shut up egcs 1998-10-01 18:53:37 +00:00
christos 627091bd84 Provide a suitable default so that kdump compiles on architectures
not supported yet.
1998-10-01 18:23:37 +00:00
erh fd21ba4d9b Add info on things left to do. 1998-10-01 04:27:33 +00:00
erh 5199a97864 Add the architechture-wise multiplexing header files. These are the files that should be included by anything that needs a linux compat header. These will then include the appropriate architechture dependent and common header file(s). 1998-10-01 04:20:16 +00:00
erh 4dc8295a26 Enable "includes" and "all"(=makesyscalls.sh) targets for alpha, common and i386. 1998-10-01 04:16:33 +00:00
erh 5dbbd9e2d1 Architechture-wise multiplexer for linux_syscalls.c. This exists because kdump, et al. include this file. 1998-10-01 04:13:25 +00:00
erh df1521ebe1 Modified to reflect new file layout. arch/<arch>/conf/files.<arch> should include this file and the appropriate compat/linux/<arch>/files.linux_<arch> file. 1998-10-01 04:11:26 +00:00
erh 9eef4e2e35 Kinda moved to compat/linux/Makefile.sc. 1998-10-01 04:08:38 +00:00
erh 19e9e9c2ef These syscall table files have been regenerated in compat/linux/i386. 1998-10-01 04:07:34 +00:00
erh d70c9cdbc9 Wheeee!: 8-way split of compat/linux/linux_misc.c into common code and multi-architechture functions. 1998-10-01 04:05:54 +00:00
erh c0a539a588 Define structures needed for these functions. 1998-10-01 04:00:20 +00:00
erh 46f5ff0021 Move compat/linux/linux_util.h to common. 1998-10-01 03:54:36 +00:00
erh 29217a6082 Move compat/linux/linux_sockio.h to common. 1998-10-01 03:53:00 +00:00
erh fe99a5c47e Add a couple function prototypes from linux_misc.c. 1998-10-01 03:49:59 +00:00
erh b64f5d3b1a Move IPC headers to common. The msg, sem and shm files, in addition to other common structures and to avoid creating several more machine dependent header files, include the syscall arguments for several system calls which don't exist on all architechtures. 1998-10-01 03:48:31 +00:00
erh e6ad366c04 Moved from compat/linux/linux_dirent.h to common. 1998-10-01 03:37:51 +00:00
erh e6a3796d67 Moved from compat/linux/linux_termios.c to common. 1998-10-01 03:36:27 +00:00
erh 658c307a1a Move compat/linux/linux_socketcall.h to multiarch. Defines for the socketcall multiplexer. 1998-10-01 03:34:50 +00:00
erh 81cc399a4d Split linux/compat/linux_socket.c into common and multi-architechture parts. linux_socketcall.c contains the socketcall multiplexer. 1998-10-01 03:33:17 +00:00
erh 4ab27f44f9 Move linux/compat/linux_ipccall.h to multiarch. Defines for the IPC multiplexerand associated functions. 1998-10-01 03:29:45 +00:00
erh d4649701f2 Split compat/linux/linux_ipc.c into common and multi-architechture parts. The IPC multiplexer and associated functions are now in linux_ipccall.c 1998-10-01 03:27:38 +00:00
erh f7ec994736 Move compat/linux/linux_ioctl.c to common. 1998-10-01 03:24:28 +00:00
erh 0060940d40 Split compat/linux/linux_file.c into common and multi-architechture parts. 1998-10-01 03:22:11 +00:00
erh f7ac1bd375 Split compat/linux/linux_exec.c into common, elf and a.out parts. 1998-10-01 03:11:33 +00:00
erh 5b06d1ed0b Move compat/linux/linux_error.c to common. 1998-10-01 02:32:24 +00:00
erh a20d9dce3e Moved compat/linux/linux_cdrom to common. 1998-10-01 02:30:36 +00:00
erh fcaf5df8c2 Split compat/linux/linux_signal.c into i386, common and multi-architecture parts. 1998-10-01 02:27:33 +00:00
erh 7588fef564 Moved here from arch/i386/include/linux_machdep.h. 1998-10-01 02:22:01 +00:00
erh ecb2c14c6e Moved here from arch/i386/i386/linux_machdep.c. 1998-10-01 02:17:31 +00:00
erh 2637ab656d Move compat/linux/linux_exec.h to common. 1998-10-01 02:11:00 +00:00
erh 0b412af4e1 Add linux i386 machine type. 1998-10-01 02:09:12 +00:00
erh 39fa21b763 Regen. 1998-10-01 02:05:32 +00:00
erh 14b1e271b5 Move compat/linux/syscalls.master to i386. Add a few syscalls while I'm here. 1998-10-01 02:03:17 +00:00
erh 9c4b9e9840 Split compat/linux/linux_termios.h into i386 and common parts. 1998-10-01 01:52:58 +00:00
erh 5139d084ba Split compat/linux/linux_ioctl.h into i386 and common parts. 1998-10-01 01:33:03 +00:00
erh ecdc99eb5f Split linux_types.h into i386, common and multi-architechture parts. 1998-10-01 01:31:10 +00:00
erh 79905dc1f3 Split linux_socket.h into i386 and common parts. 1998-10-01 01:19:07 +00:00
erh 45c3ba3edb Split linux_fcntl.h into i386 and common parts. 1998-10-01 01:16:42 +00:00
erh a3f5b4f0e7 Split compat/linux/linux_errno.h into i386 and common parts. 1998-10-01 01:03:37 +00:00
erh a7f2aff0a7 Split compat/linux/linux_signal.h into i386 and common parts. 1998-10-01 00:57:29 +00:00
erh b8454a0669 Split compat/linux/linux_mmap.h into i386 and common parts. 1998-10-01 00:53:44 +00:00
erh 948d228b24 Moved from compat/linux. 1998-10-01 00:42:01 +00:00
erh 18c41cce3e Moved to compat/linux/i386. 1998-10-01 00:37:53 +00:00
erh 72041f8e72 Alpha version of the linux compat machdep signal and machdep ioctl stuff. 1998-10-01 00:34:22 +00:00
erh b513364563 Alpha specific version of sys_pipe and signal translation array. 1998-10-01 00:32:27 +00:00
erh 1a0a0103aa New list of files for the i386. 1998-10-01 00:29:11 +00:00
erh 293ccb5512 New makefiles for includes, syscall gen. 1998-10-01 00:28:33 +00:00
erh ad1f9288a2 Stubs for future development of linux compat architechtures. 1998-09-30 21:55:57 +00:00
erh cb71edeaa4 Common makefile to process syscalls.master files. 1998-09-30 21:38:46 +00:00
erh a919a6b4a8 New header files for Linux compat on the Alpha. 1998-09-30 21:36:23 +00:00
erh 69ebd14bba Generate. 1998-09-30 21:34:32 +00:00
erh 847d4565e9 Initial support for linux compat on the alpha. Not quite working. 1998-09-30 18:01:53 +00:00
tv b8aba69399 Bracket stray printf()s by #ifdef DEBUG. 1998-09-29 14:15:49 +00:00
mycroft f384c47bc7 Regen. 1998-09-11 23:13:32 +00:00
mycroft fb526e055c Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
  versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
  sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
  sys_sigpending() and sys_sigsuspend() into separate functions, and call them
  from all the emulations rather than hard-coding everything.  (Avoids uses
  the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
  pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
  bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
  in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.

Note: Only code touched by the i386 port has been modified.  Other ports and
emulations need to be updated.
1998-09-11 12:50:05 +00:00
rvb 26b955eec7 ufs_readdir no longer checks if vp->v_type != VDIR so
the individual emulated readdirs must check.
Since netbsd and freebsd return EINVAL for the error
and I don't know what the other platforms do, return
EINVAL for them too.
1998-09-08 20:02:51 +00:00
christos 8fb507a3b7 Assign copyright to TNF. 1998-09-05 14:50:25 +00:00
thorpej ff266f0937 Add some braces to make egcs happy. 1998-08-18 18:23:07 +00:00
perry e1601dc2ca bzero->memset, bcopy->memcpy, bcmp->memcmp 1998-08-09 20:36:58 +00:00
kleink 86233eeede Regen again, to indicate which master revision these were generated from. 1998-08-07 17:21:35 +00:00
augustss 48bae9ee88 Add MIDI support. The MIDI devices can be accessed as ``raw'' through
the /dev/rmidiN devices, or with a sequencer interface via /dev/music.
So far the only supported MIDI device is the MPU401 port on SoundBlaster
(and only on SB on isapnp, since we do not have locators with multiple
values yet).
1998-08-07 00:00:55 +00:00
perry f15ade7552 enable nanosleep in linux emul, per pr-5906 from Soren S. Jorvang 1998-08-05 00:44:32 +00:00
thorpej 37b70b3064 Change the "aresid" argument of vn_rdwr() from an int * to a size_t *,
to match the new uio_resid type.
1998-07-28 21:39:54 +00:00
thorpej 35bb79bc83 Oops, fix typo, pointed out by Urban Boquist <boquist@cs.chalmers.se>. 1998-07-07 00:40:27 +00:00
thorpej 33f066d24c Implement the shrinking and no-change bits of the Linux mremap(2) system
call, provided by Urban Boquist <boquist@cs.chalmers.se> in PR #5693.

Add a comment about how one might implement the growing bit of mremap(2).
1998-07-02 23:26:58 +00:00
drochner 81fd096b37 Since wscons can support VT_xxx ioctl()s, enable them if NWSDISPLAY > 0.
Implement KDGKBTYPE and KDGKBENT, this will make X servers happy.
1998-06-11 22:26:13 +00:00
kleink 687ea7404c Fix some arithmetics lossage on typeless pointers. 1998-05-08 16:55:15 +00:00
mycroft 487d1fa05e Fix typo in utime(). 1998-03-24 09:47:30 +00:00
fvdl a377495cfb Only free cookiebuf when sure that the vop actually allocated it. 1998-03-03 13:44:48 +00:00
fvdl e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
mycroft 0e4a7ffbe0 Regen. 1998-02-20 18:09:29 +00:00
mycroft 26c238db7d Linux's getsid(2) does in fact return a pid, not a pointer. 1998-02-20 18:09:04 +00:00
thorpej dc4fe3d32d Regen: makesyscalls.sh changed. 1998-02-19 03:34:15 +00:00
thorpej e94f57bd08 regen; makesyscalls.sh changed 1998-02-19 00:41:47 +00:00
thorpej c0ef23f235 Change a comment to reflect new makesyscalls.sh behavior. 1998-02-19 00:41:12 +00:00
kleink 96f0dccbdd * Use sys___posix_{chown,fchown}() instead of sys_{chown,fchown}().
* Change reference from sys_posix_rename() to sys___posix_rename().
1998-02-14 21:57:02 +00:00
thorpej 821a4fec46 Add a comment clearly describing that Linux's getsid(2) differs from
the XPG4.2 definition in that it returns the kernel virtual address
of the session structure, rather than the process group ID of the
session leader.
1998-02-14 01:28:15 +00:00
kleink 552ec236a0 Map ENOMSG. 1998-02-10 14:37:38 +00:00
mikel 4de16acd9c update errno maps, we now have EIDRM 1998-02-06 08:26:02 +00:00
mycroft a963fe5864 Store the initial NPX control word appropriate for the emulation in the saved
FPU state, and use it when initializing the FPU on demand.
1998-01-24 13:19:46 +00:00
mycroft a9a7cc88d1 Need foo_exec.h. 1998-01-24 12:45:16 +00:00
mycroft 8bd9717302 Add local versions of setregs(), so I can tweak some registers later. 1998-01-24 12:42:22 +00:00
mycroft 9dd67a9098 Prototype new functions. 1998-01-24 12:39:37 +00:00
mycroft 72623d8443 Use linux_setregs(). 1998-01-24 12:32:15 +00:00
mycroft 769c9d4707 Clean this up a bit. 1998-01-22 16:33:57 +00:00
thorpej 54a35a6019 Generate dependencies on the USER_LDT option. 1998-01-22 00:39:16 +00:00
thorpej cf591e644b Generate dependencies on the VM86 option. 1998-01-15 22:25:52 +00:00
christos 05d3f8a2e9 PR/4794: Urban Boquist: Linux cdrom ioctls are missing 1998-01-15 14:52:11 +00:00
thorpej 80fff795f9 Regen. 1998-01-09 06:19:02 +00:00
thorpej 585f0dec73 Regen: back out RCD ID related changes. 1998-01-08 00:17:11 +00:00
perry 36bd5a5407 regened with RCSIDs in place 1998-01-05 18:23:00 +00:00
perry 3c47900572 RCSID Police. 1998-01-05 17:51:27 +00:00
fvdl af221f1c41 msync -> __msync13 1997-10-21 00:57:38 +00:00
thorpej 14cd99880c Fix the shared library versioning snafu caused by the recent changes
to the stat(2) family and msync(2).  This uses a primitive function
versioning scheme.

This reverts the libc shared library major version from 13 to 12, and
adds a few new interfaces to bring us to libc version 12.20.

From Frank van der Linden <fvdl@NetBSD.ORG>.
1997-10-20 22:05:06 +00:00
mycroft 762d77e123 Fix bogosity in mknod(2) translation. 1997-10-19 18:35:09 +00:00
christos ec57088486 Regen. 1997-10-16 23:55:23 +00:00
christos 79acd83ca5 check for st_nlink overflow 1997-10-16 23:54:40 +00:00
christos 7e8c979fa9 ostat -> stat43 1997-10-16 23:53:07 +00:00
mycroft 2e52ce5fd7 Pull in vmparam.h as necessary. 1997-10-16 04:23:36 +00:00
mycroft 91302e62ef Regen. 1997-10-16 03:36:14 +00:00
mycroft 68fb837229 Fix a typo inherited from kern/syscalls.master. 1997-10-15 17:18:17 +00:00
fvdl d85f38cbec Fix braino in my interpretation of the eof flag to VOP_READDIR. 1997-10-10 22:16:04 +00:00
mycroft 16652e8449 Regen. 1997-10-10 06:49:08 +00:00
mycroft 523d84775a Emulate mremap(2) by returning ENOMEM for now. This should be sufficient for
realloc(3) and other uses.  From Matthias Scheler in PR 3920.
1997-10-10 06:25:34 +00:00
fvdl d6e5e295fa Signal error when getting a 64 bit offset cookie that can't be stored
in 32 bits. Provide an error message to the user, and return EINVAL.
Also, pay attention to the EOF flag from VOP_READDIR. Correct a
misspell in a panic message.
1997-10-10 01:42:21 +00:00
kleink c80051ee4e Add missing preparation of F_GETLK parameters in linux_sys_fcntl(); fixes PR
port-i386/4083 from Matthias Scheler <tron@lyssa.owl.de>, but vastly cleaned
up as previously suggested by myself.
1997-09-05 01:49:12 +00:00
bouyer 1cd83a5971 Fix "missing entries" bug when reading large directories: When reading a
directory and running out of space in the dest buffer, off should point to the
current entry (which was not saved) and not to the next.
I discovered this bug using linux and SunOS emulation over NFS, but seems to
affect other emulations as well.
1997-08-04 09:48:07 +00:00
augustss 9745684ebe Changes to the sudio system:
- It is now possible to handle devices that want "looping" DMA,
    e.g. the SoundBlaster correctly.  The WSS and SB drivers use this.
    To do this several new methods were introduced in audio_hw_if.
  - Different silence handling (forced by previous change).
  - The audio driver can now be mmap()-ed, but due to problems in
    the VM system only for writing for now.
  - The OSS (Linux) audio emulation takes advantage of some of the
    new features.
1997-07-27 01:16:32 +00:00
pk e3680b0e26 config.new => config 1997-07-20 20:33:08 +00:00
kleink 96588fead9 Use sys_posix_rename() instead of sys_rename() as it's the behaviour of the
native implementation.
1997-06-27 05:29:34 +00:00
thorpej ac4da17507 Regen: Use compat_12_sys_swapon(). 1997-06-13 17:31:37 +00:00
thorpej 454c1df5f3 Use compat_12_sys_swapon(). 1997-06-13 17:30:19 +00:00
kleink 5482ee2d93 Fixed copyin() argument botch in shmctl() IPC_STAT handling. 1997-05-08 14:33:11 +00:00
augustss 52e73da1a4 Regen. 1997-04-07 14:15:06 +00:00
augustss bc5c0f6530 Add Linux nice() syscall. 1997-04-07 14:13:16 +00:00
augustss 32801cf383 * Move the Linux audio emulation into its own directory and rename it
OSS (aka VoxWare) audio emulation.
* Use the OSS audio emulation for Linux and FreeBSD.
* Add mixer emulation to the OSS emulator.
1997-04-04 15:35:54 +00:00
mycroft b1a3eda88c Copy back the format we set in SNDCTL_DSP_SETFMT. 1997-03-20 16:11:29 +00:00
mycroft 41bbc3f5b6 SOUND_PCM_WRITE_CHANNELS -> SNDCTL_DSP_CHANNELS, to match current Linux code. 1997-03-20 04:21:31 +00:00
mycroft eb41ccd5fe Emulate the SOUND_PCM_WRITE_CHANNELS ioctl. From PR 3356, by Lennart
Augustsson.  Also add hooks for mixer ioctls.
1997-03-19 05:12:13 +00:00
thorpej 8f8abcd69c Regen; makesyscalls.sh emits comments now. 1997-01-13 18:49:02 +00:00
fvdl bb31faf853 Make this compile again, including Politically Correct const handling. 1996-12-22 23:00:02 +00:00
fvdl 2452eadc60 Avoid compiler warnings when none of the SYSV* options is defined. 1996-11-15 09:51:25 +00:00
sommerfe d26717de0e Workaround for building linux-emulation LKM. 1996-10-29 02:19:25 +00:00
fvdl 990f0ce9b7 Add RCS Id. 1996-10-17 19:46:39 +00:00
christos d551a4edf9 catch up with Jason's exec.h inclusion. 1996-10-13 18:30:05 +00:00
christos bd73314ed9 backout previous kprintf changes 1996-10-13 03:19:38 +00:00
thorpej 4879f62ed8 Need <sys/exec.h> for the PS_STRINGS definition. 1996-10-12 02:20:37 +00:00
christos 06555645c2 printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:24:36 +00:00
christos 5476886e52 printf -> kprintf, sprintf -> ksprintf 1996-10-10 17:47:29 +00:00
cgd 912e6fef44 include <sys/exec.h> rather than <machine/exec.h> 1996-10-07 21:47:33 +00:00
jtk fb2727b7e6 update to compile; needs new enum name 'Elf_sht_progbits' 1996-10-05 00:12:49 +00:00
cgd 65148dea43 kill (re)definitions of EXEC_ELF32. They're no longer necessary
(because of the EXEC_* option changes), and now cause warnings.
1996-10-03 05:02:05 +00:00
thorpej 8dd444adbd Fix a section header check that didn't get updated with the elf32/elf64
changes.  Make this compile again with the new EXEC_* options.
1996-10-03 02:16:18 +00:00
christos 76f9ea8676 Elf32_sht_progbits -> Elf_sht_progbits 1996-09-30 23:56:01 +00:00
cgd 7c3255776d slightly clean up some of the changes made when ELF64 support went in 1996-09-27 18:14:23 +00:00
cgd 9c3e274c7b adapt ELF-using compat code to use new ELF definitions/code. At this point,
these are restricted to 32-bit ELF, and should be severely cleaned.
1996-09-26 20:52:42 +00:00
mycroft a8fd25767d Define execv() and execve() consistently across emulations.
Do path name translation.
1996-09-03 03:12:17 +00:00
mycroft 118b9b478d sys/dir.h -> sys/dirent.h 1996-08-10 09:08:26 +00:00
mycroft 365a977533 Catch up with setre[ug]id() changes. 1996-06-23 11:13:32 +00:00
christos d83602c110 Simplify and add comments. 1996-06-13 19:27:01 +00:00
christos 4d9a6e0930 - Pass the Elf32_Ehdr in the linux probe function, and use it!
Since linux binaries are (mostly) always compiled with gcc, look for
the gcc signature in the .comment section header: "\0 GCC: (GNU) ".
I've changed the probe order in kern/exec_elf.c to probe for linux ELF
binaries first and fall back to SVR4 binaries. This makes statically
linked binaries work for both linux and svr4. Note that gcc-compiled
svr4 binaries, still contain the operating system signature first and
then the GCC signature, so there is no conflict. Yes this is a hack.
1996-06-13 18:42:01 +00:00
fvdl 484a6c9fe4 Regen. 1996-05-20 02:00:53 +00:00
fvdl 69761c2aa8 Update list of Linux syscalls and implement the ones that are likely to be
used and doable.
1996-05-20 01:59:09 +00:00
christos 5503f7b749 Prototype and gcc -Wall cleanups 1996-05-03 19:41:56 +00:00
christos 8fd0f1f8b3 Add missing prototypes. 1996-05-03 19:26:28 +00:00
mycroft 7a8c8f8a5c Turn off the alignment check flag when entering a signal handler. 1996-04-18 08:36:20 +00:00