Hi, I've been adding mapping trees to my implementation of L4 and I have a question... The L4 reference manual states that address spaces are constructed recursively. Up 'till now I'd assumed that this was merely notional and that in real systems address spaces would be strictly n-ary trees, not graphs with cycles. Thinking it through however it's obvious that a task A can map a page P to task B which can then map it back to task A at a different virtual address. Is this allowed in L4? (I assume it is) Is it useful? Could I get away with not allowing it? I ask because my initial implementation includes a quick index from a taskid to a node in the mapping tree (to avoid recursion rather than for speed) but this requires that each task has only a single entry. Additionally, what effect should an unmap have: if task A unmaped P from task B, would the second mapping in task A disappear? I'd imagine that it would indeed remove the second mapping. I've had a look at the Fiasco souce and it wasn't clear to me where these situations are handled. Thanks. -- Martin Young, working for: | Phone: +44(0) 1454 615151 Siroyan Limited, Bristol Design Centre, | Mobile: +44(0) 7855 758771 West Point Court, Great Park Road, | web: www.siroyan.com Bradley Stoke, Bristol BS32 4QG. UK | email: my@siroyan.com ********************************************************************** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This footnote also confirms that this email message has been swept by MIMEsweeper for the presence of computer viruses. www.mimesweeper.com **********************************************************************