minix/kernel
David van Moolenbroek c51cd5fe91 Server/driver protocols: no longer allow third-party copies.
Before safecopies, the IO_ENDPT and DL_ENDPT message fields were needed
to know which actual process to copy data from/to, as that process may
not always be the caller. Now that we have full safecopy support, these
fields have become useless for that purpose: the owner of the grant is
*always* the caller. Allowing the caller to supply another endpoint is
in fact dangerous, because the callee may then end up using a grant
from a third party. One could call this a variant of the confused
deputy problem.

From now on, safecopy calls should always use the caller's endpoint as
grant owner. This fully obsoletes the DL_ENDPT field in the
inet/ethernet protocol. IO_ENDPT has other uses besides identifying the
grant owner though. This patch renames IO_ENDPT to USER_ENDPT, not only
because that is a more fitting name (it should never be used for I/O
after all), but also in order to intentionally break any old system
source code outside the base system. If this patch breaks your code,
fixing it is fairly simple:

- DL_ENDPT should be replaced with m_source;
- IO_ENDPT should be replaced with m_source when used for safecopies;
- IO_ENDPT should be replaced with USER_ENDPT for any other use, e.g.
  when setting REP_ENDPT, matching requests in CANCEL calls, getting
  DEV_SELECT flags, and retrieving of the real user process's endpoint
  in DEV_OPEN.

The changes in this patch are binary backward compatible.
2011-04-11 17:35:05 +00:00
..
arch/i386 Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
system VM and kernel support for ELF 2011-02-26 23:00:55 +00:00
clock.c SMP - Single shot local timer 2010-09-15 14:11:06 +00:00
clock.h Userspace scheduling - exporting stats 2010-09-19 15:52:12 +00:00
config.h SMP - We boot APs 2010-09-15 14:09:52 +00:00
const.h Kernel/RS: fix permission computation with 32+ system processes 2010-12-07 10:32:42 +00:00
cpulocals.c SMP - Cpu local variables 2010-09-15 14:09:46 +00:00
cpulocals.h Busy idle loop when profiling 2010-09-23 10:49:52 +00:00
debug.c kernel - change print*() functions for ipc to generic ipc hook functions. 2011-02-08 13:54:33 +00:00
debug.h kernel - change print*() functions for ipc to generic ipc hook functions. 2011-02-08 13:54:33 +00:00
extract-errno.sh Optional IPC logging 2010-06-24 13:31:40 +00:00
extract-mfield.sh Optional IPC logging 2010-06-24 13:31:40 +00:00
extract-mtype.sh Move shared headers in common/include 2011-02-06 22:59:02 +00:00
glo.h Add cttybaud boot monitor variable to control speed of serial console (combine with ctty 0) 2011-03-16 12:25:10 +00:00
interrupt.c APIC mode uses IO APICs 2010-09-07 07:18:11 +00:00
interrupt.h SMP - trully idle APs 2010-09-15 14:10:57 +00:00
ipc.h Set IPC status code only for RECEIVE 2010-04-26 14:43:59 +00:00
kernel.h <ansi.h> -> <minix/ansi.h> 2011-01-28 11:35:02 +00:00
main.c Remove code for kernel task stack initialization 2011-01-27 12:18:33 +00:00
Makefile Move shared headers in common/include 2011-02-06 22:59:02 +00:00
perf.h SMP - all process have pagetables 2010-09-15 14:11:30 +00:00
priv.h Use a bitmap for pending asynchronous messages instead of a global flag. 2011-04-08 15:03:33 +00:00
proc.c Enable sending a notification when sending of an asynchronous message was 2011-04-08 15:14:48 +00:00
proc.h VM and kernel support for ELF 2011-02-26 23:00:55 +00:00
profile.c Fix multiboot for ACK-built images 2010-12-17 13:47:11 +00:00
profile.h Fix multiboot for ACK-built images 2010-12-17 13:47:11 +00:00
proto.h Enable sending a notification when sending of an asynchronous message was 2011-04-08 15:14:48 +00:00
smp.c SMP - lazy FPU 2010-09-15 14:11:25 +00:00
smp.h SMP - lazy FPU 2010-09-15 14:11:25 +00:00
spinlock.h SMP - Big kernel lock (BKL) 2010-09-15 14:10:03 +00:00
start.c Add cttybaud boot monitor variable to control speed of serial console (combine with ctty 0) 2011-03-16 12:25:10 +00:00
system.c Enable sending a notification when sending of an asynchronous message was 2011-04-08 15:14:48 +00:00
system.h KCall methods do not depend on m_source and m_type fields 2010-06-01 08:54:31 +00:00
table.c Enable sending a notification when sending of an asynchronous message was 2011-04-08 15:14:48 +00:00
type.h Remove code for kernel task stack initialization 2011-01-27 12:18:33 +00:00
utility.c SMP - lazy FPU 2010-09-15 14:11:25 +00:00
vm.h No linear addresses in message delivery 2010-06-11 08:16:10 +00:00
watchdog.c NMI sampling 2010-09-23 10:49:45 +00:00
watchdog.h Watchdog and kernel profiling for AMD 2010-09-23 14:42:30 +00:00