Commit Graph

795 Commits

Author SHA1 Message Date
christos
47e40fce3a Add nanosecond handling on the stat and stat64 code for the i386. 2005-03-10 14:12:27 +00:00
perry
77f2a006d0 regen 2005-02-26 23:58:19 +00:00
perry
a7f74206ba regen 2005-02-26 23:20:00 +00:00
perry
477853c351 nuke trailing whitespace 2005-02-26 22:58:54 +00:00
christos
040c934485 Remove setup stack function. It moved to linux_exec_machdep.c. 2004-11-13 08:58:23 +00:00
christos
b7286f5ccd Add ptyfs pty device number translation. 2004-11-13 07:20:54 +00:00
christos
1265044e00 add LINUX_TIOCGPTN 2004-11-13 07:20:35 +00:00
christos
7bd9648b13 Split out the setup stack function for the benefit of lkms.
XXX: Our lkm system sucks. We really need to be exporting symbols, but
that leads to symbol conflicts.
2004-11-13 06:01:34 +00:00
thorpej
42b8fac3b8 Move boot device detection code from i386 and amd64 ports to x86_autoconf.c.
Rename i386_alldisks and x86_64_alldisks to x86_alldisks, adjust other
references to compensate.
2004-10-20 04:20:05 +00:00
jdolecek
6513aa8291 regen: generate struct linux_sys_shmget_args for linux_sys_shmget(2) 2004-10-05 06:02:36 +00:00
jdolecek
361bf102b8 mark linux_sys_shmget() STD, so that appropriate struct linux_sys_shmget_args
would be defined for use by alpha linux_sysent.c
2004-10-05 06:01:20 +00:00
jdolecek
decdc3f95c regen - now using wrapper for shmget(2) 2004-09-28 19:05:58 +00:00
jdolecek
f64366a240 add flag for shmget(2) to specify that later shmat(2) for the shared memory
segment should succeed even if the segment would be marked removed; use this
to implement the Linux-compatible semantics of shmat(2)

this fixes the old Linux VMware3 graphics problem with local display,
and possibly other local Linux X clients using MIT-SHM
2004-09-28 19:05:19 +00:00
jdolecek
81ed8f7972 move definition of linux_fsid_t to common/linux_types.h - it's identical
across all Linux archs
2004-09-20 18:51:55 +00:00
jdolecek
43b3feff28 regen:
implement support for Linux statfs64() syscall - 64bit variant of statfs()
2004-09-20 18:42:23 +00:00
jdolecek
110cc1cc61 implement support for Linux statfs64() syscall - 64bit variant of statfs() 2004-09-20 18:41:07 +00:00
jdolecek
2580579147 move definition of struct linux_stafs to common/linux_types.h, and use
explicit size types - the structure definition is actually identical
on currently support COMPAT_LINUX archs, so no point to have 6 copies of it
in the tree
2004-09-19 15:06:32 +00:00
jdolecek
3b18315bb9 regen: add exit_group(2) 2004-09-08 19:46:17 +00:00
jdolecek
78569d6650 implement basic exit_group(2), which just terminates calling thread;
apparently not many apps use thread groups yet, at least not with default
SuSE 9.1 libraries, so this is enough for now
2004-09-08 19:45:21 +00:00
jdolecek
a95e4d7c87 g/c LINUX_MAP_IGNMASK define - it's not used anywhere 2004-08-28 18:58:57 +00:00
jdolecek
88c36114af regen - sync syscall lists with Linux kernel 2.6.7 2004-08-01 15:38:10 +00:00
jdolecek
6e41cd161f add entries for #403, #404 (unused) 2004-08-01 15:36:23 +00:00
jdolecek
d1d5ac79b4 sync the syscall lists with Linux kernel 2.6.7 2004-08-01 15:34:22 +00:00
jdolecek
945fc3e577 regen:
add stub entries for syscalls added until Linux kernel 2.6.7

move the ARM-specific syscall range up to offset 0x180, to make room
for the new syscalls
2004-08-01 14:17:19 +00:00
jdolecek
2873b62b57 add stub entries for syscalls added until Linux kernel 2.6.7
move the ARM-specific syscall range up to offset 0x180, to make room
for the new syscalls
2004-08-01 14:16:32 +00:00
jdolecek
4b33174cf9 regen:
connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
2004-08-01 10:38:38 +00:00
jdolecek
ae85fa27f7 connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
2004-08-01 10:32:40 +00:00
chs
f8fa568ead remove the LINUX_SP_WRAP hack since it doesn't seem to be needed anymore,
and removing it lets us go back to mapping the stack non-executable again.
2004-07-25 23:26:44 +00:00
manu
31f25e173c Fix a reversed errno issue for Linux binaries on mips. While we are there,
fix broken includes for alpha and m68k.
2004-06-19 22:59:40 +00:00
manu
b2563527a8 Build COMPAT_LINUX again on mips after the siginfo change. 2004-06-19 18:45:30 +00:00
manu
0d510f3e7e include <sys/resourcevar.h>. It is not required for building -current,
but it is for -netbsd-2-0. Next step is to pull up the change...
2004-06-18 17:06:15 +00:00
manu
6b1a152604 COMPAT_LINUX/powerpc used the native stack setup routine, but now the
native version does non executable mappings on the stack. This is a
showstopper for Linux binaries.

