Commit Graph

2581 Commits

Author SHA1 Message Date
thorpej
c8f5c657b5 Add ULL to a 64-bit integer constant. 2002-11-25 02:11:23 +00:00
manu
5bdd9578e4 Better vm_allocate emulation. 2002-11-24 17:22:59 +00:00
manu
1aaacd96d2 Give a second chance when vm_allocate fail, by finding another free region.
Seems to fix some problems.
2002-11-24 11:49:36 +00:00
wiz
ad774d9d77 Fix stack alignment; uses same alignment as COMPAT_LINUX.
Found by manu.
2002-11-23 17:35:06 +00:00
manu
1ee1245718 Add support for two Darwin sysctl 2002-11-23 02:18:53 +00:00
manu
af59b63bbd We now have the exact stack initial stack layout of Darwin:
macho_hdr, argc, *argv, NULL, *envp, NULL, progname, NULL,
*progname, **argv, **envp

Where progname is a pointer to the program name as given in the first
argument to execve(), and macho_hdr a pointer to the Mach-O header at
the beginning of the executable file.
2002-11-21 19:53:40 +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
0a624a0c15 back previous off; port can only supply LINUX_ELF_AUX_ENTRIES if it also
overrides the ELF copyargs function
2002-11-21 15:20:28 +00:00
jdolecek
3590104898 g/c local definition of LINUX_ELF_AUX_ENTRIES 2002-11-21 15:18:37 +00:00
manu
1af0fa979f Better immitate Darwin startup stack layout: there is a slot for the program
name after envp, and the 0x1000 at the beginning is a pointer to the binary
mach header (we don't emulate this correctly yet).
2002-11-20 23:54:39 +00:00
manu
a0d341067e Added host_info(PRIORITY_INFO) 2002-11-20 07:17:11 +00:00
christos
733d2a038f Make the OSABI and the branding optional. Tested by Ben Collver, thanks. 2002-11-19 22:38:07 +00:00
christos
63e4ec4bd7 implement mach_insert_port_right() 2002-11-19 19:54:07 +00:00
christos
645fa8d600 remove stack adjustment. 2002-11-19 16:29:32 +00:00
christos
8012fc6cf2 use mach_integer_t instead of just int. 2002-11-19 16:18:43 +00:00
manu
fe8f53c2a4 in mach_sys_map_fd, if the mapping failed because of the requested place
is already used, we want to remap to another place. The vmcmd must be
completely rebuild, else things does not work as expected, as the vmcmd has
been modified by the first mapping attempt.
2002-11-17 18:39:48 +00:00
manu
55c5227095 Add vm_map and vnode locking 2002-11-17 16:51:12 +00:00
manu
08616982e5 regen 2002-11-17 02:48:12 +00:00
manu
9215e8d4ed regen 2002-11-17 02:48:11 +00:00
manu
7d02c9fff8 Implement mach_sys_load_shared_file. This are not complete yet, especially
wrt to the flags, but at least it does relocations.
2002-11-17 02:46:24 +00:00
manu
a26a564e59 Implment map_fd mach trap
Fix host_info(BASIC_INFO) which was broken wrt to the number of field
returned.
2002-11-16 20:00:29 +00:00
manu
745fc5c9a0 Change a syscal name 2002-11-16 19:59:19 +00:00
uebayasi
c041971257 Fix compilation errors introduced by recent trace_enter()/ktrsyscall() changes.
Provided by FUKAUMI Naoki <naoki at fukaumi dot org> in kern/19070.
2002-11-16 07:40:38 +00:00
wdk
b0fb4471b2 Fix LINUX_ELF_AUX_ENTRIES sociability issue with Mips based ports 2002-11-15 22:44:57 +00:00
christos
7ae22e4da5 it is not kosher to include the same file twice. 2002-11-15 16:10:51 +00:00
manu
ffc06908b6 Regen 2002-11-14 21:48:23 +00:00
manu
897d942130 Use FreeBSD emulation to get pathname lookups in /emul/darwin. These FreeBSD
emulated system call just check in /emul and call the native system call.
2002-11-14 21:47:15 +00:00
christos
09495207e1 darwin needs us. 2002-11-14 21:38:51 +00:00
christos
b165b2e229 improve on debugging. 2002-11-14 21:17:30 +00:00
christos
f9ddf42b17 the host basic info belongs with the cpu.
attempt to make the semaphore traps work, by doing nothing.
2002-11-14 19:44:06 +00:00
jdolecek
6788e239e4 we now export information about CLK_TCK via ELF aux args, no need to
hardcode '100' for times(2) anymore; use 'hz' instead
2002-11-13 15:20:04 +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
081a94b01c linux_sys_times(): if tms is NULL, just return the number of ticks since
boot, don't error out; this matches what Linux does

Fixes problem reported in kern/19027
2002-11-13 08:27:10 +00:00
manu
530968e795 The kernel now builds with COMPAT_DARWIN. 2002-11-12 23:40:19 +00:00
manu
f3eaadfead Darwin system calls skeleton 2002-11-12 22:04:07 +00:00
manu
114cae0e54 Fix the stack layout on program startup. This should be:
(8 bytes boundary) PAGE_SIZE   argc    argv  .... envp
2002-11-12 19:01:18 +00:00
manu
f130f7a839 In mach_reply_port, don't increment the returned port for now, this confuses
the binary on the second launch.
In mach_vm_map, hack in a failure so that we fail exactly like Darwin when
mapping a page at address 0
Add vm_allocate trap
2002-11-12 06:14:39 +00:00
manu
3eb20e3576 mach_ports_lookup allocate one page of memory and returns its address.
On error, most traps return a short packet with just an error code, emulate
this correctly.
2002-11-12 05:18:31 +00:00
manu
d56caea9ae - Cleanup msg bits and trailer values
- a few dumb bug fixes
2002-11-11 09:28:00 +00:00
manu
293d243256 Introduce a better error reporting, using mach error codes
It seems there is no need to use dynamic allocation in mach_host_info.
2002-11-11 01:18:44 +00:00
manu
38455f4db0 The message id of replies is simply the message id of the request plus 100... 2002-11-10 22:05:35 +00:00
manu
556831bae9 More mach traps:
mach_port_deallocate, task_get_special_port, mach_ports_lookup,
vm_deallocate, vm_map, host_get_clock_service.
2002-11-10 21:53:40 +00:00
jdolecek
f50246965e handle __HAVE_MINIMAL_EMUL 2002-11-10 20:59:03 +00:00
manu
e9adbe1e47 Added mach_sys_msg_trap system call, and the host_page_size trap. 2002-11-10 09:41:45 +00:00
manu
4855282dc6 Implment one command of the host_info mach trap, which check for mach_msg_trap
availability
2002-11-10 02:18:03 +00:00
manu
99bc517790 Added sysctl to change all IRIX kernel values reported by uname and systeminfo:
OS name, hw name, kernel version, and so forth.
2002-11-09 09:03:56 +00:00
manu
873ed6f9ee Added support for Darwin's PowerPC-only system calls:
ppccalls, with system call numbers starting at 0x6000
fasttraps, with system call numbers starting at 0x7FF0

Because the Mach system call dispatching code has grown a bit
too much, introduce an inline function to handle it (mach_syscall_dispatch).

While we are there, remove the Mach and Linux includes from
arch/powerpc/powerpc/syscall.c and push them into
arch/powerpc/powerpc/{mach|linux}_syscall.c
2002-11-03 23:17:18 +00:00
jdolecek
7aca3aed62 retval is 'register_t *', not 'int *' 2002-11-02 17:05:19 +00:00
perry
9fcaba1f66 Add lint infrastructure 2002-11-02 07:49:57 +00:00
perry
889bb793ca set LLIBS= so we don't try to check the lint lib against llib-lc.ln 2002-11-02 07:49:29 +00:00
jdolecek
20e698bdc1 set nsysent to 512 (oh well, just three syscalls too many for 256) 2002-11-01 21:24:19 +00:00
jdolecek
3b4db9c39d set nsysent to 256 2002-11-01 21:09:52 +00:00
jdolecek
2cfacee0a0 set nsysent to 256 2002-11-01 20:44:43 +00:00
jdolecek
22ca1fc9f1 set nsysent to 512 2002-11-01 20:32:13 +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
jdolecek
81d274c850 make compile without DEBUG_MACH 2002-11-01 20:04:40 +00:00
jdolecek
e608322a28 regen: bump nsysent to nearest p-o-2 (256) 2002-11-01 19:30:28 +00:00
jdolecek
a0d3a3c03f bump nsysent to nearest p-o-2 2002-11-01 19:29:21 +00:00
jdolecek
1524c4bf08 set struct emul's nsysent to compat SYS_NSYSENT, not SYS_MAXSYSCALL 2002-11-01 19:26:21 +00:00
christos
1e48015df9 more debugging for the overwrite trap. 2002-10-30 15:04:17 +00:00
manu
e5620d742d KNF 2002-10-27 22:22:04 +00:00
manu
998f955471 Inaccurate comment fixed: This is not about SVR4, it's Mach 2002-10-27 21:41:51 +00:00
manu
f8aec0fd04 Added a cleanup function for the (un)shared region list, so that it does
not grow forever.
2002-10-23 21:30:46 +00:00
manu
13a3d2ed82 In mmap, use the address returned by sys_mmap to keep track of (un)shared
regions
2002-10-23 20:45:38 +00:00
scw
305ef1efe0 Regen to pick up netbsd32___sigaction_sigtramp addition. 2002-10-23 13:18:17 +00:00
scw
cb52115837 In preparation for COMPAT_NETBSD32 on SH-5:
- The MD netbsd32_machdep.h header now defines the 32-bit pointer type
   instead of using u_int32_t everywhere,
 - The MD netbsd32_machdep.h header now defines a macro (at least on
   current implementations) which converts a 32-bit pointer to its 64-bit
   equivalent,
 - Change the MI code to utilise the above two items in all the right places,
 - Implement netbsd32___sigaction_sigtramp().

Tested on Sparc64 by Matt Green.
2002-10-23 13:16:38 +00:00
jdolecek
e0cc03a09b merge kqueue branch into -current
kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
2002-10-23 09:10:23 +00:00
christos
ea0cda2cda remove XXX should die comment from the define; otherwise traditional cpp
screws up the elf name formation.
2002-10-22 23:31:24 +00:00
simonb
8465b6a98d Don't call cdevsw_lookup() with an uninitialised variable in
linux_sys_ioctl().
2002-10-22 11:55:10 +00:00
manu
eeb799a6c9 Implement MAP_LOCAL option to mmap, which enable the mapping of regions
private to the process within the share group.

There is one bit missing in this implementation: when replicating a change
in a process VM to the other process of the share group, we avoid copying
mappings for private regions in the target process, but we don't prevent
copying private regions from the source process.
2002-10-14 21:14:23 +00:00
manu
f3d9e2a4ab Implement IRIX_SGI_NUM_MODULES and IRIX_SGI_MODULE_INFO syssgi() commands. 2002-10-13 22:13:47 +00:00
manu
9d7899c2dc Return the hostid when equested HW_SERIAL (it seems it works like this) 2002-10-13 21:07:41 +00:00
manu
2001eb6db2 Added SGI_RUSAGE command to syssgi (this is a BSD rusage) 2002-10-12 08:53:46 +00:00
jdolecek
63c35652f5 replace irix_usemaFOO functions with noFOO/nullFOO as approprite in cdevsw,
g/c now unneeded functions
2002-10-11 20:07:48 +00:00
thorpej
d47fd44e41 Avoid collision with __unused in sys/cdefs.h. 2002-10-10 07:25:21 +00:00
pooka
8e4950499d regen for rfork 2002-10-09 20:24:10 +00:00
pooka
324d517241 FreeBSD rfork emulation 2002-10-09 20:22:47 +00:00
junyoung
33ecb0af91 Get rid of pcb_flags which is no longer existent. 2002-10-09 05:07:55 +00:00
manu
075c3542d8 Added uname emulation so that IRIX's uname -s returns IRIX 2002-10-05 23:17:29 +00:00
manu
e9b4436254 Fixed typo in a comment 2002-10-05 23:15:58 +00:00
chs
993948e989 count executable image pages as executable for vm-usage purposes.
also, always do the VTEXT vs. v_writecount mutual exclusion
(which we previously skipped if the text or data segment was empty).
2002-10-05 22:34:02 +00:00
manu
6589fa5eda Added an ioctl emulation so that IRIX's tar is able to extract a file. 2002-10-05 21:29:02 +00:00
scw
b34d6729f8 Add !defined(_LP64) in the appropriate places to correspond with
sys/syscallargs.h.
2002-09-28 10:20:01 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
thorpej
71404bb533 Don't include <sys/map.h>. 2002-09-25 22:21:01 +00:00
manu
deca50b66c Fill BADVADDR and CAUSE in sigcontext. We still don't restore them, but
it actually fixes a problem:
When /bin/sh gets a SIGSEGV, its signal handler calls brk and the offending
instruction is retried. Usually it gets another SIGSEGV, and things loops
until it pases without the SIGSEGV. This is the normal mode of operation, and
it can be reproduced on IRIX by a 10kB shell script starting by echo /*

However... the signal handler checks for BADVADDR in the saved registers
in struct sigcontext. If it does not find it, it gives up and exit instead
of retrying. Filling the field enables us to carry on normal operation
(which is to get dozens of SIGSEGV) instead of getting a failure at the
first SIGSEGV.
2002-09-25 19:39:16 +00:00
manu
7216eba62a We now fill the struct siginfo when requested (SA_SIGINFO flag to sigaction) 2002-09-25 19:09:50 +00:00
simonb
aae67f532c Remove a meaningless type qualifier on a cast. 2002-09-23 05:57:44 +00:00
simonb
4e3613273b Remove breaks after returns, unreachable returns and returns after
returns(!).
2002-09-23 05:51:10 +00:00
simonb
6ddc09dab1 Put storage class first in "static const" declaration. 2002-09-23 05:03:03 +00:00
simonb
c8cb48355a Commit remaining part of PR1623 so the code in the PR actually gets
executed(!).
2002-09-23 04:55:09 +00:00
simonb
67f65715f9 ttspeedtab() is a function that returns an int, and returns -1 if
there's an error.  Store the result of this function in a signed
variable instead of an unsigned variable before checking if the return
value is greater than zero.
2002-09-23 04:49:32 +00:00