minix/kernel/arch/i386
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
..
include CPU type detection 2010-09-23 14:42:19 +00:00
acpi.c SMP - We boot APs 2010-09-15 14:09:52 +00:00
acpi.h SMP - We boot APs 2010-09-15 14:09:52 +00:00
apic.c Use int64 functions consistently 2010-11-07 23:35:29 +00:00
apic.h SMP - trully idle APs 2010-09-15 14:10:57 +00:00
apic_asm.h spurious and error interrupt apic handlers 2010-10-19 17:07:21 +00:00
apic_asm.S spurious and error interrupt apic handlers 2010-10-19 17:07:21 +00:00
arch_clock.c kernel - account for kernel cpu time (ipc, kcalls) in caller 2011-02-08 13:58:32 +00:00
arch_do_vmctl.c SMP - Cpu local variables 2010-09-15 14:09:46 +00:00
arch_smp.c Kernel keeps information about each cpu 2010-10-26 21:07:27 +00:00
arch_system.c Fixed smp compilation 2011-04-08 11:52:30 +00:00
arch_watchdog.c Use int64 functions consistently 2010-11-07 23:35:29 +00:00
breakpoints.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
debugreg.h Fix types in debug register functions 2010-04-28 08:35:05 +00:00
debugreg.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
do_int86.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
do_iopenable.c Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
do_readbios.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_sdevio.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
exception.c kernel: limit stacktrace depth to 50. 2010-11-02 21:27:04 +00:00
glo.h SMP - CPU local run queues 2010-09-15 14:10:18 +00:00
i8259.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
io_inb.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_inl.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_intr.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_inw.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_outb.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_outl.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_outw.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
kernel.lds Buildsystem changes for GCC 2010-05-19 13:24:15 +00:00
klib.S SMP - reduced TLB flushing 2010-10-25 16:21:23 +00:00
klib16.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
Makefile.inc SMP - We boot APs 2010-09-15 14:09:52 +00:00
memory.c NMI sampling 2010-09-23 10:49:45 +00:00
mpx.S SMP - We boot APs 2010-09-15 14:09:52 +00:00
multiboot.h Multiboot support (contributed by Feiran "Fam" Zheng); 2010-07-23 14:24:34 +00:00
multiboot.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
oxpcie.c kernel: oxpcie serial card support. 2010-05-19 10:00:02 +00:00
oxpcie.h kernel: oxpcie serial card support. 2010-05-19 10:00:02 +00:00
pre_init.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
protect.c VM and kernel support for ELF 2011-02-26 23:00:55 +00:00
sconst.h SMP - We boot APs 2010-09-15 14:09:52 +00:00
serial.h Add cttybaud boot monitor variable to control speed of serial console (combine with ctty 0) 2011-03-16 12:25:10 +00:00
trampoline.S SMP - Kernel is loaded above 1M by default 2010-09-15 14:10:00 +00:00