To fix that we supply a copy f the native stack setup function for Linux
binaries, with the executable bit set.
2004-06-16 00:03:25 +00:00
matt
a6b639c3a5 Switch to using PSL_USEROK_P()
Use new save_fpu_lwp sematics to save or discard the fpu state appropriately.
2004-04-17 08:47:15 +00:00
drochner
d19f706361 all ports define __HAVE_SIGINFO now, so remove the CPP conditionals 2004-03-26 17:34:18 +00:00
yamt
2a93afdfd5 rename i386 mdlwp flags from MDP_ to MDL_
to avoid confusion with mdproc flags which also have MDP_ prefixes.
2004-01-28 10:48:55 +00:00
christos
5c9b8df403 remove error(1) comment. 2003-12-08 17:51:53 +00:00
atatat
13f8d2ce5f Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(),
vfs_sysctl(), etc, routines, along with sysctl_int() et al.  Now all
nodes are registered with the tree, and nodes can be added (or
removed) easily, and I/O to and from the tree is handled generically.

Since the nodes are registered with the tree, the mapping from name to
number (and back again) can now be discovered, instead of having to be
hard coded.  Adding new nodes to the tree is likewise much simpler --
the new infrastructure handles almost all the work for simple types,
and just about anything else can be done with a small helper function.

All existing nodes are where they were before (numerically speaking),
so all existing consumers of sysctl information should notice no
difference.

PS - I'm sorry, but there's a distinct lack of documentation at the
moment.  I'm working on sysctl(3/8/9) right now, and I promise to
watch out for buses.
2003-12-04 19:38:21 +00:00
matt
f2e488d9af Adapt to SIGINFO changes. 2003-10-10 18:08:04 +00:00
matt
0dbe439e05 Adapt ARM Linux compat code to deal with SIGINFO. 2003-10-10 14:44:42 +00:00
matt
25fb6de823 Adapt to SIGINFO changes. 2003-10-10 02:26:54 +00:00
thorpej
8321b2554f Use ksi_signo accessor macro. 2003-10-08 00:39:57 +00:00
christos
07ceba4419 Catch up with chuck's stack changes. Don't map the linux stuff executable
and avoid mapping segments that have 0 size.
2003-10-06 03:45:40 +00:00
cl
ea7f5f55b4 fix fmovem argument reference 2003-09-28 00:15:13 +00:00
cl
af0728fff5 catch up with const sigset_t 2003-09-28 00:07:50 +00:00
simonb
550b4bef88 Fix "constify sendsig/trapsignal" fallout for non-siginfo'd archs. Test
compiled on most architectures.
2003-09-26 12:02:55 +00:00
christos
cfba45c856 constify sendsig/trapsignal 2003-09-25 22:00:02 +00:00
matt
85a5f3065d Add siginfo support for PowerPC. 2003-09-25 18:42:18 +00:00
cl
11af0a3c8d SA_SIGINFO support for m68k (emul linux) 2003-09-22 14:36:42 +00:00
jdolecek
bc83b2f421 make compile after last change (!) 2003-09-21 19:29:10 +00:00
christos
9b18cdecf8 Now that we have siginfo, use it, instead of pretending to have one. 2003-09-21 17:42:23 +00:00
christos
e2c278d8c0 SA_SIGINFO changes 2003-09-06 22:09:20 +00:00
chs
939df36e55 add support for non-executable mappings (where the hardware allows this)
and make the stack and heap non-executable by default.  the changes
fall into two basic catagories:

 - pmap and trap-handler changes.  these are all MD:
   = alpha: we already track per-page execute permission with the (software)
	PG_EXEC bit, so just have the trap handler pay attention to it.
   = i386: use a new GDT segment for %cs for processes that have no
	executable mappings above a certain threshold (currently the
	bottom of the stack).  track per-page execute permission with
	the last unused PTE bit.
   = powerpc/ibm4xx: just use the hardware exec bit.
   = powerpc/oea: we already track per-page exec bits, but the hardware only
	implements non-exec mappings at the segment level.  so track the
	number of executable mappings in each segment and turn on the no-exec
	segment bit iff the count is 0.  adjust the trap handler to deal.
   = sparc (sun4m): fix our use of the hardware protection bits.
	fix the trap handler to recognize text faults.
   = sparc64: split the existing unified TSB into data and instruction TSBs,
	and only load TTEs into the appropriate TSB(s) for the permissions.
	fix the trap handler to check for execute permission.
   = not yet implemented: amd64, hppa, sh5

 - changes in all the emulations that put a signal trampoline on the stack.
   instead, we now put the trampoline into a uvm_aobj and map that into
   the process separately.

