Annotation of Gnu-Mach/doc/mach.info-2, revision 1.1.1.3
1.1.1.3 ! root 1: This is mach.info, produced by makeinfo version 6.0 from mach.texi.
1.1 root 2:
3: This file documents the GNU Mach microkernel.
4:
1.1.1.3 ! root 5: This is edition 0.4, last updated on 30 October 2015, of 'The GNU
! 6: Mach Reference Manual', for version 1.6.
1.1 root 7:
8: Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
9: Inc.
10:
11: Permission is granted to copy, distribute and/or modify this
12: document under the terms of the GNU Free Documentation License,
13: Version 1.2 or any later version published by the Free Software
14: Foundation; with no Invariant Section, with no Front-Cover Texts,
15: and with no Back-Cover Texts. A copy of the license is included in
16: the section entitled "GNU Free Documentation License".
17:
18: This work is based on manual pages under the following copyright
19: and license:
20:
21: Mach Operating System
22: Copyright (C) 1991,1990 Carnegie Mellon University
23: All Rights Reserved.
24:
25: Permission to use, copy, modify and distribute this software and
26: its documentation is hereby granted, provided that both the
27: copyright notice and this permission notice appear in all copies of
28: the software, derivative works or modified versions, and any
29: portions thereof, and that both notices appear in supporting
30: documentation.
31:
32: CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
33: CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
34: ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
35: INFO-DIR-SECTION Kernel
36: START-INFO-DIR-ENTRY
37: * GNUMach: (mach). Using and programming the GNU Mach microkernel.
38: END-INFO-DIR-ENTRY
39:
40:
1.1.1.2 root 41: File: mach.info, Node: Device Filter, Prev: Device Status, Up: Device Interface
42:
43: 10.8 Device Filter
44: ==================
45:
46: -- Function: kern_return_t device_set_filter (device_t DEVICE,
47: mach_port_t RECEIVE_PORT,
48: mach_msg_type_name_t RECEIVE_PORT_TYPE, int PRIORITY,
49: filter_array_t FILTER, mach_msg_type_number_t FILTER_COUNT)
50: The function 'device_set_filter' makes it possible to filter out
51: selected data arriving at or leaving the device and forward it to a
52: port. FILTER is a list of filter commands, which are applied to
53: incoming data to determine if the data should be sent to
54: RECEIVE_PORT. The IPC type of the send right is specified by
55: RECEIVE_PORT_RIGHT, it is either 'MACH_MSG_TYPE_MAKE_SEND' or
56: 'MACH_MSG_TYPE_MOVE_SEND'. The PRIORITY value is used to order
57: multiple filters.
58:
59: There can be up to 'NET_MAX_FILTER' commands in FILTER. The actual
60: number of commands is passed in FILTER_COUNT. For the purpose of
61: the filter test, an internal stack is provided. After all commands
62: have been processed, the value on the top of the stack determines
63: if the data is forwarded or the next filter is tried.
64:
65: The first command is a header which contains two fields: one for
66: flags and the other for the type of interpreter used to run the
67: rest of the commands.
68:
69: Any combination of the following flags is allowed but at least one
70: of them must be specified.
71:
72: 'NETF_IN'
73: The filter will be applied to data received by the device.
74:
75: 'NETF_OUT'
76: The filter will be applied to data transmitted by the device.
77:
78: Unless the type is given explicitly the native NETF interpreter
79: will be used. To select an alternative implementation use one of
80: the following types:
81:
82: 'NETF_BPF'
83: Use Berkeley Packet Filter.
84:
85: For the listener to know what kind of packet is being received,
86: when the filter code accepts a packet the message sent to
87: RECEIVE_PORT is tagged with either NETF_IN or NETF_OUT.
88:
89: Each word of the command list specifies a data (push) operation
90: (high order NETF_NBPO bits) as well as a binary operator (low order
91: NETF_NBPA bits). The value to be pushed onto the stack is chosen
92: as follows.
93:
94: 'NETF_PUSHLIT'
95: Use the next short word of the filter as the value.
96:
97: 'NETF_PUSHZERO'
98: Use 0 as the value.
99:
100: 'NETF_PUSHWORD+N'
101: Use short word N of the "data" portion of the message as the
102: value.
103:
104: 'NETF_PUSHHDR+N'
105: Use short word N of the "header" portion of the message as the
106: value.
107:
108: 'NETF_PUSHIND+N'
109: Pops the top long word from the stack and then uses short word
110: N of the "data" portion of the message as the value.
111:
112: 'NETF_PUSHHDRIND+N'
113: Pops the top long word from the stack and then uses short word
114: N of the "header" portion of the message as the value.
115:
116: 'NETF_PUSHSTK+N'
117: Use long word N of the stack (where the top of stack is long
118: word 0) as the value.
119:
120: 'NETF_NOPUSH'
121: Don't push a value.
122:
123: The unsigned value so chosen is promoted to a long word before
124: being pushed. Once a value is pushed (except for the case of
125: 'NETF_NOPUSH'), the top two long words of the stack are popped and
126: a binary operator applied to them (with the old top of stack as the
127: second operand). The result of the operator is pushed on the
128: stack. These operators are:
129:
130: 'NETF_NOP'
131: Don't pop off any values and do no operation.
132:
133: 'NETF_EQ'
134: Perform an equal comparison.
135:
136: 'NETF_LT'
137: Perform a less than comparison.
138:
139: 'NETF_LE'
140: Perform a less than or equal comparison.
141:
142: 'NETF_GT'
143: Perform a greater than comparison.
144:
145: 'NETF_GE'
146: Perform a greater than or equal comparison.
147:
148: 'NETF_AND'
149: Perform a bitise boolean AND operation.
150:
151: 'NETF_OR'
152: Perform a bitise boolean inclusive OR operation.
153:
154: 'NETF_XOR'
155: Perform a bitise boolean exclusive OR operation.
156:
157: 'NETF_NEQ'
158: Perform a not equal comparison.
159:
160: 'NETF_LSH'
161: Perform a left shift operation.
162:
163: 'NETF_RSH'
164: Perform a right shift operation.
165:
166: 'NETF_ADD'
167: Perform an addition.
168:
169: 'NETF_SUB'
170: Perform a subtraction.
171:
172: 'NETF_COR'
173: Perform an equal comparison. If the comparison is 'TRUE',
174: terminate the filter list. Otherwise, pop the result of the
175: comparison off the stack.
176:
177: 'NETF_CAND'
178: Perform an equal comparison. If the comparison is 'FALSE',
179: terminate the filter list. Otherwise, pop the result of the
180: comparison off the stack.
181:
182: 'NETF_CNOR'
183: Perform a not equal comparison. If the comparison is 'FALSE',
184: terminate the filter list. Otherwise, pop the result of the
185: comparison off the stack.
186:
187: 'NETF_CNAND'
188: Perform a not equal comparison. If the comparison is 'TRUE',
189: terminate the filter list. Otherwise, pop the result of the
190: comparison off the stack. The scan of the filter list
191: terminates when the filter list is emptied, or a 'NETF_C...'
192: operation terminates the list. At this time, if the final
193: value of the top of the stack is 'TRUE', then the message is
194: accepted for the filter.
195:
196: The function returns 'D_SUCCESS' if some data was successfully
197: written, 'D_INVALID_OPERATION' if RECEIVE_PORT is not a valid send
198: right, and 'D_NO_SUCH_DEVICE' if DEVICE does not denote a device
199: port or the device is dead or not completely open.
200:
201:
202: File: mach.info, Node: Kernel Debugger, Next: Copying, Prev: Device Interface, Up: Top
203:
204: 11 Kernel Debugger
205: ******************
206:
207: The GNU Mach kernel debugger 'ddb' is a powerful built-in debugger with
208: a gdb like syntax. It is enabled at compile time using the
209: '--enable-kdb' option. Whenever you want to enter the debugger while
210: running the kernel, you can press the key combination <Ctrl-Alt-D>.
211:
212: * Menu:
213:
214: * Operation:: Basic architecture of the kernel debugger.
215: * Commands:: Available commands in the kernel debugger.
216: * Variables:: Access of variables from the kernel debugger.
217: * Expressions:: Usage of expressions in the kernel debugger.
218:
219:
220: File: mach.info, Node: Operation, Next: Commands, Up: Kernel Debugger
221:
222: 11.1 Operation
223: ==============
224:
225: The current location is called "dot". The dot is displayed with a
226: hexadecimal format at a prompt. Examine and write commands update dot
227: to the address of the last line examined or the last location modified,
228: and set "next" to the address of the next location to be examined or
229: changed. Other commands don't change dot, and set next to be the same
230: as dot.
231:
232: The general command syntax is:
233:
234: COMMAND[/MODIFIER] ADDRESS [,COUNT]
235:
236: '!!' repeats the previous command, and a blank line repeats from the
237: address next with count 1 and no modifiers. Specifying ADDRESS sets dot
238: to the address. Omitting ADDRESS uses dot. A missing COUNT is taken to
239: be 1 for printing commands or infinity for stack traces.
240:
241: Current 'ddb' is enhanced to support multi-thread debugging. A break
242: point can be set only for a specific thread, and the address space or
243: registers of non current thread can be examined or modified if supported
244: by machine dependent routines. For example,
245:
246: break/t mach_msg_trap $task11.0
247:
248: sets a break point at 'mach_msg_trap' for the first thread of task 11
249: listed by a 'show all threads' command.
250:
251: In the above example, '$task11.0' is translated to the corresponding
252: thread structure's address by variable translation mechanism described
253: later. If a default target thread is set in a variable '$thread', the
254: '$task11.0' can be omitted. In general, if 't' is specified in a
255: modifier of a command line, a specified thread or a default target
256: thread is used as a target thread instead of the current one. The 't'
257: modifier in a command line is not valid in evaluating expressions in a
258: command line. If you want to get a value indirectly from a specific
259: thread's address space or access to its registers within an expression,
260: you have to specify a default target thread in advance, and to use ':t'
261: modifier immediately after the indirect access or the register reference
262: like as follows:
263:
264: set $thread $task11.0
265: print $eax:t *(0x100):tuh
266:
267: No sign extension and indirection 'size(long, half word, byte)' can
268: be specified with 'u', 'l', 'h' and 'b' respectively for the indirect
269: access.
270:
271: Note: Support of non current space/register access and user space
272: break point depend on the machines. If not supported, attempts of such
273: operation may provide incorrect information or may cause strange
274: behavior. Even if supported, the user space access is limited to the
275: pages resident in the main memory at that time. If a target page is not
276: in the main memory, an error will be reported.
277:
278: 'ddb' has a feature like a command 'more' for the output. If an
279: output line exceeds the number set in the '$lines' variable, it displays
280: '--db_more--' and waits for a response. The valid responses for it are:
281:
282: '<SPC>'
283: one more page
284:
285: '<RET>'
286: one more line
287:
288: 'q'
289: abort the current command, and return to the command input mode
290:
291:
1.1 root 292: File: mach.info, Node: Commands, Next: Variables, Prev: Operation, Up: Kernel Debugger
293:
294: 11.2 Commands
295: =============
296:
297: 'examine(x) [/MODIFIER] ADDR[,COUNT] [ THREAD ]'
298: Display the addressed locations according to the formats in the
299: modifier. Multiple modifier formats display multiple locations.
300: If no format is specified, the last formats specified for this
301: command is used. Address space other than that of the current
302: thread can be specified with 't' option in the modifier and THREAD
303: parameter. The format characters are
304:
305: 'b'
306: look at by bytes(8 bits)
307:
308: 'h'
309: look at by half words(16 bits)
310:
311: 'l'
312: look at by long words(32 bits)
313:
314: 'a'
315: print the location being displayed
316:
317: ','
318: skip one unit producing no output
319:
320: 'A'
321: print the location with a line number if possible
322:
323: 'x'
324: display in unsigned hex
325:
326: 'z'
327: display in signed hex
328:
329: 'o'
330: display in unsigned octal
331:
332: 'd'
333: display in signed decimal
334:
335: 'u'
336: display in unsigned decimal
337:
338: 'r'
339: display in current radix, signed
340:
341: 'c'
342: display low 8 bits as a character. Non-printing characters
343: are displayed as an octal escape code (e.g. '\000').
344:
345: 's'
346: display the null-terminated string at the location.
347: Non-printing characters are displayed as octal escapes.
348:
349: 'm'
350: display in unsigned hex with character dump at the end of each
351: line. The location is also displayed in hex at the beginning
352: of each line.
353:
354: 'i'
355: display as an instruction
356:
357: 'I'
358: display as an instruction with possible alternate formats
359: depending on the machine:
360:
361: 'vax'
362: don't assume that each external label is a procedure
363: entry mask
364:
365: 'i386'
366: don't round to the next long word boundary
367:
368: 'mips'
369: print register contents
370:
371: 'xf'
372: Examine forward. It executes an examine command with the last
373: specified parameters to it except that the next address displayed
374: by it is used as the start address.
375:
376: 'xb'
377: Examine backward. It executes an examine command with the last
378: specified parameters to it except that the last start address
379: subtracted by the size displayed by it is used as the start
380: address.
381:
382: 'print[/axzodurc] ADDR1 [ ADDR2 ... ]'
383: Print ADDR's according to the modifier character. Valid formats
384: are: 'a' 'x' 'z' 'o' 'd' 'u' 'r' 'c'. If no modifier is specified,
385: the last one specified to it is used. ADDR can be a string, and it
386: is printed as it is. For example,
387:
388: print/x "eax = " $eax "\necx = " $ecx "\n"
389:
390: will print like
391:
392: eax = xxxxxx
393: ecx = yyyyyy
394:
395: 'write[/bhlt] ADDR [ THREAD ] EXPR1 [ EXPR2 ... ]'
396: Write the expressions at succeeding locations. The write unit size
397: can be specified in the modifier with a letter b (byte), h (half
398: word) or l(long word) respectively. If omitted, long word is
399: assumed. Target address space can also be specified with 't'
400: option in the modifier and THREAD parameter. Warning: since there
401: is no delimiter between expressions, strange things may happen.
402: It's best to enclose each expression in parentheses.
403:
404: 'set $VARIABLE [=] EXPR'
405: Set the named variable or register with the value of EXPR. Valid
406: variable names are described below.
407:
408: 'break[/tuTU] ADDR[,COUNT] [ THREAD1 ... ]'
409: Set a break point at ADDR. If count is supplied, continues
410: (COUNT-1) times before stopping at the break point. If the break
411: point is set, a break point number is printed with '#'. This
412: number can be used in deleting the break point or adding conditions
413: to it.
414:
415: 't'
416: Set a break point only for a specific thread. The thread is
417: specified by THREAD parameter, or default one is used if the
418: parameter is omitted.
419:
420: 'u'
421: Set a break point in user space address. It may be combined
422: with 't' or 'T' option to specify the non-current target user
423: space. Without 'u' option, the address is considered in the
424: kernel space, and wrong space address is rejected with an
425: error message. This option can be used only if it is
426: supported by machine dependent routines.
427:
428: 'T'
429: Set a break point only for threads in a specific task. It is
430: like 't' option except that the break point is valid for all
431: threads which belong to the same task as the specified target
432: thread.
433:
434: 'U'
435: Set a break point in shared user space address. It is like
436: 'u' option, except that the break point is valid for all
437: threads which share the same address space even if 't' option
438: is specified. 't' option is used only to specify the target
439: shared space. Without 't' option, 'u' and 'U' have the same
440: meanings. 'U' is useful for setting a user space break point
441: in non-current address space with 't' option such as in an
442: emulation library space. This option can be used only if it
443: is supported by machine dependent routines.
444:
445: Warning: if a user text is shadowed by a normal user space
446: debugger, user space break points may not work correctly. Setting
447: a break point at the low-level code paths may also cause strange
448: behavior.
449:
450: 'delete[/tuTU] ADDR|#NUMBER [ THREAD1 ... ]'
451: Delete the break point. The target break point can be specified by
452: a break point number with '#', or by ADDR like specified in 'break'
453: command.
454:
455: 'cond #NUMBER [ CONDITION COMMANDS ]'
456: Set or delete a condition for the break point specified by the
457: NUMBER. If the CONDITION and COMMANDS are null, the condition is
458: deleted. Otherwise the condition is set for it. When the break
459: point is hit, the CONDITION is evaluated. The COMMANDS will be
460: executed if the condition is true and the break point count set by
461: a break point command becomes zero. COMMANDS is a list of commands
462: separated by semicolons. Each command in the list is executed in
463: that order, but if a 'continue' command is executed, the command
464: execution stops there, and the stopped thread resumes execution.
465: If the command execution reaches the end of the list, and it enters
466: into a command input mode. For example,
467:
468: set $work0 0
469: break/Tu xxx_start $task7.0
470: cond #1 (1) set $work0 1; set $work1 0; cont
471: break/T vm_fault $task7.0
472: cond #2 ($work0) set $work1 ($work1+1); cont
473: break/Tu xxx_end $task7.0
474: cond #3 ($work0) print $work1 " faults\n"; set $work0 0
475: cont
476:
477: will print page fault counts from 'xxx_start' to 'xxx_end' in
478: 'task7'.
479:
480: 'step[/p] [,COUNT]'
481: Single step COUNT times. If 'p' option is specified, print each
482: instruction at each step. Otherwise, only print the last
483: instruction.
484:
485: Warning: depending on machine type, it may not be possible to
486: single-step through some low-level code paths or user space code.
487: On machines with software-emulated single-stepping (e.g., pmax),
488: stepping through code executed by interrupt handlers will probably
489: do the wrong thing.
490:
491: 'continue[/c]'
492: Continue execution until a breakpoint or watchpoint. If '/c',
493: count instructions while executing. Some machines (e.g., pmax)
494: also count loads and stores.
495:
496: Warning: when counting, the debugger is really silently
497: single-stepping. This means that single-stepping on low-level code
498: may cause strange behavior.
499:
500: 'until'
501: Stop at the next call or return instruction.
502:
503: 'next[/p]'
504: Stop at the matching return instruction. If 'p' option is
505: specified, print the call nesting depth and the cumulative
506: instruction count at each call or return. Otherwise, only print
507: when the matching return is hit.
508:
509: 'match[/p]'
510: A synonym for 'next'.
511:
512: 'trace[/tu] [ FRAME_ADDR|THREAD ][,COUNT]'
513: Stack trace. 'u' option traces user space; if omitted, only traces
514: kernel space. If 't' option is specified, it shows the stack trace
515: of the specified thread or a default target thread. Otherwise, it
516: shows the stack trace of the current thread from the frame address
517: specified by a parameter or from the current frame. COUNT is the
518: number of frames to be traced. If the COUNT is omitted, all frames
519: are printed.
520:
521: Warning: If the target thread's stack is not in the main memory at
522: that time, the stack trace will fail. User space stack trace is
523: valid only if the machine dependent code supports it.
524:
525: 'search[/bhl] ADDR VALUE [MASK] [,COUNT]'
526: Search memory for a value. This command might fail in interesting
527: ways if it doesn't find the searched-for value. This is because
528: 'ddb' doesn't always recover from touching bad memory. The
529: optional count argument limits the search.
530:
531: 'macro NAME COMMANDS'
532: Define a debugger macro as NAME. COMMANDS is a list of commands to
533: be associated with the macro. In the expressions of the command
534: list, a variable '$argxx' can be used to get a parameter passed to
535: the macro. When a macro is called, each argument is evaluated as
536: an expression, and the value is assigned to each parameter,
537: '$arg1', '$arg2', ... respectively. 10 '$arg' variables are
538: reserved to each level of macros, and they can be used as local
539: variables. The nesting of macro can be allowed up to 5 levels.
540: For example,
541:
542: macro xinit set $work0 $arg1
543: macro xlist examine/m $work0,4; set $work0 *($work0)
544: xinit *(xxx_list)
545: xlist
546: ...
547:
548: will print the contents of a list starting from 'xxx_list' by each
549: 'xlist' command.
550:
551: 'dmacro NAME'
552: Delete the macro named NAME.
553:
554: 'show all threads[/ul]'
555: Display all tasks and threads information. This version of 'ddb'
556: prints more information than previous one. It shows UNIX process
557: information like 'ps' for each task. The UNIX process information
558: may not be shown if it is not supported in the machine, or the
559: bottom of the stack of the target task is not in the main memory at
560: that time. It also shows task and thread identification numbers.
561: These numbers can be used to specify a task or a thread
562: symbolically in various commands. The numbers are valid only in
563: the same debugger session. If the execution is resumed again, the
564: numbers may change. The current thread can be distinguished from
565: others by a '#' after the thread id instead of ':'. Without 'l'
566: option, it only shows thread id, thread structure address and the
1.1.1.2 root 567: status for each thread. The status consists of 6 letters, R(run),
568: W(wait), S(suspended), O(swapped out), N(interruptible), and
569: F(loating) point arithmetic used (if supported by the platform).
570: If the corresponding status bit is off, '.' is printed instead. If
571: 'l' option is specified, more detail information is printed for
572: each thread.
1.1 root 573:
574: 'show task [ ADDR ]'
575: Display the information of a task specified by ADDR. If ADDR is
576: omitted, current task information is displayed.
577:
578: 'show thread [ ADDR ]'
579: Display the information of a thread specified by ADDR. If ADDR is
580: omitted, current thread information is displayed.
581:
582: 'show registers[/tu [ THREAD ]]'
583: Display the register set. Target thread can be specified with 't'
584: option and THREAD parameter. If 'u' option is specified, it
585: displays user registers instead of kernel or currently saved one.
586:
587: Warning: The support of 't' and 'u' option depends on the machine.
588: If not supported, incorrect information will be displayed.
589:
590: 'show map ADDR'
591: Prints the 'vm_map' at ADDR.
592:
593: 'show object ADDR'
594: Prints the 'vm_object' at ADDR.
595:
596: 'show page ADDR'
597: Prints the 'vm_page' structure at ADDR.
598:
599: 'show port ADDR'
600: Prints the 'ipc_port' structure at ADDR.
601:
602: 'show ipc_port[/t [ THREAD ]]'
603: Prints all 'ipc_port' structure's addresses the target thread has.
604: The target thread is a current thread or that specified by a
605: parameter.
606:
607: 'show macro [ NAME ]'
608: Show the definitions of macros. If NAME is specified, only the
609: definition of it is displayed. Otherwise, definitions of all
610: macros are displayed.
611:
612: 'show watches'
613: Displays all watchpoints.
614:
615: 'watch[/T] ADDR,SIZE [ TASK ]'
616: Set a watchpoint for a region. Execution stops when an attempt to
617: modify the region occurs. The SIZE argument defaults to 4.
618: Without 'T' option, ADDR is assumed to be a kernel address. If you
619: want to set a watch point in user space, specify 'T' and TASK
620: parameter where the address belongs to. If the TASK parameter is
621: omitted, a task of the default target thread or a current task is
622: assumed. If you specify a wrong space address, the request is
623: rejected with an error message.
624:
625: Warning: Attempts to watch wired kernel memory may cause
626: unrecoverable error in some systems such as i386. Watchpoints on
627: user addresses work best.
628:
629: 'dwatch[/T] ADDR [ TASK ]'
630: Clears a watchpoint previously set for a region. Without 'T'
631: option, ADDR is assumed to be a kernel address. If you want to
632: clear a watch point in user space, specify 'T' and TASK parameter
633: where the address belongs to. If the TASK parameter is omitted, a
634: task of the default target thread or a current task is assumed. If
635: you specify a wrong space address, the request is rejected with an
636: error message.
637:
638:
639: File: mach.info, Node: Variables, Next: Expressions, Prev: Commands, Up: Kernel Debugger
640:
641: 11.3 Variables
642: ==============
643:
644: The debugger accesses registers and variables as $NAME. Register names
645: are as in the 'show registers' command. Some variables are suffixed
646: with numbers, and may have some modifier following a colon immediately
647: after the variable name. For example, register variables can have 'u'
648: and 't' modifier to indicate user register and that of a default target
649: thread instead of that of the current thread (e.g. '$eax:tu').
650:
651: Built-in variables currently supported are:
652:
653: 'taskXX[.YY]'
654: Task or thread structure address. XX and YY are task and thread
655: identification numbers printed by a 'show all threads' command
656: respectively. This variable is read only.
657:
658: 'thread'
659: The default target thread. The value is used when 't' option is
660: specified without explicit thread structure address parameter in
661: command lines or expression evaluation.
662:
663: 'radix'
664: Input and output radix
665:
666: 'maxoff'
667: Addresses are printed as SYMBOL+OFFSET unless offset is greater
668: than maxoff.
669:
670: 'maxwidth'
671: The width of the displayed line.
672:
673: 'lines'
674: The number of lines. It is used by 'more' feature.
675:
676: 'tabstops'
677: Tab stop width.
678:
679: 'argXX'
680: Parameters passed to a macro. XX can be 1 to 10.
681:
682: 'workXX'
683: Work variable. XX can be 0 to 31.
684:
685:
686: File: mach.info, Node: Expressions, Prev: Variables, Up: Kernel Debugger
687:
688: 11.4 Expressions
689: ================
690:
691: Almost all expression operators in C are supported except '~', '^', and
692: unary '&'. Special rules in 'ddb' are:
693:
694: 'IDENTIFIER'
695: name of a symbol. It is translated to the address(or value) of it.
696: '.' and ':' can be used in the identifier. If supported by an
697: object format dependent routine, [FILE_NAME:]FUNC[:LINE_NUMBER]
698: [FILE_NAME:]VARIABLE, and FILE_NAME[:LINE_NUMBER] can be accepted
699: as a symbol. The symbol may be prefixed with 'SYMBOL_TABLE_NAME::'
700: like 'emulator::mach_msg_trap' to specify other than kernel
701: symbols.
702:
703: 'NUMBER'
704: radix is determined by the first two letters:
705: '0x'
706: hex
707: '0o'
708: octal
709: '0t'
710: decimal
711:
712: otherwise, follow current radix.
713:
714: '.'
715: dot
716:
717: '+'
718: next
719:
720: '..'
721: address of the start of the last line examined. Unlike dot or
722: next, this is only changed by 'examine' or 'write' command.
723:
724: '�'
725: last address explicitly specified.
726:
727: '$VARIABLE'
728: register name or variable. It is translated to the value of it.
729: It may be followed by a ':' and modifiers as described above.
730:
731: 'a'
732: multiple of right hand side.
733:
734: '*EXPR'
735: indirection. It may be followed by a ':' and modifiers as
736: described above.
737:
738:
739: File: mach.info, Node: Copying, Next: Documentation License, Prev: Kernel Debugger, Up: Top
740:
741: GNU General Public License
742: **************************
743:
744: Version 2, June 1991
745:
746: Copyright (C) 1989, 1991 Free Software Foundation, Inc.
747: 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
748:
749: Everyone is permitted to copy and distribute verbatim copies
750: of this license document, but changing it is not allowed.
751:
752: Preamble
753: ========
754:
755: The licenses for most software are designed to take away your freedom to
756: share and change it. By contrast, the GNU General Public License is
757: intended to guarantee your freedom to share and change free software--to
758: make sure the software is free for all its users. This General Public
759: License applies to most of the Free Software Foundation's software and
760: to any other program whose authors commit to using it. (Some other Free
761: Software Foundation software is covered by the GNU Lesser General Public
762: License instead.) You can apply it to your programs, too.
763:
764: When we speak of free software, we are referring to freedom, not
765: price. Our General Public Licenses are designed to make sure that you
766: have the freedom to distribute copies of free software (and charge for
767: this service if you wish), that you receive source code or can get it if
768: you want it, that you can change the software or use pieces of it in new
769: free programs; and that you know you can do these things.
770:
771: To protect your rights, we need to make restrictions that forbid
772: anyone to deny you these rights or to ask you to surrender the rights.
773: These restrictions translate to certain responsibilities for you if you
774: distribute copies of the software, or if you modify it.
775:
776: For example, if you distribute copies of such a program, whether
777: gratis or for a fee, you must give the recipients all the rights that
778: you have. You must make sure that they, too, receive or can get the
779: source code. And you must show them these terms so they know their
780: rights.
781:
782: We protect your rights with two steps: (1) copyright the software,
783: and (2) offer you this license which gives you legal permission to copy,
784: distribute and/or modify the software.
785:
786: Also, for each author's protection and ours, we want to make certain
787: that everyone understands that there is no warranty for this free
788: software. If the software is modified by someone else and passed on, we
789: want its recipients to know that what they have is not the original, so
790: that any problems introduced by others will not reflect on the original
791: authors' reputations.
792:
793: Finally, any free program is threatened constantly by software
794: patents. We wish to avoid the danger that redistributors of a free
795: program will individually obtain patent licenses, in effect making the
796: program proprietary. To prevent this, we have made it clear that any
797: patent must be licensed for everyone's free use or not licensed at all.
798:
799: The precise terms and conditions for copying, distribution and
800: modification follow.
801:
802: TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
803: ===============================================================
804:
805: 0. This License applies to any program or other work which contains a
806: notice placed by the copyright holder saying it may be distributed
807: under the terms of this General Public License. The "Program",
808: below, refers to any such program or work, and a "work based on the
809: Program" means either the Program or any derivative work under
810: copyright law: that is to say, a work containing the Program or a
811: portion of it, either verbatim or with modifications and/or
812: translated into another language. (Hereinafter, translation is
813: included without limitation in the term "modification".) Each
814: licensee is addressed as "you".
815:
816: Activities other than copying, distribution and modification are
817: not covered by this License; they are outside its scope. The act
818: of running the Program is not restricted, and the output from the
819: Program is covered only if its contents constitute a work based on
820: the Program (independent of having been made by running the
821: Program). Whether that is true depends on what the Program does.
822:
823: 1. You may copy and distribute verbatim copies of the Program's source
824: code as you receive it, in any medium, provided that you
825: conspicuously and appropriately publish on each copy an appropriate
826: copyright notice and disclaimer of warranty; keep intact all the
827: notices that refer to this License and to the absence of any
828: warranty; and give any other recipients of the Program a copy of
829: this License along with the Program.
830:
831: You may charge a fee for the physical act of transferring a copy,
832: and you may at your option offer warranty protection in exchange
833: for a fee.
834:
835: 2. You may modify your copy or copies of the Program or any portion of
836: it, thus forming a work based on the Program, and copy and
837: distribute such modifications or work under the terms of Section 1
838: above, provided that you also meet all of these conditions:
839:
840: a. You must cause the modified files to carry prominent notices
841: stating that you changed the files and the date of any change.
842:
843: b. You must cause any work that you distribute or publish, that
844: in whole or in part contains or is derived from the Program or
845: any part thereof, to be licensed as a whole at no charge to
846: all third parties under the terms of this License.
847:
848: c. If the modified program normally reads commands interactively
849: when run, you must cause it, when started running for such
850: interactive use in the most ordinary way, to print or display
851: an announcement including an appropriate copyright notice and
852: a notice that there is no warranty (or else, saying that you
853: provide a warranty) and that users may redistribute the
854: program under these conditions, and telling the user how to
855: view a copy of this License. (Exception: if the Program
856: itself is interactive but does not normally print such an
857: announcement, your work based on the Program is not required
858: to print an announcement.)
859:
860: These requirements apply to the modified work as a whole. If
861: identifiable sections of that work are not derived from the
862: Program, and can be reasonably considered independent and separate
863: works in themselves, then this License, and its terms, do not apply
864: to those sections when you distribute them as separate works. But
865: when you distribute the same sections as part of a whole which is a
866: work based on the Program, the distribution of the whole must be on
867: the terms of this License, whose permissions for other licensees
868: extend to the entire whole, and thus to each and every part
869: regardless of who wrote it.
870:
871: Thus, it is not the intent of this section to claim rights or
872: contest your rights to work written entirely by you; rather, the
873: intent is to exercise the right to control the distribution of
874: derivative or collective works based on the Program.
875:
876: In addition, mere aggregation of another work not based on the
877: Program with the Program (or with a work based on the Program) on a
878: volume of a storage or distribution medium does not bring the other
879: work under the scope of this License.
880:
881: 3. You may copy and distribute the Program (or a work based on it,
882: under Section 2) in object code or executable form under the terms
883: of Sections 1 and 2 above provided that you also do one of the
884: following:
885:
886: a. Accompany it with the complete corresponding machine-readable
887: source code, which must be distributed under the terms of
888: Sections 1 and 2 above on a medium customarily used for
889: software interchange; or,
890:
891: b. Accompany it with a written offer, valid for at least three
892: years, to give any third party, for a charge no more than your
893: cost of physically performing source distribution, a complete
894: machine-readable copy of the corresponding source code, to be
895: distributed under the terms of Sections 1 and 2 above on a
896: medium customarily used for software interchange; or,
897:
898: c. Accompany it with the information you received as to the offer
899: to distribute corresponding source code. (This alternative is
900: allowed only for noncommercial distribution and only if you
901: received the program in object code or executable form with
902: such an offer, in accord with Subsection b above.)
903:
904: The source code for a work means the preferred form of the work for
905: making modifications to it. For an executable work, complete
906: source code means all the source code for all modules it contains,
907: plus any associated interface definition files, plus the scripts
908: used to control compilation and installation of the executable.
909: However, as a special exception, the source code distributed need
910: not include anything that is normally distributed (in either source
911: or binary form) with the major components (compiler, kernel, and so
912: on) of the operating system on which the executable runs, unless
913: that component itself accompanies the executable.
914:
915: If distribution of executable or object code is made by offering
916: access to copy from a designated place, then offering equivalent
917: access to copy the source code from the same place counts as
918: distribution of the source code, even though third parties are not
919: compelled to copy the source along with the object code.
920:
921: 4. You may not copy, modify, sublicense, or distribute the Program
922: except as expressly provided under this License. Any attempt
923: otherwise to copy, modify, sublicense or distribute the Program is
924: void, and will automatically terminate your rights under this
925: License. However, parties who have received copies, or rights,
926: from you under this License will not have their licenses terminated
927: so long as such parties remain in full compliance.
928:
929: 5. You are not required to accept this License, since you have not
930: signed it. However, nothing else grants you permission to modify
931: or distribute the Program or its derivative works. These actions
932: are prohibited by law if you do not accept this License.
933: Therefore, by modifying or distributing the Program (or any work
934: based on the Program), you indicate your acceptance of this License
935: to do so, and all its terms and conditions for copying,
936: distributing or modifying the Program or works based on it.
937:
938: 6. Each time you redistribute the Program (or any work based on the
939: Program), the recipient automatically receives a license from the
940: original licensor to copy, distribute or modify the Program subject
941: to these terms and conditions. You may not impose any further
942: restrictions on the recipients' exercise of the rights granted
943: herein. You are not responsible for enforcing compliance by third
944: parties to this License.
945:
946: 7. If, as a consequence of a court judgment or allegation of patent
947: infringement or for any other reason (not limited to patent
948: issues), conditions are imposed on you (whether by court order,
949: agreement or otherwise) that contradict the conditions of this
950: License, they do not excuse you from the conditions of this
951: License. If you cannot distribute so as to satisfy simultaneously
952: your obligations under this License and any other pertinent
953: obligations, then as a consequence you may not distribute the
954: Program at all. For example, if a patent license would not permit
955: royalty-free redistribution of the Program by all those who receive
956: copies directly or indirectly through you, then the only way you
957: could satisfy both it and this License would be to refrain entirely
958: from distribution of the Program.
959:
960: If any portion of this section is held invalid or unenforceable
961: under any particular circumstance, the balance of the section is
962: intended to apply and the section as a whole is intended to apply
963: in other circumstances.
964:
965: It is not the purpose of this section to induce you to infringe any
966: patents or other property right claims or to contest validity of
967: any such claims; this section has the sole purpose of protecting
968: the integrity of the free software distribution system, which is
969: implemented by public license practices. Many people have made
970: generous contributions to the wide range of software distributed
971: through that system in reliance on consistent application of that
972: system; it is up to the author/donor to decide if he or she is
973: willing to distribute software through any other system and a
974: licensee cannot impose that choice.
975:
976: This section is intended to make thoroughly clear what is believed
977: to be a consequence of the rest of this License.
978:
979: 8. If the distribution and/or use of the Program is restricted in
980: certain countries either by patents or by copyrighted interfaces,
981: the original copyright holder who places the Program under this
982: License may add an explicit geographical distribution limitation
983: excluding those countries, so that distribution is permitted only
984: in or among countries not thus excluded. In such case, this
985: License incorporates the limitation as if written in the body of
986: this License.
987:
988: 9. The Free Software Foundation may publish revised and/or new
989: versions of the General Public License from time to time. Such new
990: versions will be similar in spirit to the present version, but may
991: differ in detail to address new problems or concerns.
992:
993: Each version is given a distinguishing version number. If the
994: Program specifies a version number of this License which applies to
995: it and "any later version", you have the option of following the
996: terms and conditions either of that version or of any later version
997: published by the Free Software Foundation. If the Program does not
998: specify a version number of this License, you may choose any
999: version ever published by the Free Software Foundation.
1000:
1001: 10. If you wish to incorporate parts of the Program into other free
1002: programs whose distribution conditions are different, write to the
1003: author to ask for permission. For software which is copyrighted by
1004: the Free Software Foundation, write to the Free Software
1005: Foundation; we sometimes make exceptions for this. Our decision
1006: will be guided by the two goals of preserving the free status of
1007: all derivatives of our free software and of promoting the sharing
1008: and reuse of software generally.
1009:
1010: 11. NO WARRANTY
1011:
1012: BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
1013: WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
1014: LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
1015: AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
1016: OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
1017: LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
1018: FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
1019: PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
1020: DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
1021: OR CORRECTION.
1022:
1023: 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
1024: WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
1025: MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
1026: LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
1027: INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
1028: INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
1029: DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
1030: OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
1031: OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
1032: ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
1033:
1034: END OF TERMS AND CONDITIONS
1035:
1036: Appendix: How to Apply These Terms to Your New Programs
1037: =======================================================
1038:
1039: If you develop a new program, and you want it to be of the greatest
1040: possible use to the public, the best way to achieve this is to make it
1041: free software which everyone can redistribute and change under these
1042: terms.
1043:
1044: To do so, attach the following notices to the program. It is safest
1045: to attach them to the start of each source file to most effectively
1046: convey the exclusion of warranty; and each file should have at least the
1047: "copyright" line and a pointer to where the full notice is found.
1048:
1049: ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
1050: Copyright (C) YYYY NAME OF AUTHOR
1051:
1052: This program is free software; you can redistribute it and/or modify
1053: it under the terms of the GNU General Public License as published by
1054: the Free Software Foundation; either version 2 of the License, or
1055: (at your option) any later version.
1056:
1057: This program is distributed in the hope that it will be useful,
1058: but WITHOUT ANY WARRANTY; without even the implied warranty of
1059: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1060: GNU General Public License for more details.
1061:
1062: You should have received a copy of the GNU General Public License
1063: along with this program; if not, write to the Free Software
1064: Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
1065:
1066: Also add information on how to contact you by electronic and paper
1067: mail.
1068:
1069: If the program is interactive, make it output a short notice like
1070: this when it starts in an interactive mode:
1071:
1072: Gnomovision version 69, Copyright (C) YEAR NAME OF AUTHOR
1073: Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
1074: This is free software, and you are welcome to redistribute it
1075: under certain conditions; type `show c' for details.
1076:
1077: The hypothetical commands 'show w' and 'show c' should show the
1078: appropriate parts of the General Public License. Of course, the
1079: commands you use may be called something other than 'show w' and 'show
1080: c'; they could even be mouse-clicks or menu items--whatever suits your
1081: program.
1082:
1083: You should also get your employer (if you work as a programmer) or
1084: your school, if any, to sign a "copyright disclaimer" for the program,
1085: if necessary. Here is a sample; alter the names:
1086:
1087: Yoyodyne, Inc., hereby disclaims all copyright interest in the program
1088: `Gnomovision' (which makes passes at compilers) written by James Hacker.
1089:
1090: SIGNATURE OF TY COON, 1 April 1989
1091: Ty Coon, President of Vice
1092:
1093: This General Public License does not permit incorporating your
1094: program into proprietary programs. If your program is a subroutine
1095: library, you may consider it more useful to permit linking proprietary
1096: applications with the library. If this is what you want to do, use the
1097: GNU Lesser General Public License instead of this License.
1098:
1099:
1100: File: mach.info, Node: Documentation License, Next: Concept Index, Prev: Copying, Up: Top
1101:
1102: Appendix A Documentation License
1103: ********************************
1104:
1105: This manual is copyrighted and licensed under the GNU Free Documentation
1106: license.
1107:
1108: Parts of this manual are derived from the Mach manual packages
1109: originally provided by Carnegie Mellon University.
1110:
1111: * Menu:
1112:
1113: * GNU Free Documentation License:: The GNU Free Documentation License.
1114: * CMU License:: The CMU license applies to the original Mach
1115: kernel and its documentation.
1116:
1117:
1118: File: mach.info, Node: GNU Free Documentation License, Next: CMU License, Up: Documentation License
1119:
1120: A.1 GNU Free Documentation License
1121: ==================================
1122:
1123: Version 1.2, November 2002
1124:
1125: Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
1126: 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
1127:
1128: Everyone is permitted to copy and distribute verbatim copies
1129: of this license document, but changing it is not allowed.
1130:
1131: 0. PREAMBLE
1132:
1133: The purpose of this License is to make a manual, textbook, or other
1134: functional and useful document "free" in the sense of freedom: to
1135: assure everyone the effective freedom to copy and redistribute it,
1136: with or without modifying it, either commercially or
1137: noncommercially. Secondarily, this License preserves for the
1138: author and publisher a way to get credit for their work, while not
1139: being considered responsible for modifications made by others.
1140:
1141: This License is a kind of "copyleft", which means that derivative
1142: works of the document must themselves be free in the same sense.
1143: It complements the GNU General Public License, which is a copyleft
1144: license designed for free software.
1145:
1146: We have designed this License in order to use it for manuals for
1147: free software, because free software needs free documentation: a
1148: free program should come with manuals providing the same freedoms
1149: that the software does. But this License is not limited to
1150: software manuals; it can be used for any textual work, regardless
1151: of subject matter or whether it is published as a printed book. We
1152: recommend this License principally for works whose purpose is
1153: instruction or reference.
1154:
1155: 1. APPLICABILITY AND DEFINITIONS
1156:
1157: This License applies to any manual or other work, in any medium,
1158: that contains a notice placed by the copyright holder saying it can
1159: be distributed under the terms of this License. Such a notice
1160: grants a world-wide, royalty-free license, unlimited in duration,
1161: to use that work under the conditions stated herein. The
1162: "Document", below, refers to any such manual or work. Any member
1163: of the public is a licensee, and is addressed as "you". You accept
1164: the license if you copy, modify or distribute the work in a way
1165: requiring permission under copyright law.
1166:
1167: A "Modified Version" of the Document means any work containing the
1168: Document or a portion of it, either copied verbatim, or with
1169: modifications and/or translated into another language.
1170:
1171: A "Secondary Section" is a named appendix or a front-matter section
1172: of the Document that deals exclusively with the relationship of the
1173: publishers or authors of the Document to the Document's overall
1174: subject (or to related matters) and contains nothing that could
1175: fall directly within that overall subject. (Thus, if the Document
1176: is in part a textbook of mathematics, a Secondary Section may not
1177: explain any mathematics.) The relationship could be a matter of
1178: historical connection with the subject or with related matters, or
1179: of legal, commercial, philosophical, ethical or political position
1180: regarding them.
1181:
1182: The "Invariant Sections" are certain Secondary Sections whose
1183: titles are designated, as being those of Invariant Sections, in the
1184: notice that says that the Document is released under this License.
1185: If a section does not fit the above definition of Secondary then it
1186: is not allowed to be designated as Invariant. The Document may
1187: contain zero Invariant Sections. If the Document does not identify
1188: any Invariant Sections then there are none.
1189:
1190: The "Cover Texts" are certain short passages of text that are
1191: listed, as Front-Cover Texts or Back-Cover Texts, in the notice
1192: that says that the Document is released under this License. A
1193: Front-Cover Text may be at most 5 words, and a Back-Cover Text may
1194: be at most 25 words.
1195:
1196: A "Transparent" copy of the Document means a machine-readable copy,
1197: represented in a format whose specification is available to the
1198: general public, that is suitable for revising the document
1199: straightforwardly with generic text editors or (for images composed
1200: of pixels) generic paint programs or (for drawings) some widely
1201: available drawing editor, and that is suitable for input to text
1202: formatters or for automatic translation to a variety of formats
1203: suitable for input to text formatters. A copy made in an otherwise
1204: Transparent file format whose markup, or absence of markup, has
1205: been arranged to thwart or discourage subsequent modification by
1206: readers is not Transparent. An image format is not Transparent if
1207: used for any substantial amount of text. A copy that is not
1208: "Transparent" is called "Opaque".
1209:
1210: Examples of suitable formats for Transparent copies include plain
1211: ASCII without markup, Texinfo input format, LaTeX input format,
1212: SGML or XML using a publicly available DTD, and standard-conforming
1213: simple HTML, PostScript or PDF designed for human modification.
1214: Examples of transparent image formats include PNG, XCF and JPG.
1215: Opaque formats include proprietary formats that can be read and
1216: edited only by proprietary word processors, SGML or XML for which
1217: the DTD and/or processing tools are not generally available, and
1218: the machine-generated HTML, PostScript or PDF produced by some word
1219: processors for output purposes only.
1220:
1221: The "Title Page" means, for a printed book, the title page itself,
1222: plus such following pages as are needed to hold, legibly, the
1223: material this License requires to appear in the title page. For
1224: works in formats which do not have any title page as such, "Title
1225: Page" means the text near the most prominent appearance of the
1226: work's title, preceding the beginning of the body of the text.
1227:
1228: A section "Entitled XYZ" means a named subunit of the Document
1229: whose title either is precisely XYZ or contains XYZ in parentheses
1230: following text that translates XYZ in another language. (Here XYZ
1231: stands for a specific section name mentioned below, such as
1232: "Acknowledgements", "Dedications", "Endorsements", or "History".)
1233: To "Preserve the Title" of such a section when you modify the
1234: Document means that it remains a section "Entitled XYZ" according
1235: to this definition.
1236:
1237: The Document may include Warranty Disclaimers next to the notice
1238: which states that this License applies to the Document. These
1239: Warranty Disclaimers are considered to be included by reference in
1240: this License, but only as regards disclaiming warranties: any other
1241: implication that these Warranty Disclaimers may have is void and
1242: has no effect on the meaning of this License.
1243:
1244: 2. VERBATIM COPYING
1245:
1246: You may copy and distribute the Document in any medium, either
1247: commercially or noncommercially, provided that this License, the
1248: copyright notices, and the license notice saying this License
1249: applies to the Document are reproduced in all copies, and that you
1250: add no other conditions whatsoever to those of this License. You
1251: may not use technical measures to obstruct or control the reading
1252: or further copying of the copies you make or distribute. However,
1253: you may accept compensation in exchange for copies. If you
1254: distribute a large enough number of copies you must also follow the
1255: conditions in section 3.
1256:
1257: You may also lend copies, under the same conditions stated above,
1258: and you may publicly display copies.
1259:
1260: 3. COPYING IN QUANTITY
1261:
1262: If you publish printed copies (or copies in media that commonly
1263: have printed covers) of the Document, numbering more than 100, and
1264: the Document's license notice requires Cover Texts, you must
1265: enclose the copies in covers that carry, clearly and legibly, all
1266: these Cover Texts: Front-Cover Texts on the front cover, and
1267: Back-Cover Texts on the back cover. Both covers must also clearly
1268: and legibly identify you as the publisher of these copies. The
1269: front cover must present the full title with all words of the title
1270: equally prominent and visible. You may add other material on the
1271: covers in addition. Copying with changes limited to the covers, as
1272: long as they preserve the title of the Document and satisfy these
1273: conditions, can be treated as verbatim copying in other respects.
1274:
1275: If the required texts for either cover are too voluminous to fit
1276: legibly, you should put the first ones listed (as many as fit
1277: reasonably) on the actual cover, and continue the rest onto
1278: adjacent pages.
1279:
1280: If you publish or distribute Opaque copies of the Document
1281: numbering more than 100, you must either include a machine-readable
1282: Transparent copy along with each Opaque copy, or state in or with
1283: each Opaque copy a computer-network location from which the general
1284: network-using public has access to download using public-standard
1285: network protocols a complete Transparent copy of the Document, free
1286: of added material. If you use the latter option, you must take
1287: reasonably prudent steps, when you begin distribution of Opaque
1288: copies in quantity, to ensure that this Transparent copy will
1289: remain thus accessible at the stated location until at least one
1290: year after the last time you distribute an Opaque copy (directly or
1291: through your agents or retailers) of that edition to the public.
1292:
1293: It is requested, but not required, that you contact the authors of
1294: the Document well before redistributing any large number of copies,
1295: to give them a chance to provide you with an updated version of the
1296: Document.
1297:
1298: 4. MODIFICATIONS
1299:
1300: You may copy and distribute a Modified Version of the Document
1301: under the conditions of sections 2 and 3 above, provided that you
1302: release the Modified Version under precisely this License, with the
1303: Modified Version filling the role of the Document, thus licensing
1304: distribution and modification of the Modified Version to whoever
1305: possesses a copy of it. In addition, you must do these things in
1306: the Modified Version:
1307:
1308: A. Use in the Title Page (and on the covers, if any) a title
1309: distinct from that of the Document, and from those of previous
1310: versions (which should, if there were any, be listed in the
1311: History section of the Document). You may use the same title
1312: as a previous version if the original publisher of that
1313: version gives permission.
1314:
1315: B. List on the Title Page, as authors, one or more persons or
1316: entities responsible for authorship of the modifications in
1317: the Modified Version, together with at least five of the
1318: principal authors of the Document (all of its principal
1319: authors, if it has fewer than five), unless they release you
1320: from this requirement.
1321:
1322: C. State on the Title page the name of the publisher of the
1323: Modified Version, as the publisher.
1324:
1325: D. Preserve all the copyright notices of the Document.
1326:
1327: E. Add an appropriate copyright notice for your modifications
1328: adjacent to the other copyright notices.
1329:
1330: F. Include, immediately after the copyright notices, a license
1331: notice giving the public permission to use the Modified
1332: Version under the terms of this License, in the form shown in
1333: the Addendum below.
1334:
1335: G. Preserve in that license notice the full lists of Invariant
1336: Sections and required Cover Texts given in the Document's
1337: license notice.
1338:
1339: H. Include an unaltered copy of this License.
1340:
1341: I. Preserve the section Entitled "History", Preserve its Title,
1342: and add to it an item stating at least the title, year, new
1343: authors, and publisher of the Modified Version as given on the
1344: Title Page. If there is no section Entitled "History" in the
1345: Document, create one stating the title, year, authors, and
1346: publisher of the Document as given on its Title Page, then add
1347: an item describing the Modified Version as stated in the
1348: previous sentence.
1349:
1350: J. Preserve the network location, if any, given in the Document
1351: for public access to a Transparent copy of the Document, and
1352: likewise the network locations given in the Document for
1353: previous versions it was based on. These may be placed in the
1354: "History" section. You may omit a network location for a work
1355: that was published at least four years before the Document
1356: itself, or if the original publisher of the version it refers
1357: to gives permission.
1358:
1359: K. For any section Entitled "Acknowledgements" or "Dedications",
1360: Preserve the Title of the section, and preserve in the section
1361: all the substance and tone of each of the contributor
1362: acknowledgements and/or dedications given therein.
1363:
1364: L. Preserve all the Invariant Sections of the Document, unaltered
1365: in their text and in their titles. Section numbers or the
1366: equivalent are not considered part of the section titles.
1367:
1368: M. Delete any section Entitled "Endorsements". Such a section
1369: may not be included in the Modified Version.
1370:
1371: N. Do not retitle any existing section to be Entitled
1372: "Endorsements" or to conflict in title with any Invariant
1373: Section.
1374:
1375: O. Preserve any Warranty Disclaimers.
1376:
1377: If the Modified Version includes new front-matter sections or
1378: appendices that qualify as Secondary Sections and contain no
1379: material copied from the Document, you may at your option designate
1380: some or all of these sections as invariant. To do this, add their
1381: titles to the list of Invariant Sections in the Modified Version's
1382: license notice. These titles must be distinct from any other
1383: section titles.
1384:
1385: You may add a section Entitled "Endorsements", provided it contains
1386: nothing but endorsements of your Modified Version by various
1387: parties--for example, statements of peer review or that the text
1388: has been approved by an organization as the authoritative
1389: definition of a standard.
1390:
1391: You may add a passage of up to five words as a Front-Cover Text,
1392: and a passage of up to 25 words as a Back-Cover Text, to the end of
1393: the list of Cover Texts in the Modified Version. Only one passage
1394: of Front-Cover Text and one of Back-Cover Text may be added by (or
1395: through arrangements made by) any one entity. If the Document
1396: already includes a cover text for the same cover, previously added
1397: by you or by arrangement made by the same entity you are acting on
1398: behalf of, you may not add another; but you may replace the old
1399: one, on explicit permission from the previous publisher that added
1400: the old one.
1401:
1402: The author(s) and publisher(s) of the Document do not by this
1403: License give permission to use their names for publicity for or to
1404: assert or imply endorsement of any Modified Version.
1405:
1406: 5. COMBINING DOCUMENTS
1407:
1408: You may combine the Document with other documents released under
1409: this License, under the terms defined in section 4 above for
1410: modified versions, provided that you include in the combination all
1411: of the Invariant Sections of all of the original documents,
1412: unmodified, and list them all as Invariant Sections of your
1413: combined work in its license notice, and that you preserve all
1414: their Warranty Disclaimers.
1415:
1416: The combined work need only contain one copy of this License, and
1417: multiple identical Invariant Sections may be replaced with a single
1418: copy. If there are multiple Invariant Sections with the same name
1419: but different contents, make the title of each such section unique
1420: by adding at the end of it, in parentheses, the name of the
1421: original author or publisher of that section if known, or else a
1422: unique number. Make the same adjustment to the section titles in
1423: the list of Invariant Sections in the license notice of the
1424: combined work.
1425:
1426: In the combination, you must combine any sections Entitled
1427: "History" in the various original documents, forming one section
1428: Entitled "History"; likewise combine any sections Entitled
1429: "Acknowledgements", and any sections Entitled "Dedications". You
1430: must delete all sections Entitled "Endorsements."
1431:
1432: 6. COLLECTIONS OF DOCUMENTS
1433:
1434: You may make a collection consisting of the Document and other
1435: documents released under this License, and replace the individual
1436: copies of this License in the various documents with a single copy
1437: that is included in the collection, provided that you follow the
1438: rules of this License for verbatim copying of each of the documents
1439: in all other respects.
1440:
1441: You may extract a single document from such a collection, and
1442: distribute it individually under this License, provided you insert
1443: a copy of this License into the extracted document, and follow this
1444: License in all other respects regarding verbatim copying of that
1445: document.
1446:
1447: 7. AGGREGATION WITH INDEPENDENT WORKS
1448:
1449: A compilation of the Document or its derivatives with other
1450: separate and independent documents or works, in or on a volume of a
1451: storage or distribution medium, is called an "aggregate" if the
1452: copyright resulting from the compilation is not used to limit the
1453: legal rights of the compilation's users beyond what the individual
1454: works permit. When the Document is included in an aggregate, this
1455: License does not apply to the other works in the aggregate which
1456: are not themselves derivative works of the Document.
1457:
1458: If the Cover Text requirement of section 3 is applicable to these
1459: copies of the Document, then if the Document is less than one half
1460: of the entire aggregate, the Document's Cover Texts may be placed
1461: on covers that bracket the Document within the aggregate, or the
1462: electronic equivalent of covers if the Document is in electronic
1463: form. Otherwise they must appear on printed covers that bracket
1464: the whole aggregate.
1465:
1466: 8. TRANSLATION
1467:
1468: Translation is considered a kind of modification, so you may
1469: distribute translations of the Document under the terms of section
1470: 4. Replacing Invariant Sections with translations requires special
1471: permission from their copyright holders, but you may include
1472: translations of some or all Invariant Sections in addition to the
1473: original versions of these Invariant Sections. You may include a
1474: translation of this License, and all the license notices in the
1475: Document, and any Warranty Disclaimers, provided that you also
1476: include the original English version of this License and the
1477: original versions of those notices and disclaimers. In case of a
1478: disagreement between the translation and the original version of
1479: this License or a notice or disclaimer, the original version will
1480: prevail.
1481:
1482: If a section in the Document is Entitled "Acknowledgements",
1483: "Dedications", or "History", the requirement (section 4) to
1484: Preserve its Title (section 1) will typically require changing the
1485: actual title.
1486:
1487: 9. TERMINATION
1488:
1489: You may not copy, modify, sublicense, or distribute the Document
1490: except as expressly provided for under this License. Any other
1491: attempt to copy, modify, sublicense or distribute the Document is
1492: void, and will automatically terminate your rights under this
1493: License. However, parties who have received copies, or rights,
1494: from you under this License will not have their licenses terminated
1495: so long as such parties remain in full compliance.
1496:
1497: 10. FUTURE REVISIONS OF THIS LICENSE
1498:
1499: The Free Software Foundation may publish new, revised versions of
1500: the GNU Free Documentation License from time to time. Such new
1501: versions will be similar in spirit to the present version, but may
1502: differ in detail to address new problems or concerns. See
1503: <http://www.gnu.org/copyleft/>.
1504:
1505: Each version of the License is given a distinguishing version
1506: number. If the Document specifies that a particular numbered
1507: version of this License "or any later version" applies to it, you
1508: have the option of following the terms and conditions either of
1509: that specified version or of any later version that has been
1510: published (not as a draft) by the Free Software Foundation. If the
1511: Document does not specify a version number of this License, you may
1512: choose any version ever published (not as a draft) by the Free
1513: Software Foundation.
1514:
1515: ADDENDUM: How to use this License for your documents
1516: ====================================================
1517:
1518: To use this License in a document you have written, include a copy of
1519: the License in the document and put the following copyright and license
1520: notices just after the title page:
1521:
1522: Copyright (C) YEAR YOUR NAME.
1523: Permission is granted to copy, distribute and/or modify this document
1524: under the terms of the GNU Free Documentation License, Version 1.2
1525: or any later version published by the Free Software Foundation;
1526: with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
1527: Texts. A copy of the license is included in the section entitled ``GNU
1528: Free Documentation License''.
1529:
1530: If you have Invariant Sections, Front-Cover Texts and Back-Cover
1531: Texts, replace the "with...Texts." line with this:
1532:
1533: with the Invariant Sections being LIST THEIR TITLES, with
1534: the Front-Cover Texts being LIST, and with the Back-Cover Texts
1535: being LIST.
1536:
1537: If you have Invariant Sections without Cover Texts, or some other
1538: combination of the three, merge those two alternatives to suit the
1539: situation.
1540:
1541: If your document contains nontrivial examples of program code, we
1542: recommend releasing these examples in parallel under your choice of free
1543: software license, such as the GNU General Public License, to permit
1544: their use in free software.
1545:
1546:
1547: File: mach.info, Node: CMU License, Prev: GNU Free Documentation License, Up: Documentation License
1548:
1549: A.2 CMU License
1550: ===============
1551:
1552: Mach Operating System
1553: Copyright (C) 1991,1990,1989 Carnegie Mellon University
1554: All Rights Reserved.
1555:
1556: Permission to use, copy, modify and distribute this software and
1557: its documentation is hereby granted, provided that both the
1558: copyright notice and this permission notice appear in all copies of
1559: the software, derivative works or modified versions, and any
1560: portions thereof, and that both notices appear in supporting
1561: documentation.
1562:
1563: CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
1564: CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
1565: ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
1566:
1567: Carnegie Mellon requests users of this software to return to
1568:
1569: Software Distribution Coordinator
1570: School of Computer Science
1571: Carnegie Mellon University
1572: Pittsburgh PA 15213-3890
1573:
1574: or <[email protected]> any improvements or
1575: extensions that they make and grant Carnegie Mellon the rights to
1576: redistribute these changes.
1577:
1578:
1579: File: mach.info, Node: Concept Index, Next: Function and Data Index, Prev: Documentation License, Up: Top
1580:
1581: Concept Index
1582: *************
1583:
1584: