summaryrefslogtreecommitdiff
path: root/doc/mach.info-2
diff options
context:
space:
mode:
Diffstat (limited to 'doc/mach.info-2')
-rw-r--r--doc/mach.info-21663
1 files changed, 1663 insertions, 0 deletions
diff --git a/doc/mach.info-2 b/doc/mach.info-2
new file mode 100644
index 0000000..806539f
--- /dev/null
+++ b/doc/mach.info-2
@@ -0,0 +1,1663 @@
+This is ../doc/mach.info, produced by makeinfo version 4.8 from
+../doc/mach.texi.
+
+INFO-DIR-SECTION Kernel
+START-INFO-DIR-ENTRY
+* GNUMach: (mach). Using and programming the GNU Mach microkernel.
+END-INFO-DIR-ENTRY
+
+ This file documents the GNU Mach microkernel.
+
+ This is Edition 0.4, last updated 2001-09-01, of `The GNU Mach
+Reference Manual', for Version 1.3.99.
+
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+ Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being "Free Software Needs Free Documentation" and
+"GNU Lesser General Public License", the Front-Cover texts being (a)
+(see below), and with the Back-Cover Texts being (b) (see below). A
+copy of the license is included in the section entitled "GNU Free
+Documentation License".
+
+ (a) The FSF's Front-Cover Text is:
+
+ A GNU Manual
+
+ (b) The FSF's Back-Cover Text is:
+
+ You have freedom to copy and modify this GNU Manual, like GNU
+software. Copies published by the Free Software Foundation raise
+funds for GNU development.
+
+ This work is based on manual pages under the following copyright and
+license:
+
+Mach Operating System
+Copyright (C) 1991,1990 Carnegie Mellon University
+All Rights Reserved.
+
+ Permission to use, copy, modify and distribute this software and its
+documentation is hereby granted, provided that both the copyright
+notice and this permission notice appear in all copies of the software,
+derivative works or modified versions, and any portions thereof, and
+that both notices appear in supporting documentation.
+
+ CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
+DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+
+
+File: mach.info, Node: Commands, Next: Variables, Prev: Operation, Up: Kernel Debugger
+
+11.2 Commands
+=============
+
+`examine(x) [/MODIFIER] ADDR[,COUNT] [ THREAD ]'
+ Display the addressed locations according to the formats in the
+ modifier. Multiple modifier formats display multiple locations.
+ If no format is specified, the last formats specified for this
+ command is used. Address space other than that of the current
+ thread can be specified with `t' option in the modifier and THREAD
+ parameter. The format characters are
+
+ `b'
+ look at by bytes(8 bits)
+
+ `h'
+ look at by half words(16 bits)
+
+ `l'
+ look at by long words(32 bits)
+
+ `a'
+ print the location being displayed
+
+ `,'
+ skip one unit producing no output
+
+ `A'
+ print the location with a line number if possible
+
+ `x'
+ display in unsigned hex
+
+ `z'
+ display in signed hex
+
+ `o'
+ display in unsigned octal
+
+ `d'
+ display in signed decimal
+
+ `u'
+ display in unsigned decimal
+
+ `r'
+ display in current radix, signed
+
+ `c'
+ display low 8 bits as a character. Non-printing characters
+ are displayed as an octal escape code (e.g. '\000').
+
+ `s'
+ display the null-terminated string at the location.
+ Non-printing characters are displayed as octal escapes.
+
+ `m'
+ display in unsigned hex with character dump at the end of
+ each line. The location is also displayed in hex at the
+ beginning of each line.
+
+ `i'
+ display as an instruction
+
+ `I'
+ display as an instruction with possible alternate formats
+ depending on the machine:
+
+ `vax'
+ don't assume that each external label is a procedure
+ entry mask
+
+ `i386'
+ don't round to the next long word boundary
+
+ `mips'
+ print register contents
+
+`xf'
+ Examine forward. It executes an examine command with the last
+ specified parameters to it except that the next address displayed
+ by it is used as the start address.
+
+`xb'
+ Examine backward. It executes an examine command with the last
+ specified parameters to it except that the last start address
+ subtracted by the size displayed by it is used as the start
+ address.
+
+`print[/axzodurc] ADDR1 [ ADDR2 ... ]'
+ Print ADDR's according to the modifier character. Valid formats
+ are: `a' `x' `z' `o' `d' `u' `r' `c'. If no modifier is
+ specified, the last one specified to it is used. ADDR can be a
+ string, and it is printed as it is. For example,
+
+ print/x "eax = " $eax "\necx = " $ecx "\n"
+
+ will print like
+
+ eax = xxxxxx
+ ecx = yyyyyy
+
+`write[/bhlt] ADDR [ THREAD ] EXPR1 [ EXPR2 ... ]'
+ Write the expressions at succeeding locations. The write unit
+ size can be specified in the modifier with a letter b (byte), h
+ (half word) or l(long word) respectively. If omitted, long word
+ is assumed. Target address space can also be specified with `t'
+ option in the modifier and THREAD parameter. Warning: since there
+ is no delimiter between expressions, strange things may happen.
+ It's best to enclose each expression in parentheses.
+
+`set $VARIABLE [=] EXPR'
+ Set the named variable or register with the value of EXPR. Valid
+ variable names are described below.
+
+`break[/tuTU] ADDR[,COUNT] [ THREAD1 ... ]'
+ Set a break point at ADDR. If count is supplied, continues
+ (COUNT-1) times before stopping at the break point. If the break
+ point is set, a break point number is printed with `#'. This
+ number can be used in deleting the break point or adding
+ conditions to it.
+
+ `t'
+ Set a break point only for a specific thread. The thread is
+ specified by THREAD parameter, or default one is used if the
+ parameter is omitted.
+
+ `u'
+ Set a break point in user space address. It may be combined
+ with `t' or `T' option to specify the non-current target user
+ space. Without `u' option, the address is considered in the
+ kernel space, and wrong space address is rejected with an
+ error message. This option can be used only if it is
+ supported by machine dependent routines.
+
+ `T'
+ Set a break point only for threads in a specific task. It is
+ like `t' option except that the break point is valid for all
+ threads which belong to the same task as the specified target
+ thread.
+
+ `U'
+ Set a break point in shared user space address. It is like
+ `u' option, except that the break point is valid for all
+ threads which share the same address space even if `t' option
+ is specified. `t' option is used only to specify the target
+ shared space. Without `t' option, `u' and `U' have the same
+ meanings. `U' is useful for setting a user space break point
+ in non-current address space with `t' option such as in an
+ emulation library space. This option can be used only if it
+ is supported by machine dependent routines.
+
+ Warning: if a user text is shadowed by a normal user space
+ debugger, user space break points may not work correctly. Setting
+ a break point at the low-level code paths may also cause strange
+ behavior.
+
+`delete[/tuTU] ADDR|#NUMBER [ THREAD1 ... ]'
+ Delete the break point. The target break point can be specified
+ by a break point number with `#', or by ADDR like specified in
+ `break' command.
+
+`cond #NUMBER [ CONDITION COMMANDS ]'
+ Set or delete a condition for the break point specified by the
+ NUMBER. If the CONDITION and COMMANDS are null, the condition is
+ deleted. Otherwise the condition is set for it. When the break
+ point is hit, the CONDITION is evaluated. The COMMANDS will be
+ executed if the condition is true and the break point count set by
+ a break point command becomes zero. COMMANDS is a list of
+ commands separated by semicolons. Each command in the list is
+ executed in that order, but if a `continue' command is executed,
+ the command execution stops there, and the stopped thread resumes
+ execution. If the command execution reaches the end of the list,
+ and it enters into a command input mode. For example,
+
+ set $work0 0
+ break/Tu xxx_start $task7.0
+ cond #1 (1) set $work0 1; set $work1 0; cont
+ break/T vm_fault $task7.0
+ cond #2 ($work0) set $work1 ($work1+1); cont
+ break/Tu xxx_end $task7.0
+ cond #3 ($work0) print $work1 " faults\n"; set $work0 0
+ cont
+
+ will print page fault counts from `xxx_start' to `xxx_end' in
+ `task7'.
+
+`step[/p] [,COUNT]'
+ Single step COUNT times. If `p' option is specified, print each
+ instruction at each step. Otherwise, only print the last
+ instruction.
+
+ Warning: depending on machine type, it may not be possible to
+ single-step through some low-level code paths or user space code.
+ On machines with software-emulated single-stepping (e.g., pmax),
+ stepping through code executed by interrupt handlers will probably
+ do the wrong thing.
+
+`continue[/c]'
+ Continue execution until a breakpoint or watchpoint. If `/c',
+ count instructions while executing. Some machines (e.g., pmax)
+ also count loads and stores.
+
+ Warning: when counting, the debugger is really silently
+ single-stepping. This means that single-stepping on low-level
+ code may cause strange behavior.
+
+`until'
+ Stop at the next call or return instruction.
+
+`next[/p]'
+ Stop at the matching return instruction. If `p' option is
+ specified, print the call nesting depth and the cumulative
+ instruction count at each call or return. Otherwise, only print
+ when the matching return is hit.
+
+`match[/p]'
+ A synonym for `next'.
+
+`trace[/tu] [ FRAME_ADDR|THREAD ][,COUNT]'
+ Stack trace. `u' option traces user space; if omitted, only traces
+ kernel space. If `t' option is specified, it shows the stack trace
+ of the specified thread or a default target thread. Otherwise, it
+ shows the stack trace of the current thread from the frame address
+ specified by a parameter or from the current frame. COUNT is the
+ number of frames to be traced. If the COUNT is omitted, all
+ frames are printed.
+
+ Warning: If the target thread's stack is not in the main memory at
+ that time, the stack trace will fail. User space stack trace is
+ valid only if the machine dependent code supports it.
+
+`search[/bhl] ADDR VALUE [MASK] [,COUNT]'
+ Search memory for a value. This command might fail in interesting
+ ways if it doesn't find the searched-for value. This is because
+ `ddb' doesn't always recover from touching bad memory. The
+ optional count argument limits the search.
+
+`macro NAME COMMANDS'
+ Define a debugger macro as NAME. COMMANDS is a list of commands
+ to be associated with the macro. In the expressions of the
+ command list, a variable `$argxx' can be used to get a parameter
+ passed to the macro. When a macro is called, each argument is
+ evaluated as an expression, and the value is assigned to each
+ parameter, `$arg1', `$arg2', ... respectively. 10 `$arg'
+ variables are reserved to each level of macros, and they can be
+ used as local variables. The nesting of macro can be allowed up
+ to 5 levels. For example,
+
+ macro xinit set $work0 $arg1
+ macro xlist examine/m $work0,4; set $work0 *($work0)
+ xinit *(xxx_list)
+ xlist
+ ....
+
+ will print the contents of a list starting from `xxx_list' by each
+ `xlist' command.
+
+`dmacro NAME'
+ Delete the macro named NAME.
+
+`show all threads[/ul]'
+ Display all tasks and threads information. This version of `ddb'
+ prints more information than previous one. It shows UNIX process
+ information like `ps' for each task. The UNIX process information
+ may not be shown if it is not supported in the machine, or the
+ bottom of the stack of the target task is not in the main memory at
+ that time. It also shows task and thread identification numbers.
+ These numbers can be used to specify a task or a thread
+ symbolically in various commands. The numbers are valid only in
+ the same debugger session. If the execution is resumed again, the
+ numbers may change. The current thread can be distinguished from
+ others by a `#' after the thread id instead of `:'. Without `l'
+ option, it only shows thread id, thread structure address and the
+ status for each thread. The status consists of 5 letters, R(run),
+ W(wait), S(sus­ pended), O(swapped out) and N(interruptible), and
+ if corresponding status bit is off, `.' is printed instead. If
+ `l' option is specified, more detail information is printed for
+ each thread.
+
+`show task [ ADDR ]'
+ Display the information of a task specified by ADDR. If ADDR is
+ omitted, current task information is displayed.
+
+`show thread [ ADDR ]'
+ Display the information of a thread specified by ADDR. If ADDR is
+ omitted, current thread information is displayed.
+
+`show registers[/tu [ THREAD ]]'
+ Display the register set. Target thread can be specified with `t'
+ option and THREAD parameter. If `u' option is specified, it
+ displays user registers instead of kernel or currently saved one.
+
+ Warning: The support of `t' and `u' option depends on the machine.
+ If not supported, incorrect information will be displayed.
+
+`show map ADDR'
+ Prints the `vm_map' at ADDR.
+
+`show object ADDR'
+ Prints the `vm_object' at ADDR.
+
+`show page ADDR'
+ Prints the `vm_page' structure at ADDR.
+
+`show port ADDR'
+ Prints the `ipc_port' structure at ADDR.
+
+`show ipc_port[/t [ THREAD ]]'
+ Prints all `ipc_port' structure's addresses the target thread has.
+ The target thread is a current thread or that specified by a
+ parameter.
+
+`show macro [ NAME ]'
+ Show the definitions of macros. If NAME is specified, only the
+ definition of it is displayed. Otherwise, definitions of all
+ macros are displayed.
+
+`show watches'
+ Displays all watchpoints.
+
+`watch[/T] ADDR,SIZE [ TASK ]'
+ Set a watchpoint for a region. Execution stops when an attempt to
+ modify the region occurs. The SIZE argument defaults to 4.
+ Without `T' option, ADDR is assumed to be a kernel address. If
+ you want to set a watch point in user space, specify `T' and TASK
+ parameter where the address belongs to. If the TASK parameter is
+ omitted, a task of the default target thread or a current task is
+ assumed. If you specify a wrong space address, the request is
+ rejected with an error message.
+
+ Warning: Attempts to watch wired kernel memory may cause
+ unrecoverable error in some systems such as i386. Watchpoints on
+ user addresses work best.
+
+
+File: mach.info, Node: Variables, Next: Expressions, Prev: Commands, Up: Kernel Debugger
+
+11.3 Variables
+==============
+
+The debugger accesses registers and variables as $NAME. Register names
+are as in the `show registers' command. Some variables are suffixed
+with numbers, and may have some modifier following a colon immediately
+after the variable name. For example, register variables can have `u'
+and `t' modifier to indicate user register and that of a default target
+thread instead of that of the current thread (e.g. `$eax:tu').
+
+ Built-in variables currently supported are:
+
+`taskXX[.YY]'
+ Task or thread structure address. XX and YY are task and thread
+ identification numbers printed by a `show all threads' command
+ respectively. This variable is read only.
+
+`thread'
+ The default target thread. The value is used when `t' option is
+ specified without explicit thread structure address parameter in
+ command lines or expression evaluation.
+
+`radix'
+ Input and output radix
+
+`maxoff'
+ Addresses are printed as SYMBOL+OFFSET unless offset is greater
+ than maxoff.
+
+`maxwidth'
+ The width of the displayed line.
+
+`lines'
+ The number of lines. It is used by `more' feature.
+
+`tabstops'
+ Tab stop width.
+
+`argXX'
+ Parameters passed to a macro. XX can be 1 to 10.
+
+`workXX'
+ Work variable. XX can be 0 to 31.
+
+
+File: mach.info, Node: Expressions, Prev: Variables, Up: Kernel Debugger
+
+11.4 Expressions
+================
+
+Almost all expression operators in C are supported except `~', `^', and
+unary `&'. Special rules in `ddb' are:
+
+`IDENTIFIER'
+ name of a symbol. It is translated to the address(or value) of it.
+ `.' and `:' can be used in the identifier. If supported by an
+ object format dependent routine, [FILE_NAME:]FUNC[:LINE_NUMBER]
+ [FILE_NAME:]VARIABLE, and FILE_NAME[:LINE_NUMBER] can be accepted
+ as a symbol. The symbol may be prefixed with
+ `SYMBOL_TABLE_NAME::' like `emulator::mach_msg_trap' to specify
+ other than kernel symbols.
+
+`NUMBER'
+ radix is determined by the first two letters:
+ `0x'
+ hex
+
+ `0o'
+ octal
+
+ `0t'
+ decimal
+
+ otherwise, follow current radix.
+
+`.'
+ dot
+
+`+'
+ next
+
+`..'
+ address of the start of the last line examined. Unlike dot or
+ next, this is only changed by `examine' or `write' command.
+
+`´'
+ last address explicitly specified.
+
+`$VARIABLE'
+ register name or variable. It is translated to the value of it.
+ It may be followed by a `:' and modifiers as described above.
+
+`a'
+ multiple of right hand side.
+
+`*EXPR'
+ indirection. It may be followed by a `:' and modifiers as
+ described above.
+
+
+File: mach.info, Node: Copying, Next: Documentation License, Prev: Kernel Debugger, Up: Top
+
+Appendix A GNU GENERAL PUBLIC LICENSE
+*************************************
+
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+A.0.1 Preamble
+--------------
+
+The licenses for most software are designed to take away your freedom
+to share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it in
+new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software,
+and (2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+ 1. This License applies to any program or other work which contains a
+ notice placed by the copyright holder saying it may be distributed
+ under the terms of this General Public License. The "Program",
+ below, refers to any such program or work, and a "work based on
+ the Program" means either the Program or any derivative work under
+ copyright law: that is to say, a work containing the Program or a
+ portion of it, either verbatim or with modifications and/or
+ translated into another language. (Hereinafter, translation is
+ included without limitation in the term "modification".) Each
+ licensee is addressed as "you".
+
+ Activities other than copying, distribution and modification are
+ not covered by this License; they are outside its scope. The act
+ of running the Program is not restricted, and the output from the
+ Program is covered only if its contents constitute a work based on
+ the Program (independent of having been made by running the
+ Program). Whether that is true depends on what the Program does.
+
+ 2. You may copy and distribute verbatim copies of the Program's
+ source code as you receive it, in any medium, provided that you
+ conspicuously and appropriately publish on each copy an appropriate
+ copyright notice and disclaimer of warranty; keep intact all the
+ notices that refer to this License and to the absence of any
+ warranty; and give any other recipients of the Program a copy of
+ this License along with the Program.
+
+ You may charge a fee for the physical act of transferring a copy,
+ and you may at your option offer warranty protection in exchange
+ for a fee.
+
+ 3. You may modify your copy or copies of the Program or any portion
+ of it, thus forming a work based on the Program, and copy and
+ distribute such modifications or work under the terms of Section 1
+ above, provided that you also meet all of these conditions:
+
+ a. You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b. You must cause any work that you distribute or publish, that
+ in whole or in part contains or is derived from the Program
+ or any part thereof, to be licensed as a whole at no charge
+ to all third parties under the terms of this License.
+
+ c. If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display
+ an announcement including an appropriate copyright notice and
+ a notice that there is no warranty (or else, saying that you
+ provide a warranty) and that users may redistribute the
+ program under these conditions, and telling the user how to
+ view a copy of this License. (Exception: if the Program
+ itself is interactive but does not normally print such an
+ announcement, your work based on the Program is not required
+ to print an announcement.)
+
+ These requirements apply to the modified work as a whole. If
+ identifiable sections of that work are not derived from the
+ Program, and can be reasonably considered independent and separate
+ works in themselves, then this License, and its terms, do not
+ apply to those sections when you distribute them as separate
+ works. But when you distribute the same sections as part of a
+ whole which is a work based on the Program, the distribution of
+ the whole must be on the terms of this License, whose permissions
+ for other licensees extend to the entire whole, and thus to each
+ and every part regardless of who wrote it.
+
+ Thus, it is not the intent of this section to claim rights or
+ contest your rights to work written entirely by you; rather, the
+ intent is to exercise the right to control the distribution of
+ derivative or collective works based on the Program.
+
+ In addition, mere aggregation of another work not based on the
+ Program with the Program (or with a work based on the Program) on
+ a volume of a storage or distribution medium does not bring the
+ other work under the scope of this License.
+
+ 4. You may copy and distribute the Program (or a work based on it,
+ under Section 2) in object code or executable form under the terms
+ of Sections 1 and 2 above provided that you also do one of the
+ following:
+
+ a. Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of
+ Sections 1 and 2 above on a medium customarily used for
+ software interchange; or,
+
+ b. Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a
+ medium customarily used for software interchange; or,
+
+ c. Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with
+ such an offer, in accord with Subsection b above.)
+
+ The source code for a work means the preferred form of the work for
+ making modifications to it. For an executable work, complete
+ source code means all the source code for all modules it contains,
+ plus any associated interface definition files, plus the scripts
+ used to control compilation and installation of the executable.
+ However, as a special exception, the source code distributed need
+ not include anything that is normally distributed (in either
+ source or binary form) with the major components (compiler,
+ kernel, and so on) of the operating system on which the executable
+ runs, unless that component itself accompanies the executable.
+
+ If distribution of executable or object code is made by offering
+ access to copy from a designated place, then offering equivalent
+ access to copy the source code from the same place counts as
+ distribution of the source code, even though third parties are not
+ compelled to copy the source along with the object code.
+
+ 5. You may not copy, modify, sublicense, or distribute the Program
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense or distribute the Program is
+ void, and will automatically terminate your rights under this
+ License. However, parties who have received copies, or rights,
+ from you under this License will not have their licenses
+ terminated so long as such parties remain in full compliance.
+
+ 6. You are not required to accept this License, since you have not
+ signed it. However, nothing else grants you permission to modify
+ or distribute the Program or its derivative works. These actions
+ are prohibited by law if you do not accept this License.
+ Therefore, by modifying or distributing the Program (or any work
+ based on the Program), you indicate your acceptance of this
+ License to do so, and all its terms and conditions for copying,
+ distributing or modifying the Program or works based on it.
+
+ 7. Each time you redistribute the Program (or any work based on the
+ Program), the recipient automatically receives a license from the
+ original licensor to copy, distribute or modify the Program
+ subject to these terms and conditions. You may not impose any
+ further restrictions on the recipients' exercise of the rights
+ granted herein. You are not responsible for enforcing compliance
+ by third parties to this License.
+
+ 8. If, as a consequence of a court judgment or allegation of patent
+ infringement or for any other reason (not limited to patent
+ issues), conditions are imposed on you (whether by court order,
+ agreement or otherwise) that contradict the conditions of this
+ License, they do not excuse you from the conditions of this
+ License. If you cannot distribute so as to satisfy simultaneously
+ your obligations under this License and any other pertinent
+ obligations, then as a consequence you may not distribute the
+ Program at all. For example, if a patent license would not permit
+ royalty-free redistribution of the Program by all those who
+ receive copies directly or indirectly through you, then the only
+ way you could satisfy both it and this License would be to refrain
+ entirely from distribution of the Program.
+
+ If any portion of this section is held invalid or unenforceable
+ under any particular circumstance, the balance of the section is
+ intended to apply and the section as a whole is intended to apply
+ in other circumstances.
+
+ It is not the purpose of this section to induce you to infringe any
+ patents or other property right claims or to contest validity of
+ any such claims; this section has the sole purpose of protecting
+ the integrity of the free software distribution system, which is
+ implemented by public license practices. Many people have made
+ generous contributions to the wide range of software distributed
+ through that system in reliance on consistent application of that
+ system; it is up to the author/donor to decide if he or she is
+ willing to distribute software through any other system and a
+ licensee cannot impose that choice.
+
+ This section is intended to make thoroughly clear what is believed
+ to be a consequence of the rest of this License.
+
+ 9. If the distribution and/or use of the Program is restricted in
+ certain countries either by patents or by copyrighted interfaces,
+ the original copyright holder who places the Program under this
+ License may add an explicit geographical distribution limitation
+ excluding those countries, so that distribution is permitted only
+ in or among countries not thus excluded. In such case, this
+ License incorporates the limitation as if written in the body of
+ this License.
+
+ 10. The Free Software Foundation may publish revised and/or new
+ versions of the General Public License from time to time. Such
+ new versions will be similar in spirit to the present version, but
+ may differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+ Program specifies a version number of this License which applies
+ to it and "any later version", you have the option of following
+ the terms and conditions either of that version or of any later
+ version published by the Free Software Foundation. If the Program
+ does not specify a version number of this License, you may choose
+ any version ever published by the Free Software Foundation.
+
+ 11. If you wish to incorporate parts of the Program into other free
+ programs whose distribution conditions are different, write to the
+ author to ask for permission. For software which is copyrighted
+ by the Free Software Foundation, write to the Free Software
+ Foundation; we sometimes make exceptions for this. Our decision
+ will be guided by the two goals of preserving the free status of
+ all derivatives of our free software and of promoting the sharing
+ and reuse of software generally.
+
+ NO WARRANTY
+ 12. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
+ WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
+ LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+ WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
+ QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
+ SERVICING, REPAIR OR CORRECTION.
+
+ 13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+ WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
+ MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+ LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
+ INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
+ INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
+ OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
+ OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+How to Apply These Terms to Your New Programs
+=============================================
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ ONE LINE TO GIVE THE PROGRAM'S NAME AND AN IDEA OF WHAT IT DOES.
+ Copyright (C) 19YY NAME OF AUTHOR
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+ Also add information on how to contact you by electronic and paper
+mail.
+
+ If the program is interactive, make it output a short notice like
+this when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
+ type `show w'. This is free software, and you are welcome
+ to redistribute it under certain conditions; type `show c'
+ for details.
+
+ The hypothetical commands `show w' and `show c' should show the
+appropriate parts of the General Public License. Of course, the
+commands you use may be called something other than `show w' and `show
+c'; they could even be mouse-clicks or menu items--whatever suits your
+program.
+
+ You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the program,
+if necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright
+ interest in the program `Gnomovision'
+ (which makes passes at compilers) written
+ by James Hacker.
+
+ SIGNATURE OF TY COON, 1 April 1989
+ Ty Coon, President of Vice
+
+ This General Public License does not permit incorporating your
+program into proprietary programs. If your program is a subroutine
+library, you may consider it more useful to permit linking proprietary
+applications with the library. If this is what you want to do, use the
+GNU Library General Public License instead of this License.
+
+
+File: mach.info, Node: Documentation License, Next: Concept Index, Prev: Copying, Up: Top
+
+Appendix B Documentation License
+********************************
+
+This manual is copyrighted and licensed under the GNU Free Documentation
+license.
+
+ Parts of this manual are derived from the Mach manual packages
+originally provided by Carnegie Mellon University.
+
+* Menu:
+
+* Free Documentation License:: The GNU Free Documentation License.
+* CMU License:: The CMU license applies to the original Mach
+ kernel and its documentation.
+
+
+File: mach.info, Node: Free Documentation License, Next: CMU License, Up: Documentation License
+
+B.1 GNU Free Documentation License
+==================================
+
+ Version 1.1, March 2000
+
+ Copyright (C) 2000 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ 0. PREAMBLE
+
+ The purpose of this License is to make a manual, textbook, or other
+ written document "free" in the sense of freedom: to assure everyone
+ the effective freedom to copy and redistribute it, with or without
+ modifying it, either commercially or noncommercially. Secondarily,
+ this License preserves for the author and publisher a way to get
+ credit for their work, while not being considered responsible for
+ modifications made by others.
+
+ This License is a kind of "copyleft", which means that derivative
+ works of the document must themselves be free in the same sense.
+ It complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+
+ We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a
+ free program should come with manuals providing the same freedoms
+ that the software does. But this License is not limited to
+ software manuals; it can be used for any textual work, regardless
+ of subject matter or whether it is published as a printed book.
+ We recommend this License principally for works whose purpose is
+ instruction or reference.
+
+ 1. APPLICABILITY AND DEFINITIONS
+
+ This License applies to any manual or other work that contains a
+ notice placed by the copyright holder saying it can be distributed
+ under the terms of this License. The "Document", below, refers to
+ any such manual or work. Any member of the public is a licensee,
+ and is addressed as "you".
+
+ A "Modified Version" of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+
+ A "Secondary Section" is a named appendix or a front-matter
+ section of the Document that deals exclusively with the
+ relationship of the publishers or authors of the Document to the
+ Document's overall subject (or to related matters) and contains
+ nothing that could fall directly within that overall subject.
+ (For example, if the Document is in part a textbook of
+ mathematics, a Secondary Section may not explain any mathematics.)
+ The relationship could be a matter of historical connection with
+ the subject or with related matters, or of legal, commercial,
+ philosophical, ethical or political position regarding them.
+
+ The "Invariant Sections" are certain Secondary Sections whose
+ titles are designated, as being those of Invariant Sections, in
+ the notice that says that the Document is released under this
+ License.
+
+ The "Cover Texts" are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+ that says that the Document is released under this License.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, whose contents can be viewed and edited directly
+ and straightforwardly with generic text editors or (for images
+ composed of pixels) generic paint programs or (for drawings) some
+ widely available drawing editor, and that is suitable for input to
+ text formatters or for automatic translation to a variety of
+ formats suitable for input to text formatters. A copy made in an
+ otherwise Transparent file format whose markup has been designed
+ to thwart or discourage subsequent modification by readers is not
+ Transparent. A copy that is not "Transparent" is called "Opaque".
+
+ Examples of suitable formats for Transparent copies include plain
+ ASCII without markup, Texinfo input format, LaTeX input format,
+ SGML or XML using a publicly available DTD, and
+ standard-conforming simple HTML designed for human modification.
+ Opaque formats include PostScript, PDF, proprietary formats that
+ can be read and edited only by proprietary word processors, SGML
+ or XML for which the DTD and/or processing tools are not generally
+ available, and the machine-generated HTML produced by some word
+ processors for output purposes only.
+
+ The "Title Page" means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the
+ material this License requires to appear in the title page. For
+ works in formats which do not have any title page as such, "Title
+ Page" means the text near the most prominent appearance of the
+ work's title, preceding the beginning of the body of the text.
+
+ 2. VERBATIM COPYING
+
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License
+ applies to the Document are reproduced in all copies, and that you
+ add no other conditions whatsoever to those of this License. You
+ may not use technical measures to obstruct or control the reading
+ or further copying of the copies you make or distribute. However,
+ you may accept compensation in exchange for copies. If you
+ distribute a large enough number of copies you must also follow
+ the conditions in section 3.
+
+ You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.
+
+ 3. COPYING IN QUANTITY
+
+ If you publish printed copies of the Document numbering more than
+ 100, and the Document's license notice requires Cover Texts, you
+ must enclose the copies in covers that carry, clearly and legibly,
+ all these Cover Texts: Front-Cover Texts on the front cover, and
+ Back-Cover Texts on the back cover. Both covers must also clearly
+ and legibly identify you as the publisher of these copies. The
+ front cover must present the full title with all words of the
+ title equally prominent and visible. You may add other material
+ on the covers in addition. Copying with changes limited to the
+ covers, as long as they preserve the title of the Document and
+ satisfy these conditions, can be treated as verbatim copying in
+ other respects.
+
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ adjacent pages.
+
+ If you publish or distribute Opaque copies of the Document
+ numbering more than 100, you must either include a
+ machine-readable Transparent copy along with each Opaque copy, or
+ state in or with each Opaque copy a publicly-accessible
+ computer-network location containing a complete Transparent copy
+ of the Document, free of added material, which the general
+ network-using public has access to download anonymously at no
+ charge using public-standard network protocols. If you use the
+ latter option, you must take reasonably prudent steps, when you
+ begin distribution of Opaque copies in quantity, to ensure that
+ this Transparent copy will remain thus accessible at the stated
+ location until at least one year after the last time you
+ distribute an Opaque copy (directly or through your agents or
+ retailers) of that edition to the public.
+
+ It is requested, but not required, that you contact the authors of
+ the Document well before redistributing any large number of
+ copies, to give them a chance to provide you with an updated
+ version of the Document.
+
+ 4. MODIFICATIONS
+
+ You may copy and distribute a Modified Version of the Document
+ under the conditions of sections 2 and 3 above, provided that you
+ release the Modified Version under precisely this License, with
+ the Modified Version filling the role of the Document, thus
+ licensing distribution and modification of the Modified Version to
+ whoever possesses a copy of it. In addition, you must do these
+ things in the Modified Version:
+
+ A. Use in the Title Page (and on the covers, if any) a title
+ distinct from that of the Document, and from those of
+ previous versions (which should, if there were any, be listed
+ in the History section of the Document). You may use the
+ same title as a previous version if the original publisher of
+ that version gives permission.
+
+ B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in
+ the Modified Version, together with at least five of the
+ principal authors of the Document (all of its principal
+ authors, if it has less than five).
+
+ C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+
+ D. Preserve all the copyright notices of the Document.
+
+ E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+
+ F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified
+ Version under the terms of this License, in the form shown in
+ the Addendum below.
+
+ G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+
+ H. Include an unaltered copy of this License.
+
+ I. Preserve the section entitled "History", and its title, and
+ add to it an item stating at least the title, year, new
+ authors, and publisher of the Modified Version as given on
+ the Title Page. If there is no section entitled "History" in
+ the Document, create one stating the title, year, authors,
+ and publisher of the Document as given on its Title Page,
+ then add an item describing the Modified Version as stated in
+ the previous sentence.
+
+ J. Preserve the network location, if any, given in the Document
+ for public access to a Transparent copy of the Document, and
+ likewise the network locations given in the Document for
+ previous versions it was based on. These may be placed in
+ the "History" section. You may omit a network location for a
+ work that was published at least four years before the
+ Document itself, or if the original publisher of the version
+ it refers to gives permission.
+
+ K. In any section entitled "Acknowledgments" or "Dedications",
+ preserve the section's title, and preserve in the section all
+ the substance and tone of each of the contributor
+ acknowledgments and/or dedications given therein.
+
+ L. Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section
+ titles.
+
+ M. Delete any section entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+
+ N. Do not retitle any existing section as "Endorsements" or to
+ conflict in title with any Invariant Section.
+
+ If the Modified Version includes new front-matter sections or
+ appendices that qualify as Secondary Sections and contain no
+ material copied from the Document, you may at your option
+ designate some or all of these sections as invariant. To do this,
+ add their titles to the list of Invariant Sections in the Modified
+ Version's license notice. These titles must be distinct from any
+ other section titles.
+
+ You may add a section entitled "Endorsements", provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties--for example, statements of peer review or that the text
+ has been approved by an organization as the authoritative
+ definition of a standard.
+
+ You may add a passage of up to five words as a Front-Cover Text,
+ and a passage of up to 25 words as a Back-Cover Text, to the end
+ of the list of Cover Texts in the Modified Version. Only one
+ passage of Front-Cover Text and one of Back-Cover Text may be
+ added by (or through arrangements made by) any one entity. If the
+ Document already includes a cover text for the same cover,
+ previously added by you or by arrangement made by the same entity
+ you are acting on behalf of, you may not add another; but you may
+ replace the old one, on explicit permission from the previous
+ publisher that added the old one.
+
+ The author(s) and publisher(s) of the Document do not by this
+ License give permission to use their names for publicity for or to
+ assert or imply endorsement of any Modified Version.
+
+ 5. COMBINING DOCUMENTS
+
+ You may combine the Document with other documents released under
+ this License, under the terms defined in section 4 above for
+ modified versions, provided that you include in the combination
+ all of the Invariant Sections of all of the original documents,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice.
+
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy. If there are multiple Invariant Sections with the same name
+ but different contents, make the title of each such section unique
+ by adding at the end of it, in parentheses, the name of the
+ original author or publisher of that section if known, or else a
+ unique number. Make the same adjustment to the section titles in
+ the list of Invariant Sections in the license notice of the
+ combined work.
+
+ In the combination, you must combine any sections entitled
+ "History" in the various original documents, forming one section
+ entitled "History"; likewise combine any sections entitled
+ "Acknowledgments", and any sections entitled "Dedications". You
+ must delete all sections entitled "Endorsements."
+
+ 6. COLLECTIONS OF DOCUMENTS
+
+ You may make a collection consisting of the Document and other
+ documents released under this License, and replace the individual
+ copies of this License in the various documents with a single copy
+ that is included in the collection, provided that you follow the
+ rules of this License for verbatim copying of each of the
+ documents in all other respects.
+
+ You may extract a single document from such a collection, and
+ distribute it individually under this License, provided you insert
+ a copy of this License into the extracted document, and follow
+ this License in all other respects regarding verbatim copying of
+ that document.
+
+ 7. AGGREGATION WITH INDEPENDENT WORKS
+
+ A compilation of the Document or its derivatives with other
+ separate and independent documents or works, in or on a volume of
+ a storage or distribution medium, does not as a whole count as a
+ Modified Version of the Document, provided no compilation
+ copyright is claimed for the compilation. Such a compilation is
+ called an "aggregate", and this License does not apply to the
+ other self-contained works thus compiled with the Document, on
+ account of their being thus compiled, if they are not themselves
+ derivative works of the Document.
+
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one
+ quarter of the entire aggregate, the Document's Cover Texts may be
+ placed on covers that surround only the Document within the
+ aggregate. Otherwise they must appear on covers around the whole
+ aggregate.
+
+ 8. TRANSLATION
+
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections. You may include a
+ translation of this License provided that you also include the
+ original English version of this License. In case of a
+ disagreement between the translation and the original English
+ version of this License, the original English version will prevail.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided for under this License. Any other
+ attempt to copy, modify, sublicense or distribute the Document is
+ void, and will automatically terminate your rights under this
+ License. However, parties who have received copies, or rights,
+ from you under this License will not have their licenses
+ terminated so long as such parties remain in full compliance.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+ The Free Software Foundation may publish new, revised versions of
+ the GNU Free Documentation License from time to time. Such new
+ versions will be similar in spirit to the present version, but may
+ differ in detail to address new problems or concerns. See
+ `http://www.gnu.org/copyleft/'.
+
+ Each version of the License is given a distinguishing version
+ number. If the Document specifies that a particular numbered
+ version of this License "or any later version" applies to it, you
+ have the option of following the terms and conditions either of
+ that specified version or of any later version that has been
+ published (not as a draft) by the Free Software Foundation. If
+ the Document does not specify a version number of this License,
+ you may choose any version ever published (not as a draft) by the
+ Free Software Foundation.
+
+B.1.0.1 ADDENDUM: How to use this License for your documents
+............................................................
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+ Copyright (C) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.1
+ or any later version published by the Free Software Foundation;
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have no Invariant Sections, write "with no Invariant Sections"
+instead of saying which ones are invariant. If you have no Front-Cover
+Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
+LIST"; likewise for Back-Cover Texts.
+
+ If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+
+
+File: mach.info, Node: CMU License, Prev: Free Documentation License, Up: Documentation License
+
+B.2 CMU License
+===============
+
+ Mach Operating System
+ Copyright (C) 1991,1990,1989 Carnegie Mellon University
+ All Rights Reserved.
+
+ Permission to use, copy, modify and distribute this software and
+ its documentation is hereby granted, provided that both the
+ copyright notice and this permission notice appear in all copies
+ of the software, derivative works or modified versions, and any
+ portions thereof, and that both notices appear in supporting
+ documentation.
+
+ CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+
+ Carnegie Mellon requests users of this software to return to
+
+ Software Distribution Coordinator
+ School of Computer Science
+ Carnegie Mellon University
+ Pittsburgh PA 15213-3890
+
+ or <Software.Distribution@CS.CMU.EDU> any improvements or
+ extensions that they make and grant Carnegie Mellon the rights to
+ redistribute these changes.
+
+
+File: mach.info, Node: Concept Index, Next: Function and Data Index, Prev: Documentation License, Up: Top
+
+Concept Index
+*************
+
+
+* Menu:
+
+* communication between tasks: Major Concepts. (line 6)
+* composing messages: Message Format. (line 6)
+* device port: Device Interface. (line 13)
+* FDL, GNU Free Documentation License: Free Documentation License.
+ (line 6)
+* format of a message: Message Format. (line 6)
+* GPL, GNU General Public License: Copying. (line 6)
+* GRand Unified Bootloader: Bootloader. (line 13)
+* GRUB: Bootloader. (line 13)
+* host control port: Host Ports. (line 34)
+* host interface: Host Interface. (line 6)
+* host name port: Host Ports. (line 6)
+* host ports: Host Ports. (line 6)
+* interprocess communication (IPC): Major Concepts. (line 6)
+* IPC (interprocess communication): Major Concepts. (line 6)
+* IPC space port: Port Manipulation Interface.
+ (line 9)
+* message composition: Message Format. (line 6)
+* message format: Message Format. (line 6)
+* messages: Major Concepts. (line 6)
+* moving port rights: Exchanging Port Rights.
+ (line 6)
+* port representing a device: Device Interface. (line 13)
+* port representing a processor: Processor Interface. (line 6)
+* port representing a processor set name: Processor Set Ports. (line 6)
+* port representing a task: Task Interface. (line 6)
+* port representing a thread: Thread Interface. (line 6)
+* port representing a virtual memory map: Virtual Memory Interface.
+ (line 6)
+* port representing an IPC space: Port Manipulation Interface.
+ (line 9)
+* ports representing a host: Host Ports. (line 6)
+* ports representing a processor set: Processor Set Ports. (line 6)
+* processor port: Processor Interface. (line 6)
+* processor set name port: Processor Set Ports. (line 6)
+* processor set port: Processor Set Ports. (line 13)
+* processor set ports: Processor Set Ports. (line 6)
+* receiving memory: Memory. (line 6)
+* receiving port rights: Exchanging Port Rights.
+ (line 6)
+* remote procedure calls (RPC): Major Concepts. (line 6)
+* RPC (remote procedure calls): Major Concepts. (line 6)
+* sending memory: Memory. (line 6)
+* sending messages: Message Send. (line 6)
+* sending port rights: Exchanging Port Rights.
+ (line 6)
+* serverboot: Modules. (line 6)
+* task port: Task Interface. (line 6)
+* thread port: Thread Interface. (line 6)
+* virtual memory map port: Virtual Memory Interface.
+ (line 6)
+
+
+File: mach.info, Node: Function and Data Index, Prev: Concept Index, Up: Top
+
+Function and Data Index
+***********************
+
+
+* Menu:
+
+* catch_exception_raise: Exceptions. (line 9)
+* device_close: Device Close. (line 7)
+* device_get_status: Device Status. (line 20)
+* device_map: Device Map. (line 9)
+* device_open: Device Open. (line 8)
+* device_open_request: Device Open. (line 36)
+* device_read: Device Read. (line 9)
+* device_read_inband: Device Read. (line 27)
+* device_read_request: Device Read. (line 34)
+* device_read_request_inband: Device Read. (line 51)
+* device_reply_server: Device Reply Server. (line 12)
+* device_set_filter: Device Filter. (line 10)
+* device_set_status: Device Status. (line 9)
+* device_t: Device Interface. (line 14)
+* device_write: Device Write. (line 9)
+* device_write_inband: Device Write. (line 24)
+* device_write_request: Device Write. (line 31)
+* device_write_request_inband: Device Write. (line 49)
+* ds_device_open_reply: Device Open. (line 39)
+* ds_device_read_reply: Device Read. (line 37)
+* ds_device_read_reply_inband: Device Read. (line 54)
+* ds_device_write_reply: Device Write. (line 34)
+* ds_device_write_reply_inband: Device Write. (line 52)
+* evc_wait: Exceptions. (line 18)
+* exception_raise: Exceptions. (line 15)
+* host_adjust_time: Host Time. (line 43)
+* host_basic_info_t: Host Information. (line 75)
+* host_get_boot_info: Host Information. (line 114)
+* host_get_time: Host Time. (line 34)
+* host_info: Host Information. (line 9)
+* host_kernel_version: Host Information. (line 96)
+* host_priv_t: Host Ports. (line 35)
+* host_processor_set_priv: Processor Set Access.
+ (line 25)
+* host_processor_sets: Processor Set Access.
+ (line 9)
+* host_processors: Hosted Processors. (line 9)
+* host_reboot: Host Reboot. (line 8)
+* host_sched_info_t: Host Information. (line 92)
+* host_set_time: Host Time. (line 39)
+* host_t: Host Ports. (line 7)
+* ipc_space_t: Port Manipulation Interface.
+ (line 10)
+* mach_host_self: Host Ports. (line 14)
+* mach_msg: Mach Message Call. (line 13)
+* mach_msg_bits_t: Message Format. (line 21)
+* mach_msg_header_t: Message Format. (line 33)
+* mach_msg_id_t: Message Format. (line 29)
+* mach_msg_size_t: Message Format. (line 25)
+* mach_msg_timeout_t: Mach Message Call. (line 61)
+* mach_msg_type_long_t: Message Format. (line 248)
+* mach_msg_type_name_t: Message Format. (line 128)
+* mach_msg_type_number_t: Message Format. (line 138)
+* MACH_MSG_TYPE_PORT_ANY: Message Format. (line 234)
+* MACH_MSG_TYPE_PORT_ANY_RIGHT: Message Format. (line 244)
+* MACH_MSG_TYPE_PORT_ANY_SEND: Message Format. (line 239)
+* mach_msg_type_size_t: Message Format. (line 133)
+* mach_msg_type_t: Message Format. (line 143)
+* MACH_MSGH_BITS: Message Format. (line 96)
+* MACH_MSGH_BITS_LOCAL: Message Format. (line 108)
+* MACH_MSGH_BITS_OTHER: Message Format. (line 117)
+* MACH_MSGH_BITS_PORTS: Message Format. (line 112)
+* MACH_MSGH_BITS_REMOTE: Message Format. (line 103)
+* mach_port_allocate: Port Creation. (line 8)
+* mach_port_allocate_name: Port Creation. (line 66)
+* mach_port_deallocate: Port Destruction. (line 8)
+* mach_port_destroy: Port Destruction. (line 30)
+* mach_port_extract_right: Ports and other Tasks.
+ (line 59)
+* mach_port_get_receive_status: Receive Rights. (line 57)
+* mach_port_get_refs: Port Rights. (line 9)
+* mach_port_get_set_status: Port Sets. (line 9)
+* mach_port_insert_right: Ports and other Tasks.
+ (line 9)
+* mach_port_mod_refs: Port Rights. (line 42)
+* mach_port_move_member: Port Sets. (line 28)
+* mach_port_mscount_t: Receive Rights. (line 11)
+* mach_port_msgcount_t: Receive Rights. (line 15)
+* mach_port_names: Port Names. (line 9)
+* mach_port_rename: Port Names. (line 77)
+* mach_port_request_notification: Request Notifications.
+ (line 10)
+* mach_port_rights_t: Receive Rights. (line 19)
+* mach_port_seqno_t: Receive Rights. (line 7)
+* mach_port_set_mscount: Receive Rights. (line 73)
+* mach_port_set_qlimit: Receive Rights. (line 90)
+* mach_port_set_seqno: Receive Rights. (line 108)
+* mach_port_status_t: Receive Rights. (line 23)
+* mach_port_t: Message Format. (line 14)
+* mach_port_type: Port Names. (line 35)
+* mach_reply_port: Port Creation. (line 48)
+* mach_task_self: Task Information. (line 7)
+* mach_thread_self: Thread Information. (line 7)
+* mapped_time_value_t: Host Time. (line 51)
+* memory_object_change_attributes: Memory Object Attributes.
+ (line 30)
+* memory_object_change_completed: Memory Object Attributes.
+ (line 63)
+* memory_object_copy: Memory Objects and Data.
+ (line 209)
+* memory_object_create: Default Memory Manager.
+ (line 30)
+* memory_object_data_error: Memory Objects and Data.
+ (line 157)
+* memory_object_data_initialize: Default Memory Manager.
+ (line 73)
+* memory_object_data_provided: Memory Objects and Data.
+ (line 289)
+* memory_object_data_request: Memory Objects and Data.
+ (line 49)
+* memory_object_data_return: Memory Objects and Data.
+ (line 11)
+* memory_object_data_supply: Memory Objects and Data.
+ (line 84)
+* memory_object_data_unavailable: Memory Objects and Data.
+ (line 177)
+* memory_object_data_unlock: Memory Object Locking.
+ (line 85)
+* memory_object_data_write: Memory Objects and Data.
+ (line 260)
+* memory_object_default_server: Memory Object Server.
+ (line 10)
+* memory_object_destroy: Memory Object Termination.
+ (line 37)
+* memory_object_get_attributes: Memory Object Attributes.
+ (line 10)
+* memory_object_init: Memory Object Creation.
+ (line 11)
+* memory_object_lock_completed: Memory Object Locking.
+ (line 59)
+* memory_object_lock_request: Memory Object Locking.
+ (line 11)
+* memory_object_ready: Memory Object Creation.
+ (line 52)
+* memory_object_server: Memory Object Server.
+ (line 8)
+* memory_object_set_attributes: Memory Object Attributes.
+ (line 82)
+* memory_object_supply_completed: Memory Objects and Data.
+ (line 127)
+* memory_object_terminate: Memory Object Termination.
+ (line 10)
+* processor_assign: Processors and Sets. (line 8)
+* processor_basic_info_t: Processor Info. (line 67)
+* processor_control: Processor Control. (line 10)
+* processor_exit: Processor Control. (line 8)
+* processor_get_assignment: Processors and Sets. (line 32)
+* processor_info: Processor Info. (line 9)
+* processor_set_basic_info_t: Processor Set Info. (line 75)
+* processor_set_create: Processor Set Creation.
+ (line 8)
+* processor_set_default: Processor Set Access.
+ (line 36)
+* processor_set_destroy: Processor Set Destruction.
+ (line 8)
+* processor_set_info: Processor Set Info. (line 10)
+* processor_set_max_priority: Processor Set Priority.
+ (line 9)
+* processor_set_name_t: Processor Set Ports. (line 7)
+* processor_set_policy_disable: Processor Set Policy.
+ (line 11)
+* processor_set_policy_enable: Processor Set Policy.
+ (line 8)
+* processor_set_sched_info_t: Processor Set Info. (line 93)
+* processor_set_t: Processor Set Ports. (line 14)
+* processor_set_tasks: Tasks and Threads on Sets.
+ (line 9)
+* processor_set_threads: Tasks and Threads on Sets.
+ (line 23)
+* processor_start: Processor Control. (line 7)
+* processor_t: Processor Interface. (line 7)
+* sampled_pc_flavor_t: Profiling. (line 67)
+* sampled_pc_t: Profiling. (line 52)
+* seqnos_memory_object_change_completed: Memory Object Attributes.
+ (line 67)
+* seqnos_memory_object_copy: Memory Objects and Data.
+ (line 214)
+* seqnos_memory_object_create: Default Memory Manager.
+ (line 35)
+* seqnos_memory_object_data_initialize: Default Memory Manager.
+ (line 77)
+* seqnos_memory_object_data_request: Memory Objects and Data.
+ (line 53)
+* seqnos_memory_object_data_return: Memory Objects and Data.
+ (line 16)
+* seqnos_memory_object_data_unlock: Memory Object Locking.
+ (line 89)
+* seqnos_memory_object_data_write: Memory Objects and Data.
+ (line 264)
+* seqnos_memory_object_default_server: Memory Object Server.
+ (line 14)
+* seqnos_memory_object_init: Memory Object Creation.
+ (line 16)
+* seqnos_memory_object_lock_completed: Memory Object Locking.
+ (line 63)
+* seqnos_memory_object_server: Memory Object Server.
+ (line 12)
+* seqnos_memory_object_supply_completed: Memory Objects and Data.
+ (line 132)
+* seqnos_memory_object_terminate: Memory Object Termination.
+ (line 14)
+* struct host_basic_info: Host Information. (line 48)
+* struct host_sched_info: Host Information. (line 78)
+* struct processor_basic_info: Processor Info. (line 44)
+* struct processor_set_basic_info: Processor Set Info. (line 51)
+* struct processor_set_sched_info: Processor Set Info. (line 78)
+* struct task_basic_info: Task Information. (line 82)
+* struct task_events_info: Task Information. (line 114)
+* struct task_thread_times_info: Task Information. (line 145)
+* struct thread_basic_info: Thread Information. (line 66)
+* struct thread_sched_info: Thread Information. (line 128)
+* swtch: Hand-Off Scheduling. (line 81)
+* swtch_pri: Hand-Off Scheduling. (line 93)
+* task_assign: Tasks and Threads on Sets.
+ (line 36)
+* task_assign_default: Tasks and Threads on Sets.
+ (line 49)
+* task_basic_info_t: Task Information. (line 111)
+* task_create: Task Creation. (line 8)
+* task_disable_pc_sampling: Profiling. (line 22)
+* task_enable_pc_sampling: Profiling. (line 8)
+* task_events_info_t: Task Information. (line 142)
+* task_get_assignment: Tasks and Threads on Sets.
+ (line 60)
+* task_get_bootstrap_port: Task Special Ports. (line 42)
+* task_get_emulation_vector: Syscall Emulation. (line 9)
+* task_get_exception_port: Task Special Ports. (line 36)
+* task_get_kernel_port: Task Special Ports. (line 30)
+* task_get_sampled_pcs: Profiling. (line 36)
+* task_get_special_port: Task Special Ports. (line 8)
+* task_info: Task Information. (line 44)
+* task_priority: Task Execution. (line 29)
+* task_ras_control: Task Execution. (line 47)
+* task_resume: Task Execution. (line 19)
+* task_set_bootstrap_port: Task Special Ports. (line 78)
+* task_set_emulation: Syscall Emulation. (line 22)
+* task_set_emulation_vector: Syscall Emulation. (line 15)
+* task_set_exception_port: Task Special Ports. (line 72)
+* task_set_kernel_port: Task Special Ports. (line 66)
+* task_set_special_port: Task Special Ports. (line 48)
+* task_suspend: Task Execution. (line 7)
+* task_t: Task Interface. (line 7)
+* task_terminate: Task Termination. (line 7)
+* task_thread_times_info_t: Task Information. (line 159)
+* task_threads: Task Information. (line 33)
+* thread_abort: Thread Execution. (line 38)
+* thread_assign: Tasks and Threads on Sets.
+ (line 72)
+* thread_assign_default: Tasks and Threads on Sets.
+ (line 85)
+* thread_basic_info_t: Thread Information. (line 125)
+* thread_create: Thread Creation. (line 8)
+* thread_depress_abort: Hand-Off Scheduling. (line 74)
+* thread_disable_pc_sampling: Profiling. (line 24)
+* thread_enable_pc_sampling: Profiling. (line 10)
+* thread_get_assignment: Tasks and Threads on Sets.
+ (line 96)
+* thread_get_exception_port: Thread Special Ports.
+ (line 27)
+* thread_get_kernel_port: Thread Special Ports.
+ (line 21)
+* thread_get_sampled_pcs: Profiling. (line 39)
+* thread_get_special_port: Thread Special Ports.
+ (line 8)
+* thread_get_state: Thread Execution. (line 102)
+* thread_info: Thread Information. (line 33)
+* thread_max_priority: Thread Priority. (line 38)
+* thread_policy: Scheduling Policy. (line 8)
+* thread_priority: Thread Priority. (line 20)
+* thread_resume: Thread Execution. (line 29)
+* thread_sched_info_t: Thread Information. (line 159)
+* thread_set_exception_port: Thread Special Ports.
+ (line 52)
+* thread_set_kernel_port: Thread Special Ports.
+ (line 46)
+* thread_set_special_port: Thread Special Ports.
+ (line 33)
+* thread_set_state: Thread Execution. (line 126)
+* thread_suspend: Thread Execution. (line 7)
+* thread_switch: Hand-Off Scheduling. (line 8)
+* thread_t: Thread Interface. (line 7)
+* thread_terminate: Thread Termination. (line 7)
+* thread_wire: Thread Settings. (line 8)
+* time_value_add: Host Time. (line 25)
+* time_value_add_usec: Host Time. (line 21)
+* time_value_t: Host Time. (line 7)
+* vm_allocate: Memory Allocation. (line 8)
+* vm_copy: Data Transfer. (line 53)
+* vm_deallocate: Memory Deallocation. (line 8)
+* vm_inherit: Memory Attributes. (line 70)
+* vm_machine_attribute: Memory Attributes. (line 134)
+* vm_map: Mapping Memory Objects.
+ (line 11)
+* vm_protect: Memory Attributes. (line 36)
+* vm_read: Data Transfer. (line 9)
+* vm_region: Memory Attributes. (line 11)
+* vm_set_default_memory_manager: Default Memory Manager.
+ (line 8)
+* vm_statistics: Memory Statistics. (line 52)
+* vm_statistics_data_t: Memory Statistics. (line 7)
+* vm_task_t: Virtual Memory Interface.
+ (line 7)
+* vm_wire: Memory Attributes. (line 101)
+* vm_write: Data Transfer. (line 34)
+
+