originally from openbsd, adapted for netbsd by me.
2003-08-24 17:52:28 +00:00
dsl
dc46f864d1 Hide prototype of linux_exec_setup_stack() inside #ifdef _KERNEL so
that sbin/sysctl will compile.
2003-08-21 15:08:25 +00:00
hannken
1a2d1be737 Fix syscall_vm86 argument:
struct trapframe -> struct trapframe *
2003-08-21 08:36:56 +00:00
christos
329946a58b remove the args from the macro. 2003-08-14 02:17:07 +00:00
jdolecek
c336185a31 regen - added wrapper for Linux ftruncate64() 2003-08-10 20:17:21 +00:00
jdolecek
94b152275c add Linux compat arg wrapper for ftruncate64(), and change linux compat
truncate64() wrapper to translate args structure
NetBSD truncate() and ftrucate() have hidden 'pad' argument, so we have
to do the argument translation

Problem found and patch supplied in PR kern/22360 by Ales Krenek

This is the last of syscalls with hidden 'pad' arg we didn't have
wrapper for; all the others (lseek, mmap, pwrite, pread) already had
wrapper before.
2003-08-10 20:16:20 +00:00
christos
36e09d1a2c Explain a diagnostic message a bit better, and make it a debug only message. 2003-08-09 14:16:44 +00:00
christos
3b9c3c5aab - GC all the setup_stack functions
- add one for linux/i386
2003-08-08 18:57:01 +00:00
jdolecek
d6ade97eb9 use copyout() instead of subyte() 2003-08-02 20:23:48 +00:00
jdolecek
e0fe42681d use copyin()/copyout() instead of fubyte()/subyte()
also nuke uvm_useracc() check, copyin()/copyout() do this atomically

XXX only compile-tested
2003-08-02 19:51:23 +00:00
jdolecek
16b74086ed replace fuword() with copyin(), and suword() with copyout() 2003-08-02 19:21:48 +00:00
jdolecek
21f695a1ae add LINUX_SO_PEERNAME, LINUX_SO_TIMESTAMP where it has been missing
fix value for LINUX_SO_DETACH_FILTER on couple places (unused anyway)

g/c LINUX_SCM_TIMESTAMP definition for some archs, it will be defined
in generic linux_socket.h
2003-07-26 19:59:29 +00:00
christos
28f544c476 Regen. 2003-07-03 21:25:07 +00:00
christos
c23e21bca5 Implement linux_rt_sigreturn for real. Add a hack for more plausible siginfo.
The java segv handler still segv's again inside the signal handler, but our
sample test program now works [gets the proper ucontext].
2003-07-03 21:24:27 +00:00
fvdl
d5aece61d6 Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
2003-06-29 22:28:00 +00:00
thorpej
9f722af1c9 Adapt to ktrace/lwp changes. 2003-06-29 16:10:48 +00:00
thorpej
38271de3f4 Regen: adapt to linux mmap2 changes. 2003-06-29 16:08:36 +00:00
thorpej
8ab744356a Adapt to linux mmap2 changes. 2003-06-29 16:07:58 +00:00
simonb
2bda3187f5 Fix 'struct lwp *' lossage. 2003-06-29 15:14:11 +00:00
darrenr
257443876f 'struct proc *' -> 'struct lwp *' as required to get GENERIC for macppc built 2003-06-29 11:02:21 +00:00
darrenr
960df3c8d1 Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records.  The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
2003-06-28 14:20:43 +00:00
he
3686522ed1 Regenerate after adding include of linux_mmap.h. 2003-06-28 07:56:51 +00:00
he
c7ace1c552 Need to include linux_mmap.h to get size of struct linux_sys_mmap2_args. 2003-06-28 07:55:08 +00:00
christos
c9a5d7edc1 Regen. 2003-06-23 21:26:30 +00:00
christos
35637451db PR/21937: Todd Vierling: Proper support for mmap2 2003-06-23 21:25:56 +00:00
thorpej
d46b766d7d Use PAGE_SIZE rather than NBPG. 2003-04-01 14:45:09 +00:00
dsl
60418b39b7 Change 'data' argument to fo_ioctl and fo_fcntl from 'caddr_t' to 'void *'.
Avoids a lot of casting and removes the need for some line breaks.
Removed a load of (caddr_t) casts from calls to copyin/copyout as well.
(approved by christos - he has a plan to remove caddr_t...)
2003-03-21 21:13:50 +00:00
thorpej
5afa6838bf Do the syscall_plain/syscall_fancy dance on ARM. Shaves a fair number
of cycles off the syscall overhead.

