Commit Graph

2792 Commits

Author SHA1 Message Date
wiz
1035faff1d writable, not writeable. 2003-01-06 20:30:28 +00:00
wiz
c053751628 compatibility, not compatiblity. 2003-01-06 13:26:24 +00:00
wiz
617b132aac Spell output with two ts. 2003-01-04 23:43:02 +00:00
manu
f656d621e7 Here we enter the land of IOKit where the shadows lie.
There are two new mach traps:
mach_vm_make_memory_entry, mach_host_get_io_master. Now we need to find
the documentation to understand what they are supposed to do.
2003-01-04 15:15:01 +00:00
manu
4b219b054a I don't know where I saw this 8 bit shift for the inherit argument of
vm_inherit, but it's not usefull (it's even harmful), so remove it.
WindowServer still crashes but later.
2003-01-04 13:17:07 +00:00
manu
7f468ee029 Bug fixes for the fake pid hack.
WindowServer is now able to talk with mach_init to exchange bootstrap
information.
2003-01-03 14:47:27 +00:00
manu
80d406d8fe FIxed the way rights are recycled: the refcount makes only sense for
send, send once, and dead names, not for port sets and receive rights.
This make vi and telnet able to work again.

Also removed the all process right list and its lock, which got useless. The
all process lock is replaced by a per process lock, located in struct
mach_emuldata.

Also one bug fix: we did not correctly called Mach hooks for struct emuldata
initialization and release for Darwin processes.
2003-01-03 13:40:04 +00:00
manu
2c04ce0604 A better implementation of right carried by messages. We now correctly create
the right in the destination process.

This is a small step backward for functionnality: vi does not work anymore
because our right checks cause some spurious errors, but this will be fixed
later.
2003-01-02 12:46:06 +00:00
manu
0d5c4544d1 The first int on the stack is not the page size, it's the address of the
mach-O header. This is a guess based on what we have on Darwin, we need
to check other Mach systems to see if this value is Darwin specific or not.
Also updated copyright and removed useless debug
2003-01-01 15:18:25 +00:00
manu
f3e11e72e9 Introduce port names, deallocate mach ressources at Darwin process exit 2002-12-31 15:47:37 +00:00
manu
6f978415df When the kernel transmits a message to a processs, remote and local port
are swapped. Also added some debug.
2002-12-31 13:09:38 +00:00
manu
48ad3f41b6 Remove some debug and make it build again wihout DEBUG_MACH 2002-12-31 09:32:03 +00:00
manu
1d1b901b90 bug fix: in debug functions, the port set right and the port set members
wer mixed up
2002-12-30 19:32:15 +00:00
manu
d9f2a8dbcd - When mach_init saves the bootstrap port, make it the default bootstrap port
for any program we will launch later. This is a hack to avoid the need
of launching any Darwin binary as a child of mach_init
- More and more debug
2002-12-30 18:44:33 +00:00
manu
f449715c66 When allocating a receive right on a port, don't forget to change
the reciever.
2002-12-30 12:46:19 +00:00
manu
27427542f4 When the right is not a port set, set the port set head to the right
itself. That way when we want to wakeup a receiver, we just have to
wakeup the port set head, it will work either for port set and for non
port sets.
2002-12-30 12:41:52 +00:00
manu
459d0be3a4 More hacks to make Darwin's /sbin/init happy with its pid. 2002-12-28 00:15:23 +00:00
manu
874517b438 - When MACH_MSG_RCV_LARGE is set, we must return a message with just a header
and a body.
- If mach_init is not availabkle for boostrap requests, try to handle them
in the kernel (we don't really handle them, we just try to avoid hanging there)
- minor tweaks.
2002-12-27 19:57:47 +00:00
manu
3b815ab820 We must also return pid 2 when mach_init asks for its pid after it forked init. 2002-12-27 19:54:54 +00:00
manu
f464631d66 Several things:
1) rights should be shared by the threads within a process. While it would
be easier to handle this with the struct proc/struct lwp split, we attempt to
do this now by sharing the right lists. Because each right holds a reference
to struct proc, this might cause some problems later.
2) in pthread_exit, really exit the thread. Also reintialize the righ tlist to
make sure we will not destroy the parent's right list
3) rights can hold multiple permissions on a port (ie: send and receive). Fix th
is.
4) first attempt on right carried by messages. We still have to do rights carrie
d in the message body (complex messages).
2002-12-27 09:59:24 +00:00
manu
20fca78f89 regen 2002-12-26 14:41:34 +00:00
manu
bab8693bba Added the mysterious system call 331 (it does not seems to be in the
header files anywhere). This is pthread_exit.
2002-12-26 14:41:05 +00:00
manu
2894c4a53f Handle the kernel clock service by the kernel. 2002-12-26 13:45:17 +00:00
manu
f4d5ba5dbd Queue and dequeue message replies from kernel servers. This is less efficient,
but it sticks closer to the actual Mach semantics: the reply is queued at the
end of the queue. Also add more debug messages on port operations.
2002-12-26 11:41:46 +00:00
manu
dc403d4519 Bootstrap messages are not for the kernel, they are for mach_init. 2002-12-24 16:40:46 +00:00
manu
b2a7ace594 Better error reporting in mach_msg_trap: this system call does not use the
standard error codes.
2002-12-24 15:54:26 +00:00
manu
4d3d28af57 cosmetic 2002-12-24 15:53:46 +00:00
manu
93b65fbd1d regen 2002-12-24 12:29:28 +00:00
manu
185383e0a7 Typo 2002-12-24 12:29:06 +00:00
manu
41bfbd28fe On Darwin, mach_init is the system bootstrap process. It is responsible
for forking the traditional UNIX init(8) and it does the Mach port naming
service. We need mach_init for the naming service, but unfortunately, it
will only act as such if its PID is 1. We introduce a sysctl
(emul.darwin.init_pid) to fool a given process into thinking its PID is 1.
That way we can get mach_init into behaving as the name server.

