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