Since all COMPAT_LINUX platforms now support __HAVE_SYSCALL_INTERN,
garbage-collect the LINUX_SYSCALL_FUNCTION stuff.
2003-03-01 04:36:38 +00:00
yamt
da8d9f98f5 make compat_linux struct file interlock friendly. 2003-02-27 16:04:15 +00:00
thorpej
d88bc9c3a2 Regen for correct RCS ID. 2003-01-18 23:36:48 +00:00
thorpej
9509ca1682 Regen for correct RCS IDs. 2003-01-18 23:36:09 +00:00
thorpej
6f62ffcd13 Regen to get correct RCS IDs. 2003-01-18 23:34:34 +00:00
thorpej
a03cb2b851 Regen to get correct RCS ID. 2003-01-18 23:28:15 +00:00
thorpej
9653eab062 Regen: Merge the nathanw_sa branch. 2003-01-18 08:07:52 +00:00
thorpej
3d60b73d4f Merge the nathanw_sa branch. 2003-01-18 08:06:20 +00:00
thorpej
42f134e02f Regen: Merge the nathanw_sa branch. 2003-01-18 08:05:32 +00:00
thorpej
46141a3135 Merge the nathanw_sa branch. 2003-01-18 08:02:46 +00:00
junyoung
81ed087074 - Rename struct linux_ctx to linux_fpctx.
- KNF.
2002-12-08 11:20:22 +00:00
tron
96ece1f13e Fix namespace collision caused by recent change to "linux_machdep.h". 2002-12-06 10:51:27 +00:00
junyoung
9104ddf809 Fix compile error. 2002-12-06 03:37:19 +00:00
christos
ef042d8e23 add a linux_rt_sigframe to support SA_SIGINFO, and use it when SA_SIGINFO
is requested. This appears to be how linuxthreads decides which signal handler
to use.
2002-12-06 00:02:59 +00:00
christos
116bcb05d0 rename: s/sa_/<compat>sa/g 2002-11-26 18:43:20 +00:00
christos
daa59d8957 rename sa_ -> linux_sa_
first attempt at providing siginfo_t to the signal handler.
2002-11-26 18:42:38 +00:00
jdolecek
2ca4879bd1 g/c also mips-specific linux ELF copyargs function prototype and
linux ELF defines, use generic Aux32Info instead
this also adresses kern/19047 by FUKAUMI Naoki
2002-11-21 15:32:32 +00:00
jdolecek
3590104898 g/c local definition of LINUX_ELF_AUX_ENTRIES 2002-11-21 15:18:37 +00:00
jdolecek
cee43b67cc add generic linux compat ELF copyargs function
this gives:
* linux sysconf(_SC_CLK_TCK) gives correct value for linux binaries (hz)
  even if hz != 100
* glibc gets proper information on real/effective uid and enables
  secure mode for suid binaries

g/c LINUX_COPYARGS_FUNCTION, replaced by linux ELF copyargs function
g/c alpha-specific linux ELF copyargs function and linux ELF defines
2002-11-13 15:16:27 +00:00
jdolecek
9def367548 need to use Aux32Info explicitly, not AuxInfo alone, to work
within context of kern/exec_conf.c
2002-11-13 14:35:15 +00:00
jdolecek
dc57bd5cb7 eliminate remaining LinuxAuxInfo 2002-11-13 13:42:06 +00:00
jdolecek
e97bb63dae need to use LINUX_ELF_AUX_ENTRIES in LINUX_ELF_AUX_ARGSIZ
how this ever could have worked?
2002-11-13 13:40:51 +00:00
jdolecek
3e8efcdd61 use generic ELF AuxInfo, no need to define a 'linux' variant here
simplify LINUX_ELF_AUX_ARGSIZ definition, LINUX_SP_WRAP is always defined here
2002-11-13 13:37:22 +00:00
jdolecek
8bf8260072 regen: nsysent set to 256 2002-11-01 20:24:23 +00:00
jdolecek
11422af13d nsysent set to 256, and use linux_sys_nosys() 2002-11-01 20:23:23 +00:00
jdolecek
d53c88616f add appropriate nsysent, and use linux_sys_nosys as sys_nosys 2002-11-01 20:20:52 +00:00
jdolecek
faf637ce78 add appropriate nsysent 2002-11-01 20:20:10 +00:00
jdolecek
de9c76a3b0 add appropriate sys_nosys and nsysent (not that it matters here too much) 2002-11-01 20:19:29 +00:00
junyoung
33ecb0af91 Get rid of pcb_flags which is no longer existent. 2002-10-09 05:07:55 +00:00
thorpej
71404bb533 Don't include <sys/map.h>. 2002-09-25 22:21:01 +00:00
gehenna
77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
christos
fad54bde7f Make this match reality [not used yet] 2002-09-05 22:28:10 +00:00
christos
830c5c171a Implement passing AT_{E,R}{U,G}ID in the elf aux vector, like solaris.
- pass struct proc to copyargs.
- eliminate svr4_copyargs, since it is the same as ours now.
2002-08-26 21:05:59 +00:00
enami
bb4aeb0e05 Pull changes done in rev. 1.7 of sys/compat/linux/arch/powerpc/linux_exec.h
so that sysctl(8) compiles again.
2002-08-15 06:31:30 +00:00
mrg
19ad2640ac don't need systm.h here 2002-08-12 07:59:31 +00:00
chs
0724ffc87a restructure the FPU and AltiVEC code so that it works for MP. 2002-07-28 07:38:34 +00:00
scw
bef00d4895 m68k syscall rototill:
- Switch all m68k-based ports over to __HAVE_SYSCALL_INTERN.
 - Add systrace glue.
 - Define struct mdproc in <m68k/proc.h> instead of <machine/proc.h>.
   (They were all defined exactly the same anyway, other than a couple
   of the MDP_* flags.)