Typical use:
/sbin/sysctl -w emul.darwin.init_pid=$$ ; exec /emul/darwin/sbin/mach_init
2002-12-24 12:15:45 +00:00
manu
c075c4d7f5 Get less debug output 2002-12-24 12:13:15 +00:00
gmcgarry
6b5b61b136 Update for revised ktrsyscall() prototype.
Perhaps this file should be changed to use trace_enter() so that
systrace works for aliased syscalls?  Leave that for someone familiar
with the systrace system.
2002-12-23 01:08:45 +00:00
manu
360f1c3ebe Cosmetic changes, added a debug printf 2002-12-22 21:51:56 +00:00
mrg
131dc6aa08 catch up with changes in sparc64/autoconf.c. 2002-12-22 02:54:34 +00:00
gmcgarry
66c19fc50c Add stubs for scheduler syscalls. 2002-12-22 00:05:59 +00:00
gmcgarry
87aecbbd2c Add scheduler syscalls. 2002-12-22 00:04:29 +00:00
gmcgarry
53bdf646b5 Use yield() for voluntary context switches. 2002-12-22 00:00:22 +00:00
gmcgarry
c4b66baf3f We do want yield() for voluntary context switches. Update comment. 2002-12-21 23:57:57 +00:00
manu
8958b6f9ba Handle receive operations on port sets 2002-12-21 23:50:47 +00:00
manu
ccd9e9a24d Fix plain bugs that prevented insert_right and move_member from working correctly. 2002-12-21 23:50:00 +00:00
manu
3ee2623baa Make it build again 2002-12-21 23:48:47 +00:00
kristerw
084ae1f838 ibcs2_debug is used only for IBCS2_DEBUG, so no need to define it otherwise. 2002-12-21 15:48:57 +00:00
gmcgarry
16f1be1856 Flag a context switch using need_resched() rather than invoking yield().
Matches the linux compat approach.
2002-12-20 04:58:44 +00:00
manu
3b71b464b2 First attempt on mach ports sets. Also maitian only one list of rights
per process, as segregating recv, send and send_once did not buy anything.
2002-12-19 22:23:06 +00:00
manu
f037b240d0 Instead of keeping track of the receiving process in struct mach_port,
keep track of the receive right for the port. There can be only one, and
the receive right references struct proc should we need it.

