minix/lib/libsys
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
..
alloc_util.c libdriver: make partition code use a contiguous buffer 2010-06-13 10:40:22 +00:00
assert.c panic() cleanup. 2010-03-05 15:05:11 +00:00
asynsend.c Enable a process to find out what the error code was when delivery of an 2011-04-08 15:23:12 +00:00
ds.c Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
env_get_prm.c Clean up code in preparation for using gcc warnings. 2010-03-10 13:19:27 +00:00
env_panic.c panic() cleanup. 2010-03-05 15:05:11 +00:00
env_parse.c Clean up code in preparation for using gcc warnings. 2010-03-10 13:19:27 +00:00
env_prefix.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
fkey_ctl.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
gcov.c lib/libsys/gcov.c - fix gcc warning 2010-09-20 11:36:41 +00:00
get_randomness.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
getidle.c make getsysinfo() a system-land call 2010-09-14 21:50:05 +00:00
getsysinfo.c make getsysinfo() a system-land call 2010-09-14 21:50:05 +00:00
getuptime.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
getuptime2.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
input.c Added possibility to inject input events to tty 2010-11-17 14:53:07 +00:00
kernel_call.c Clean up code in preparation for using gcc warnings. 2010-03-10 13:19:27 +00:00
kprintf.c panic() cleanup. 2010-03-05 15:05:11 +00:00
kputc.c Oops, last commit included more than was intended 2010-05-20 08:07:47 +00:00
kputs.c intercept puts() in libsys, for gcc 2010-04-23 20:23:33 +00:00
Makefile Added possibility to inject input events to tty 2010-11-17 14:53:07 +00:00
panic.c RS crash recovery support. 2010-07-06 22:05:21 +00:00
pci.h Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
pci_attr_r8.c panic() cleanup. 2010-03-05 15:05:11 +00:00
pci_attr_r16.c panic() cleanup. 2010-03-05 15:05:11 +00:00
pci_attr_r32.c panic() cleanup. 2010-03-05 15:05:11 +00:00
pci_attr_w8.c Rename all uses of U8_t to u8_t and remove U8_t, remove unused I8_t, 2010-04-07 13:35:56 +00:00
pci_attr_w16.c Rename all uses of U8_t to u8_t and remove U8_t, remove unused I8_t, 2010-04-07 13:35:56 +00:00
pci_attr_w32.c Rename all uses of U8_t to u8_t and remove U8_t, remove unused I8_t, 2010-04-07 13:35:56 +00:00
pci_del_acl.c Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
pci_dev_name.c make getsysinfo() a system-land call 2010-09-14 21:50:05 +00:00
pci_find_dev.c Rename all uses of U8_t to u8_t and remove U8_t, remove unused I8_t, 2010-04-07 13:35:56 +00:00
pci_first_dev.c panic() cleanup. 2010-03-05 15:05:11 +00:00
pci_get_bar.c PCI: expose BAR sizes 2010-07-01 09:10:16 +00:00
pci_ids.c panic() cleanup. 2010-03-05 15:05:11 +00:00
pci_init.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
pci_init1.c Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
pci_next_dev.c panic() cleanup. 2010-03-05 15:05:11 +00:00
pci_rescan_bus.c Rename all uses of U8_t to u8_t and remove U8_t, remove unused I8_t, 2010-04-07 13:35:56 +00:00
pci_reserve.c Clean up code in preparation for using gcc warnings. 2010-03-10 13:19:27 +00:00
pci_set_acl.c Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
pci_slot_name.c panic() cleanup. 2010-03-05 15:05:11 +00:00
profile.c Use int64 functions consistently 2010-11-07 23:35:29 +00:00
profile_extern.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
safecopies.c Clean up MFS a bit: 2010-06-01 12:35:33 +00:00
sched_start.c SMP - Changed prototype of sys_schedule() 2010-09-15 14:10:42 +00:00
sched_stop.c Opps, forgot to svn add these files 2010-07-01 08:38:15 +00:00
sef.c gcov support, based on work contributed by Anton Kuijsten. 2010-08-25 13:06:43 +00:00
sef_gcov.c added missing sef_gcov.c 2010-08-25 13:23:32 +00:00
sef_init.c RS live update support. 2010-07-09 18:29:04 +00:00
sef_liveupdate.c RS live update support. 2010-07-09 18:29:04 +00:00
sef_ping.c New RS and new signal handling for system processes. 2010-03-17 01:15:29 +00:00
sef_signal.c Fixed some incorrect uses of printf-like functions. 2010-04-01 14:30:36 +00:00
ser_putc.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
spin.c libsys: add standard condition spinning primitives 2010-07-12 23:14:40 +00:00
stacktrace.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_abort.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_clear.c New RS and new signal handling for system processes. 2010-03-17 01:15:29 +00:00
sys_cprof.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_endsig.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_eniop.c Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
sys_exec.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_exit.c New RS and new signal handling for system processes. 2010-03-17 01:15:29 +00:00
sys_fork.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_getinfo.c Move MIN() and MAX() macros to sys/params.h 2010-08-21 13:10:41 +00:00
sys_getsig.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_hz.c Add an UNUSED annotation, and use it in libsys. 2010-03-11 14:23:33 +00:00
sys_in.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_int86.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_irqctl.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_kill.c More cleanup to remove MM and FS references 2010-06-10 14:04:46 +00:00
sys_mcontext.c - Add support for the ucontext system calls (getcontext, setcontext, 2010-03-12 15:58:41 +00:00
sys_memset.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_newmap.c VM and kernel support for ELF 2011-02-26 23:00:55 +00:00
sys_out.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_physcopy.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_privctl.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_profbuf.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_readbios.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_runctl.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_safecopy.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_safemap.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_schedctl.c SMP - Changed prototype of sys_schedule() 2010-09-15 14:10:42 +00:00
sys_schedule.c SMP - Changed prototype of sys_schedule() 2010-09-15 14:10:42 +00:00
sys_sdevio.c Clean up code in preparation for using gcc warnings. 2010-03-10 13:19:27 +00:00
sys_segctl.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_setalarm.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_setgrant.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_sigreturn.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_sigsend.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_sprof.c The profile utility can set the sprofiling mode 2010-09-23 10:49:42 +00:00
sys_statectl.c Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
sys_stime.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_sysctl.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_times.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_trace.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_umap.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_update.c New RS and new signal handling for system processes. 2010-03-17 01:15:29 +00:00
sys_vinb.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_vinl.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_vinw.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_vircopy.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_vmctl.c kernel/vm: change pde table info from single buffer to explicit per-process. 2010-05-12 08:31:05 +00:00
sys_voutb.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_voutl.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_voutw.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_vsafecopy.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sys_vtimer.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
syslib.h Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
sysutil.h Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
taskcall.c More cleanup to remove MM and FS references 2010-06-10 14:04:46 +00:00
tickdelay.c IPC status code for receive(). 2010-03-23 00:09:11 +00:00
timers.c move timers code to libsys 2010-07-09 12:58:18 +00:00
timing.c Clean up code in preparation for using gcc warnings. 2010-03-10 13:19:27 +00:00
tsc_util.c libsys: fix micro_delay() 2011-04-08 16:57:44 +00:00
vm_brk.c Clean up code in preparation for using gcc warnings. 2010-03-10 13:19:27 +00:00
vm_exec_newmem.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
vm_exit.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
vm_fork.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
vm_info.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
vm_map_phys.c Clean up code in preparation for using gcc warnings. 2010-03-10 13:19:27 +00:00
vm_notify_sig.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
vm_push_sig.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
vm_umap.c Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
vm_yield_get_block.c secondary cache feature in vm. 2010-05-05 11:35:04 +00:00
vprintf.c make system server vprintf check for NULL 2010-10-04 17:53:18 +00:00