2002-07-13 08:28:40 +00:00
matt
66eaa16742 Change fpuproc to curcpu()->ci_fpuproc. 2002-07-09 17:41:27 +00:00
thorpej
011d4d5f44 Add kernel support for having userland provide the signal trampoline:
* struct sigacts gets a new sigact_sigdesc structure, which has the
  sigaction and the trampoline/version.  Version 0 means "legacy kernel
  provided trampoline".  Other versions are coordinated with machine-
  dependent code in libc.
* sigaction1() grows two more arguments -- the trampoline pointer and
  the trampoline version.
* A new __sigaction_sigtramp() system call is provided to register a
  trampoline along with a signal handler.
* The handler is no longer passed to sensig() functions.  Instead,
  sendsig() looks up the handler by peeking in the sigacts for the
  process getting the signal (since it has to look in there for the
  trampoline anyway).
* Native sendsig() functions now select the appropriate trampoline and
  its arguments based on the trampoline version in the sigacts.

Changes to libc to use the new facility will be checked in later.  Kernel
version not bumped; we will ride the 1.6C bump made recently.
2002-07-04 23:32:02 +00:00
jdolecek
aae43707d7 whitespace fixes 2002-05-20 06:26:46 +00:00
jdolecek
def25b45fa Fix bug introduced in rev. 1.69 - linux_fakedev() returned always
zero for nontranslated raw devices.
This fixes recently discovered jdb /dev/dsp stdin problem, reported
on current-users by Mark Davies.
2002-05-20 06:22:43 +00:00
jdolecek
bfbe50611b On archs with broken linux struct stat64 st_ino, rename linux_stat64's
lst_ino to __lst_ino and lst_ino64 to lst_ino, and define
LINUX_STAT64_HAS_BROKEN_ST_INO. Only assign __lst_ino if this define
is present.

This fixes compile on powerpc archs, and hence port-powerpc/16893.
2002-05-19 18:03:15 +00:00
jdolecek
98a5f2b671 hook in truncate64(2) and ftruncate64(2) 2002-05-19 17:55:42 +00:00
jdolecek
973744c531 add missing linux_file64.c, which is needed now 2002-05-19 17:55:08 +00:00
matt
6456f8fa92 Make COMPAT_LINUX compile again on Alpha. linux_getdents64 moved but
files.linux_alpha wasn't updated.  common/linux_file64.c contains a lot
of syscalls which aren't on Linux/alpha so #ifdef them for alpha.
2002-05-13 05:41:26 +00:00
simonb
7a0dcaf565 Remove an unreachable "return 0;". 2002-05-13 05:35:47 +00:00
jdolecek
9e0898063f regen - hook linux_sys_fcntl64() 2002-05-12 15:05:56 +00:00
jdolecek
b6168e0ca7 regen - 64 fs syscalls 2002-05-12 15:04:59 +00:00
jdolecek
0197718567 hook in remaining 64bit fs syscalls
make most of stuff in linux_file64.c available unconditionally,
  with exception of fcntl64, which is not present on Linux m68k
2002-05-12 15:04:27 +00:00
jdolecek
a757d39f99 regen 2002-05-12 13:57:08 +00:00
jdolecek
187c2394f1 update for newer syscalls (from 2.5.15)
Linux m68k doesn't seem to have fcntl64 syscall - oversight?
2002-05-12 13:55:54 +00:00
manu
28a3cfe032 Do not restore SR on sigreturn: this could enable the user process to gain
unpropre privileges.
2002-04-15 20:48:12 +00:00
christos
7e9e73a53c regen 2002-04-10 18:19:04 +00:00
christos
db952e86f3 add getdents64 2002-04-10 18:18:26 +00:00
itojun
9998fd3a57 revert previous 2002-04-10 09:53:01 +00:00
itojun
7aef2b4e07 make it compile (missing includes) 2002-04-10 09:37:51 +00:00
christos
866ad0f73f PR/16231: Ben Harris: m68k does not compile. 2002-04-08 13:27:37 +00:00
christos
e9c4f70b2f use lsi_ like all other linux emulations. 2002-04-04 22:17:29 +00:00
christos
eda21311fd save/restore fs and gs; this should be pulled up. 2002-04-02 22:32:16 +00:00
christos
840887afee bring the reverse signal mapping array into linux_signo.c 2002-03-31 22:40:16 +00:00
christos
ac29fb3782 make signal array handling uniform, and put signal arrays in a separate
file. This is simular to errno array handling.
2002-03-31 22:22:43 +00:00
christos
c9e808f0ee 1. fill in the ldt.sd_xx field, for total compat with linux.
2. in setregs, use gdt's instead of ldt's because linux wants to play with
   all the ldts. Apparently linuxthreads uses ldt's to allocate space for
   pthread_t's.
