1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 00:34:17 -07:00

Improving references to documentation and source code.

Copied from Perforce
 Change: 182983
 ServerID: perforce.ravenbrook.com
This commit is contained in:
Richard Brooksby 2013-07-10 14:12:46 +01:00
parent 6cfd6d75c9
commit 0ebb152f41
2 changed files with 21 additions and 14 deletions

View file

@ -24,16 +24,22 @@
* thread to progress.
*
*
* SOURCES
*
* .source.man: <http://felinemenace.org/~nemo/mach/manpages/>
* <http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/>
*
*
* REFERENCES
*
* [Fuller_2013] "Mach Exception Handlers"; Landon Fuller;
* <http://www.mikeash.com/pyblog/friday-qa-2013-01-11-mach-exception-handlers.html>
* <http://www.mikeash.com/pyblog/friday-qa-2013-01-11-mach-exception-handlers.html>.
*
* [XNU] "xnu-2050.22.13" source code;
* Apple Computer;
* <http://www.opensource.apple.com/source/xnu/xnu-2050.22.13/>.
*
* [Mach_man] Mach man pages within XNU;
* Apple Computer;
* <http://www.opensource.apple.com/source/xnu/xnu-2050.22.13/osfmk/man/>.
*
* [Libc] "Libc-825.26" source code;
* Apple Computer;
* <http://www.opensource.apple.com/source/Libc/Libc-825.26/>.
*
*
* TRANSGRESSIONS
@ -172,7 +178,8 @@ static void protMustSend(mach_msg_header_t *head)
*
* Mac OS X provides a function exc_server (in
* /usr/lib/system/libsystem_kernel.dylib) that's documented in the XNU
* sources and generated by the Mach Interface Generator (mig). It unpacks
* sources <http://www.opensource.apple.com/source/xnu/xnu-2050.22.13/osfmk/man/exc_server.html>
* and generated by the Mach Interface Generator (mig). It unpacks
* an exception message structure and calls one of several handler functions.
* We can't use it because:
*
@ -251,7 +258,7 @@ static void protCatchOne(void)
task-wide exception handler, but the code is pretty hairy and not
necessary as long as the MPS is registering threads individually.
If we ever need to reinstate that code, look at
//info.ravenbrook.com/project/mps/branch/2013-06-18/macosx-threads/code/protxc.c#3 */
https://info.ravenbrook.com/project/mps/prototype/2013-06-24/machtest */
protBuildReply(&reply, &request, KERN_FAILURE);
protMustSend(&reply.Head);
@ -352,8 +359,8 @@ static void protSetup(void)
/* Launch the exception handling thread. We use pthread_create because
it's much simpler than setting up a thread from scratch using Mach,
and that's basically what it does (by inspection of the XNU source
code). */
and that's basically what it does. See [Libc]
<http://www.opensource.apple.com/source/Libc/Libc-825.26/pthreads/pthread.c> */
pr = pthread_create(&excThread, NULL, protCatchThread, NULL);
AVER(pr == 0);
if (pr != 0)

View file

@ -4,10 +4,10 @@
* Copyright (c) 2013 Ravenbrook Limited. See end of file for license.
*
* REFERENCES
* "Abusing Mach on Mac OS X" <http://www.uninformed.org/?v=4&a=3&t=pdf>
* Mach man pages <http://felinemenace.org/~nemo/mach/manpages/>
*
* TODO: Consider making Register a no-op and using task_threads().
* [Mach_man] Mach man pages within XNU;
* Apple Computer;
* <http://www.opensource.apple.com/source/xnu/xnu-2050.22.13/osfmk/man/>.
*/
#include "mpm.h"