diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2012-12-20 22:27:59 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2012-12-20 22:27:59 +0100 |
commit | 175f68707cf8a4951a9b024a3b43d92860151eaf (patch) | |
tree | c3dd4fa93fac03312982f7b89739422b072e9c84 /microkernel | |
parent | 0a607c5c7bab130bfff70efd344bff78ce2bf88a (diff) | |
parent | fc4d1650f3e35a1cff0111ae3808c61d44346f1f (diff) |
Merge remote-tracking branch 'feldtkeller.SCHWINGE/master'
Conflicts:
open_issues/fork_deadlock.mdwn
open_issues/glibc.mdwn
Diffstat (limited to 'microkernel')
-rw-r--r-- | microkernel/mach/external_pager_mechanism.mdwn | 14 | ||||
-rw-r--r-- | microkernel/mach/interface/vm_map.mdwn | 16 |
2 files changed, 23 insertions, 7 deletions
diff --git a/microkernel/mach/external_pager_mechanism.mdwn b/microkernel/mach/external_pager_mechanism.mdwn index 05a6cc56..54492b71 100644 --- a/microkernel/mach/external_pager_mechanism.mdwn +++ b/microkernel/mach/external_pager_mechanism.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2002, 2007, 2008, 2010, 2011 Free Software +[[!meta copyright="Copyright © 2002, 2007, 2008, 2010, 2011, 2012 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -23,8 +23,8 @@ latter. In Mach, a [[task]]'s [[virtual_address_space]] consists of references to [[memory_object]]s. -To associate a memory object with a portion of a task's -address space, `vm_map` is invoked on a capability designating +To associate a memory object with a portion of a task's address space, +[[`vm_map`|interface/vm_map]] is invoked on a capability designating the task and passing a reference to the memory object and the offset at which to install it. (The first time a task maps an object, Mach sends an initialization message @@ -69,8 +69,8 @@ it to the port set that it is listening on and returns a capability (a port send right) to the client. (C) The client attempts to map the object into its address space using -the `vm_map` RPC. It passes a reference to the port that the server gave -it to the vm server (typically Mach). +the [[`vm_map`|interface/vm_map]] RPC. It passes a reference to the port that +the server gave it to the vm server (typically Mach). (D) Since Mach has never seen the object before, it queues a `memory_object_init` on the given port along with a send right (the @@ -84,8 +84,8 @@ structures to manage the mapping and then invokes the `memory_object_ready` method on the control object. (F) The kernel sees that the manager is ready, sets up the appropriate -mappings in the client's address space and then replies to the `vm_map` RPC indicating -success. +mappings in the client's address space and then replies to the +[[`vm_map`|interface/vm_map]] RPC indicating success. There is nothing stopping others from playing *the kernel*. This is not a security problem: clients must [[trust]] the server from whom they diff --git a/microkernel/mach/interface/vm_map.mdwn b/microkernel/mach/interface/vm_map.mdwn new file mode 100644 index 00000000..7232209b --- /dev/null +++ b/microkernel/mach/interface/vm_map.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 2012 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +Used in [[glibc]] for implementing [[glibc/mmap]], brk and sbrk, and *attempt +to map page zero redzoned* (`[glibc]/hurd/hurdstartup.c:_hurd_startup`). + +[[!tag open_issue_glibc open_issue_gnumach]]It has an awkward mention in +`[glibc]/sysdeps/mach/hurd/dl-sysdep.c:fmh`: *XXX loser kludge for vm\_map +kernel bug*. |