2002-03-29 17:01:49 +00:00
bjh21
99ba40c188 arm26->acorn26 transition. 2002-03-24 15:49:38 +00:00
chs
60b5cc6ac2 make this compile again (PS_STRINGS is gone). 2002-03-23 05:00:04 +00:00
christos
0a4f1c3d8f sync with current reality and fix debugging. 2002-03-22 18:39:23 +00:00
christos
5681411206 regen 2002-03-22 15:19:53 +00:00
christos
b3c32e7e6d nuke mmap2, add mprotect 2002-03-22 15:19:43 +00:00
christos
99ff14c9f3 regen 2002-03-22 15:18:48 +00:00
christos
45af46eb53 add mprotect, nuke mmap2 2002-03-22 15:18:13 +00:00
christos
b9a0007d1d regen 2002-03-22 15:17:17 +00:00
christos
190ffecb97 add mprotect, nuke mmap2 2002-03-22 15:17:04 +00:00
christos
7359db6620 regen 2002-03-22 15:16:14 +00:00
christos
24e38ed8f3 nuke mmap2 add mprotect 2002-03-22 15:16:02 +00:00
christos
f7f4206314 regen. 2002-03-22 15:15:08 +00:00
christos
2b9a2aabe8 nuke mmap2, add mprotect 2002-03-22 15:14:55 +00:00
christos
92945f57fe regen 2002-03-22 15:11:23 +00:00
christos
22111899d0 1. make sure lines don't wrap
2. fix mmap and call it mmap like other ports do, not mmap2
3. implement fcntl64
4. implement mprotect because linux treats args slightly differently.
2002-03-22 15:10:38 +00:00
christos
bda4b15e05 - Now that RT-signals fit, fix the array to deliver them. [i386 only].
- jdk-1.4 works perfectly now. :-)
2002-03-19 20:51:59 +00:00
christos
381e6a7764 make the stackgap_{init,alloc} functions MP friendly (i.e. pass struct proc *
in, instead of using curproc). While there add an optional size argument to
stackgap_init.
2002-03-16 20:43:48 +00:00
pooka
28a03499e8 Replace unused padding in struct linux_stat64 by lst_ino64 as found in
linux's m68k struct stat64.

makes linux compat compile again
2002-03-16 14:49:29 +00:00
bjh21
a42e17ae9a __RCSID -> __KERNEL_RCSID 2002-03-10 15:47:43 +00:00
bjh21
64a051900d Id -> NetBSD in RCSID (oops). 2002-03-10 11:35:32 +00:00
is
728d5e960d fix some swapped parameters 2002-02-19 22:42:25 +00:00
nathanw
20d013dbed Regen. 2002-02-19 16:46:12 +00:00
nathanw
502ca4a24b Add linux_sys_{get,set}rlimit. 2002-02-19 16:44:09 +00:00
nathanw
cbc3e62bf0 Add LINUX_SA_NOCLDWAIT. 2002-02-19 16:35:59 +00:00
rafal
5af2ddd207 Add LINUX_SA_NOCLDWAIT, LINUX_SA_RESTORER, update LINUX_SA_ALLBITS. Linux
compat on mips builds again now.
2002-02-19 14:11:49 +00:00
christos
e52b5e4bfb Resolve alpha compile issues:
- bug with order in args in mask conversion md code.
- flags can be both int and long on the alpha. kludge around that, by not
  passing pointers to the conversion function.
- something is wrong with the toolchain look at the void * cast in copyout().
- sa_restorer is in a different place on the aplha. Deal with that, by not
  initializing it as before. XXX: this should be changed in the MD signal
  definition.
2002-02-18 22:24:17 +00:00
christos
1133f20b4f regen 2002-02-18 20:20:25 +00:00
christos
08739d68be provide linux_sys_getrlimit and linux_sys_setrlimit 2002-02-18 20:12:49 +00:00
christos
6e293e79bd regen 2002-02-18 16:36:20 +00:00
christos
7f739a6187 fix comment. 2002-02-18 16:35:57 +00:00
rafal
0208af27ee Regen: Use linux_sys_{g,s}setrlimit, remove linux_sys_ugetrlimit since
linux/mips doesn't seem to have one.
2002-02-18 00:10:26 +00:00
rafal
9751855fab the MIPS stat64 struct doesn't have a separate ino64 field, but the ino field
is a u_longlong.
2002-02-17 23:57:57 +00:00
rafal
dfcb814799 Use linux_sys_{g,s}etrlimit() since there's a common implementation now; but
MIPS has no sys_ugetrlimit, so don't declare it (209 is UNIMPL in the OSS
Linux-mips tree)
2002-02-17 23:55:23 +00:00
rafal
9f99fdabde Adapt for changes to linux_to_native_sigset() and native_to_linux_sigset(). 2002-02-17 23:18:38 +00:00
bjh21
db030aa93f Add an lst_ino64 member to struct linux_stat64. 2002-02-17 23:18:11 +00:00
bjh21
0fd75dd4e5 Adapt for changes to limux_old_extra_to_native_sigset() and
native_to_linux_old_extra_sigset().
2002-02-17 23:05:08 +00:00
bjh21
9e7faceaf4 Add LINUX_SA_NOCLDWAIT. 2002-02-17 22:45:29 +00:00
bjh21
d0dfca3108 Regen. 2002-02-17 22:30:22 +00:00
bjh21
e5087cd2b4 getrlimit and setrlimit now have Linux-specific implementations. Use them. 2002-02-17 22:29:46 +00:00
bjh21
6c9d7cafe8 linux_sys_break() is marked OBSOL, so don't include it. 2002-02-17 22:03:23 +00:00
bjh21
3113edfb9a linux_sys_rt_sigreturn is currently marked UNIMPL, so leave the stub out. 2002-02-17 22:00:09 +00:00
christos
6e89926d24 regen 2002-02-17 19:35:45 +00:00
christos
5a51f8945d fix rlimit confusion. 2002-02-17 19:35:30 +00:00
christos
09a9c8ea3d 1. load cr2 now that we have it.
2. ldt_info.base_addr == 0 && ldt_info.limit == 0 means zero the ldt
From Robert V. Barron's wabi patch.
2002-02-16 16:23:09 +00:00
christos
b03c54f812 regen 2002-02-15 16:50:58 +00:00
christos
3a4f78636f Regen 2002-02-15 16:50:35 +00:00
christos
51ea9c87e7 proper comment. 2002-02-15 16:50:13 +00:00
christos
28debea38a - add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
  that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
	gdb, telnet, work
	jdk-1.4.0 extractor works, jdk still coredumps.