This makes easier to find the receive right associated with the port.
2002-12-17 22:48:33 +00:00
manu
391c8a71fc In mach_ports_lookup, allow the out of band data mapping anywhere we have
some free space
2002-12-17 22:47:07 +00:00
manu
5ba396cfb3 Added support for exchange of Mach messages between processes.
This does not buy us new functionnality for now, because we still have to
discover how mach_init (which acts as a name server, enabling processes to
discover each other's ports) is able to receive messages from other processes
(this is a bootstrap problem, and the bootstrap port might be the place to
search).

While we are there:
- removed a lot of debug which is now available using ktrace.
- reworked message handling to avoid mutliple copyin/copyout of the
same data. ktrace of Mach message now uses the in-kernel copy of the
message instead of copying it from userland.
- packed mach trap handlers arguments into a structure to avoid modifying
everything next time we have to add an argument.
2002-12-17 18:42:54 +00:00
simonb
4ec8d15e0d Use the already-filled-in-but-not-used native syscall args in
linux_sys_mknod().
2002-12-17 11:48:02 +00:00
tron
ad9b98744f Include "uvm/uvm_param.h" to get definition of PAGE_MASK required for
last change.
2002-12-17 10:42:02 +00:00
christos
c0bc51eec5 Don't allow non-page-aligned offsets! So dumb. From Jason Ish, thanks. 2002-12-16 19:37:03 +00:00
manu
b8a9df5e21 FIrst attempt at mach ports and rights, which are needed if we ever want
to implement messages between kernel and userland.
While we are there, cleanup some debug messages.
2002-12-15 00:40:24 +00:00
manu
530e1a6b60 Added thread_switch and some bits of Mach semaphores 2002-12-12 23:18:20 +00:00
manu
66a29c52af Added a few Mach traps: mach_boostrap_register, mach_port_set_attributes,
mach_port_move_member, mach_port_set_attributes, mach_task_set_special_port,
(none do anything)
Added mach_thread_create_running, which creates a new Mach thread. It
provides the register context of the new thread. We use it in a child
function provided to fork1(). The child function is machine dependent and
is not yet implemented for i386.

The new thread crashes quickly, but at least it starts.
2002-12-12 00:29:23 +00:00
manu
39e39a5b0f Added vm_inherit mach trap. 2002-12-11 21:23:37 +00:00
jdolecek
0c7b52a284 linux_sys_mknod(): if creating device file (i.e. !fifo case), mask
the passed device number to only contain lower 16 bits; older glibc
appears to pass some junk in upper bits sometimes, resulting in incorrect
device entries being created

Problem initially analyzed by Thor Lancelot Simon.
2002-12-11 19:30:39 +00:00
manu
8d921b897b Added a few traps: port_type, port_set_attributes, port_insert_member,
and vm_protect.

This makes Darwin's /usr/bin/telnet working
2002-12-10 21:36:45 +00:00
thorpej
e8cc3884de Rename __LDPGSZ to AOUT_LDPGSZ, to accurately reflect what it is. 2002-12-10 17:14:02 +00:00
thorpej
78ea2dd367 Use __LDPGSZ (which must be == USRTEXT) as the text address for a.out
executables, and eliminate the USRTEXT constant, which was only used
by the a.out exec code.
2002-12-10 05:14:24 +00:00
manu
1e050715ea Stupid (but harmful) copy/paste mistake. 2002-12-09 22:28:16 +00:00
manu
9e08cf7d46 Remove debug printf (now ktrace does the job) 2002-12-09 21:53:28 +00:00
manu
6492e2171f Added support for dumping mach messages in ktrace/kdump. While we are
there, KNFify a few functions.
2002-12-09 21:29:20 +00:00
manu
4386631757 regen 2002-12-08 21:53:57 +00:00
manu
9f6565f2bd A working fork/vfork implementation. Darwin fork differs from our fork by
two ways:
- the child gets its pid as retval[0] (userland stub will turn it into a 0),
retval[1] is 1 and it is 0 in the parent.
- in the child, the fork syscall is successful, hence we must skip the next
instruction.
2002-12-08 21:53:10 +00:00
junyoung
81ed087074 - Rename struct linux_ctx to linux_fpctx.
- KNF.
2002-12-08 11:20:22 +00:00
manu
3bc2c4cf57 Now it uses BSD system calls with alternate path checks in compat/common,
Darwin does not need freebsd_file.c anymore.
2002-12-08 00:52:04 +00:00
manu
daccb0339c regen 2002-12-08 00:51:24 +00:00
manu
3b0f6d78ed Introduce BSD system calls with alternate patch checking (in /emul) in
compat/common, so that they can be shared by several emulations, and use
them for Darwin.

This removes the ugly dependance on FreeBSD freebsd_file.c for COMPAT_DARWIN
2002-12-08 00:50:23 +00:00
manu
cafe31204f Try to emulate port_type and bootstrap_look_up (I have no idea of what I am
doing with this one!)
2002-12-07 21:23:03 +00:00
manu
db18a73b3d Added vm_wire (unused yet) 2002-12-07 19:06:33 +00:00
manu
74a1ce8272 regen 2002-12-07 19:05:30 +00:00
manu
e03fbf9432 The fp_status fasttrap is called processor_facilities_used in userland, and
we discovered the flags it was to collect. Now we need to emulate them, but
it is another story.

load_msr seems only used from kernel code.
2002-12-07 19:05:11 +00:00
manu
bb8dabd15a regen 2002-12-07 15:33:36 +00:00
manu
9b84721494 Added implementation for cthread_self() and cthread_set_self(). Theses are
used to get and set the thread user value, which is an opaque pointer to
a per thread structure stored in userland. cthread_self() is used by Darwin
as an implementation for pthread_self(), which return the thread id.

We use the p_emuldata field of struct proc in order to keep track of the
thread user value. For now the value is per-process, but we will make it
per-thread when we will take care of threading.

While we are there, do some KNF
2002-12-07 15:33:01 +00:00
scw
dc63c50793 After a discussion with various folks, fix the strict-alias warning
by ditching 'void *rt' and passing retval directly to sys_mmap().
2002-12-06 12:00:57 +00:00
tron
96ece1f13e Fix namespace collision caused by recent change to "linux_machdep.h". 2002-12-06 10:51:27 +00:00
scw
f88b19a600 Avoid strict-alias warnings. 2002-12-06 09:57:58 +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
manu
f0332ec923 In load_shared_file, do zero-fill uninitialized data segments that
explicitely request to be zero filled.
2002-12-05 22:48:53 +00:00
manu
56b9df9869 Improved mach_vm_map emulation: take into account proection, alignement,
and improve debug messages.
2002-12-04 22:55:11 +00:00
agc
35a5ff86d4 Make this compile in the presence of -Werror 2002-12-01 11:02:11 +00:00
jdolecek
e1e0ff678b move ELF-specific items from irix_exec.c to irix_exec_elf32.c
merge the two emul_irix structures; the only difference was
  setregs function, which can be handled by exec-specific setregs hook
rename setregs_n32() to irix_n32_setregs(), and make it suitable
  as the exec-specific setregs hook
make irix_check_exec() a macro now that just single compare
2002-11-30 13:18:13 +00:00
jdolecek
6826135dbc make LKM friendlier by only including opt_* #ifdef _KERNEL_OPT 2002-11-30 12:28:26 +00:00
jdolecek
c9710a72e0 Get the dynamic interpreter location using emul_find_interp(), so that
it checks both the alternative/emul tree, and the non-emul tree.
This makes it possible to run chrooted emulated binaries without need
to setup shadow /emul tree within the chroot hierarchy.

XXX sligh code rearrangement was necessary, change not tested
2002-11-29 19:40:14 +00:00
jdolecek
da2945cc37 add comment why this doesn't need to use emul_find_interp() 2002-11-29 19:35:25 +00:00
jdolecek
1bf46cc0f0 use emul_find_interp(), rathern than calling emul_find() second time
with prefix set to "/"
XXX not tested
2002-11-29 19:15:15 +00:00
jdolecek
47cd9b85d6 Get the dynamic interpreter location using emul_find_interp(), so that
it checks both the alternative/emul tree, and the non-emul tree.
This makes it possible to run chrooted emulated binaries without need
to setup shadow /emul tree within the chroot hierarchy.
Only tested for COMPAT_LINUX, changes to other compat modules were
mechanical.
Fixes kern/19161 by Christian Groessler.
2002-11-29 19:13:14 +00:00
manu
ae748e840c Implement timebase_info. We don't know exactly what it should do yet... 2002-11-29 17:08:16 +00:00
jdolecek
302af6f02e add emul_find_interp() function: the function looks for interpreter
in alternative emul tree first, and updates interpreter pathname
if found there; if not found in alternative emul tree, pathname
without the emul prefix is checked, and error returned if the file
doesn't exist
2002-11-29 17:08:06 +00:00
jdolecek
b99fe89374 de-__P() 2002-11-29 16:32:50 +00:00
fvdl
6df30bca4f Patch that actually works for previous, from Jaromir Dolecek. 2002-11-29 14:32:27 +00:00
manu
f47b85037b Added a few kern sysctl which are the same on Darwin and NetBSD. 2002-11-29 13:18:09 +00:00
manu
65adabf7aa Filter the flag bits we get from Darwin's sigaction when giving them to
our native sigaction beacause unknown bits cause sigaction to fail with EINVAL.
2002-11-29 13:17:22 +00:00
itojun
02185dab0f setsockopt(IPPROTO_IPV6, IPV6_V6ONLY, 0) for AF_INET6 sockets,
to meet with the default behavior of linux.
review: fvdl/christos
XXX interactions with net.inet6.ip6.v6only?
2002-11-29 01:34:55 +00:00
itojun
e2a7bfda88 minor KNF (indent) 2002-11-28 23:46:15 +00:00
manu
de5d0b9706 Remove __P 2002-11-28 21:23:54 +00:00
manu
0f239dc026 Check for alternate receive buffer for mach_msg_overwrite_trap
Check for target buffer length, and fail if it is too short
Move mach_msg_trap and mach_msg_overwrite_trap to their own file
Remove some useless debug messages now we have ktrace
Remove __P()
2002-11-28 21:21:32 +00:00
jdolecek
b3b1ed9f7d back previous off, it makes the probe function mistaken some linux
binaries as freebsd
problem reported in thread 'installing suse_base on current
i386 sets time to 1970' on current-users
2002-11-28 15:08:36 +00:00
atatat
7caa308c63 Complete the rename: s/sa_/<compat>_sa_/g
Also tweak the darwin siginfo stuff to avoid the same type of collision.
2002-11-27 16:44:01 +00:00
tron
7ef75ab314 Fix namespace clash caused by addition of sigaction(2). 2002-11-27 14:36:12 +00:00
manu
dfa96ff4b3 Add signal delivery for the PowerPC. Everything is implemented except siginfo.
The stack layout is observed from stack dumps on Darwin, so it should be
very accurate.
2002-11-26 23:54:09 +00:00
lukem
0635de35a3 Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more. 2002-11-26 23:30:07 +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
manu
6ce9cf3a84 regen 2002-11-26 08:10:58 +00:00
manu
11aa9ca2f6 Add thread_policy and clock_get_time mach traps. Implement
mach_sys_clock_sleep_trap. This makes sleep(3) emulation working.
2002-11-26 08:10:14 +00:00
manu
bd9d3fb902 There are functions to convert between sigaction and sigaction13. Use them. 2002-11-26 00:05:41 +00:00
manu
29a7621173 regen 2002-11-25 22:26:21 +00:00
manu
53356d6169 Added an empty shell for signal delivery. Now we just have to fill the
machine dependant bits.
2002-11-25 22:25:12 +00:00
schmonz
aee43321d1 Report ourselves as Linux 2.4.18 on powerpc, too. 2002-11-25 10:34:34 +00:00
thorpej
d32a923263 Avoid strict-alias warnings. 2002-11-25 02:31:14 +00:00
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