christos
2002-02-15 16:47:58 +00:00
bjh21
043db35f0a cpu_cache_syncI_rng -> cpu_icache_sync_range 2002-02-02 16:53:39 +00:00
bjh21
c738201135 We shouldn't need an icache sync when catching a signal, so don't bother. 2002-02-02 16:52:45 +00:00
bjh21
2667358f8e Get rid of "unused variable" warnings on arm26. 2002-02-02 16:30:28 +00:00
bjh21
70017578a1 Regen (breakpoint() implemented). 2002-01-27 15:28:22 +00:00
bjh21
8c36606f84 Add support for breakpoints to ARMLinux emulation. 2002-01-27 15:27:33 +00:00
bjh21
4929dc576f Add support for PTRACE_GETREGS and PTRACE_SETREGS in ARMLinux emulation. 2002-01-27 15:11:38 +00:00
bjh21
bf73a232ce Regen (prototype for linux_sys_nosys()). 2002-01-27 14:09:38 +00:00
bjh21
71953fb155 Make syscall 0 an explicit call of linux_sys_nosys, as it is on i386. This
is necessary to get a prototype for linux_sys_nosys generated in syscallargs.h.
2002-01-27 14:08:56 +00:00
bjh21
3985634329 Regen (sys_nosys -> linux_sys_nosys). 2002-01-23 16:14:45 +00:00
bjh21
6add1ec812 sys_nosys="linux_sys_nosys", since that's how it should be. 2002-01-23 16:14:20 +00:00
bjh21
6b940e1484 Regen (cacheflush() and remove syscall 0). 2002-01-23 15:55:51 +00:00
bjh21
8b78e49ada Syscall 0 isn't syscall() on ARMLinux. Mark it UNIMPL instead. 2002-01-23 15:54:34 +00:00
bjh21
8a3c27fbf7 Add support for the ARM-specific syscalls in ARMLinux. These are invoked
by SWI numbers above 0x9f0000, but we re-map them down to somewhere just
after the end of the usual syscall range, since NetBSD doesn't handle
sparse syscall arrays well.

The only syscall I've actually implemented in this range is cacheflush(),
which was previously being mapped to fork(), causing ... interesting results.
2002-01-23 15:52:58 +00:00
bjh21
6ad60873c2 More-or-less working signal handling for Linux processes on ARM. 2002-01-17 22:50:38 +00:00
bjh21
934715db90 Fix unterminated #ifdef. 2002-01-17 21:17:57 +00:00
bjh21
16ee93eb67 On platforms that don't __HAVE_SYSCALL_INTERN, define LINUX_SYSCALL_FUNCTION
to be the value of emul_linux.e_syscall that we want.  This allows it to differ
between machines, so I can have a separate linux_syscall() on arm.
2002-01-17 17:19:03 +00:00
rjs
77f9569791 Add extra error codes from Linux. 2002-01-17 15:08:44 +00:00
bjh21
4a4d63e6c0 Regen. 2002-01-15 10:23:35 +00:00
bjh21
9f08648c7d Shuffle uname calls around. It turns out we don't use the same names as
Linux does, so:
sys_olduname -> linux_sys_oldolduname
sys_uname    -> linux_sys_olduname
sys_newuname -> linux_sys_uname
2002-01-15 10:21:46 +00:00
bjh21
2fdddc2550 Generated files for ARMLinux binary compatibility. 2002-01-14 23:17:16 +00:00
bjh21
23a5fe8d9b Remove old ARMLinux binary compatibility fragment. As far as I know, this
was never used.
2002-01-14 23:15:58 +00:00
bjh21
6462506466 Crude first cut at ARMLinux binary compatibility. Successfully runs
"/emul/linux/bin/echo hello, world", dynamically linked.
2002-01-14 23:14:32 +00:00
manu
482b5bcec3 Removed unused (commented out) code 2001-11-20 21:50:13 +00:00
manu
675946fd1c Fixed the Linux signal trampoline and linux_sys_sigreturn(). Linux signal
delivery now seems fully functionnal.
2001-11-20 21:37:50 +00:00
manu
86349adc0d Make it build again after recent MIPS cache code changes 2001-11-17 22:13:38 +00:00
manu
cb5cba1cf3 Fixed typos 2001-11-17 20:49:14 +00:00
lukem
2565646230 don't need <sys/types.h> when including <sys/param.h> 2001-11-15 09:47:59 +00:00
lukem
dab6ef8b56 add RCSIDs (including regeneration of files as appropriate) 2001-11-13 02:07:52 +00:00
manu
948a7fa8ef Fixed some mistakes in signal handling (this is still broken)
Added some code to set linux's uname kernel version to 2.4.0 (usefull for
testing with glibc-2.2). This is currently guarded by a #if 0.
2001-10-14 17:21:47 +00:00
manu
aa5da496fa Added socket operations to Linux Mips emulation 2001-10-06 13:32:58 +00:00
manu
2d38e85044 Implements ATOMIC_SET in linux_sys_sysmips 2001-10-06 13:32:18 +00:00
manu
801da94626 Implements parts of sysmips() and fctnl64() emulation 2001-09-30 20:52:40 +00:00
manu
a9c8120ff3 Fixes my last commit: only mips really need fcntl64 to work now. i386 and
powerpc could use it later if needed. m68k and alpha should never need it.
2001-09-30 20:44:49 +00:00
martin
62aaf2691e Make i386 kernels compile again.
fcntl64 was still marked UNIMPL, but the implementation existed, causing
a missing prototype warning.
XXX I have no clue if this is the correct fix - someone able to test this
please review it!
2001-09-30 18:57:43 +00:00
manu
238328fb7a Added initial support for fcntl64 system call (file locking is not
implemented)
2001-09-30 16:04:03 +00:00
simonb
8aec0ac7d5 DEBUG kernels fill the registers with garbage on process startup and
Linux program don't like that.  Explicitly zero out the registers for
DEBUG kernels.
2001-09-30 02:36:42 +00:00
simonb
0b8f86120f Define LINUX_ATEXIT_SIGNATURE to enable the atexit_signature test; needed
to run Linux/Alpha binaries.
2001-09-30 02:35:23 +00:00
manu
63d1ca8449 Initial support for running Linux binaries on the Mips. Both static and
dynamic binaries work on 32 bit mips. Signals are completely broken yet,
and ptrace is not supported.
2001-09-22 21:19:10 +00:00
manu
a0cca8f7f6 One file that was missing from a previous commit 2001-09-22 21:17:55 +00:00
manu
2207c50687 Fixed errors in header files 2001-09-22 21:15:18 +00:00
manu
84d266e55c More work on Linux compat for Mips: system calls mapping. 2001-09-22 21:14:37 +00:00
manu
421be662fc Forgotten file in my last commit for removing PowerPC mmap hack in Linux
emulation
2001-09-08 07:13:04 +00:00
manu
6bbacb9d3f Removed a hack to make PowerPC mmap work. This could have side effects on
alpha and i386. It has been tested and works on i386.
2001-09-08 07:09:43 +00:00
manu
11736debb0 Fixed indent 2001-09-03 21:10:56 +00:00
manu
27d1edf719 Added 64 bits support in header files.
All headers should be common to 32 bits MIPS and 64 bits MIPS now.
2001-09-02 08:39:37 +00:00
manu
f914316a09 Fixed indent problems 2001-09-02 07:56:11 +00:00
manu
220d274aa6 Fixed indent problems 2001-09-02 07:27:33 +00:00
manu
54eff3d533 Added some comments 2001-09-02 07:25:58 +00:00
manu
b9581b43a2 Fixed an error in a define 2001-09-02 07:24:49 +00:00
manu
fbdc500a69 Fixed indent problems 2001-09-02 06:51:15 +00:00
manu
8e1033bfc3 Enable the GCC signature test so that ld.so will be executable (needed for
Linux's ldd)
2001-08-30 20:41:36 +00:00
manu
6f08a31e06 Fixed a lot of mistakes in #define's (hes values instead of octal) 2001-08-26 21:17:52 +00:00
manu
6ae6d7c980 Preliminary work on Linux/Mips emul 2001-08-26 18:53:20 +00:00
manu
abf3af624a Preliminary work on Linux/Mips emul. More to come soon... 2001-08-26 18:11:25 +00:00
manu
34e3550db4 Moved LINUX_NCCS from MI file to MD file, because the value is different
on MIPS and sparc machines.
2001-08-26 17:26:31 +00:00
manu
8d2d7fdf71 Fiexed a typo in a #define 2001-08-26 17:17:55 +00:00
manu
0e6de337a2 Preliminary work on Linux/mips compat, more to come soon... 2001-08-26 17:12:56 +00:00
manu
d1fd72fba1 Fixed a typo in struct naming. This does not seems to impact anything. 2001-08-26 17:08:09 +00:00
manu
21f970e367 Preliminary work on Linux/Mips emulation, more to come soon... 2001-08-26 17:03:37 +00:00
manu
0f65ff9afc Preliminary work on Linux/mips compatibility, more to come soon... 2001-08-26 16:41:58 +00:00
manu
de40f400dd Preliminary work on Linux/mips compatibility, more to come soon... 2001-08-26 16:33:01 +00:00
manu
6ca52a1743 Preliminary work on Linux/mips compatibility, more to come soon... 2001-08-26 16:21:56 +00:00