OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [gdb/] [doc/] [gdb.info-5] - Blame information for rev 841

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 342 jeremybenn
This is gdb.info, produced by makeinfo version 4.13 from ./gdb.texinfo.
2 330 jeremybenn
 
3
INFO-DIR-SECTION Software development
4
START-INFO-DIR-ENTRY
5
* Gdb: (gdb).                     The GNU debugger.
6
END-INFO-DIR-ENTRY
7
 
8
   Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
9
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
10
2010 Free Software Foundation, Inc.
11
 
12
   Permission is granted to copy, distribute and/or modify this document
13
under the terms of the GNU Free Documentation License, Version 1.3 or
14
any later version published by the Free Software Foundation; with the
15
Invariant Sections being "Free Software" and "Free Software Needs Free
16
Documentation", with the Front-Cover Texts being "A GNU Manual," and
17
with the Back-Cover Texts as in (a) below.
18
 
19
   (a) The FSF's Back-Cover Text is: "You are free to copy and modify
20
this GNU Manual.  Buying copies from GNU Press supports the FSF in
21
developing GNU and promoting software freedom."
22
 
23
   This file documents the GNU debugger GDB.
24
 
25
   This is the Ninth Edition, of `Debugging with GDB: the GNU
26 512 jeremybenn
Source-Level Debugger' for GDB (GDB) Version 7.2-or32-1.0rc3.
27 330 jeremybenn
 
28
   Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
29
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
30
2010 Free Software Foundation, Inc.
31
 
32
   Permission is granted to copy, distribute and/or modify this document
33
under the terms of the GNU Free Documentation License, Version 1.3 or
34
any later version published by the Free Software Foundation; with the
35
Invariant Sections being "Free Software" and "Free Software Needs Free
36
Documentation", with the Front-Cover Texts being "A GNU Manual," and
37
with the Back-Cover Texts as in (a) below.
38
 
39
   (a) The FSF's Back-Cover Text is: "You are free to copy and modify
40
this GNU Manual.  Buying copies from GNU Press supports the FSF in
41
developing GNU and promoting software freedom."
42
 
43

44
File: gdb.info,  Node: Bytecode Descriptions,  Next: Using Agent Expressions,  Prev: General Bytecode Design,  Up: Agent Expressions
45
 
46
E.2 Bytecode Descriptions
47
=========================
48
 
49
Each bytecode description has the following form:
50
 
51
`add' (0x02): A B => A+B
52
     Pop the top two stack items, A and B, as integers; push their sum,
53
     as an integer.
54
 
55
 
56
   In this example, `add' is the name of the bytecode, and `(0x02)' is
57
the one-byte value used to encode the bytecode, in hexadecimal.  The
58
phrase "A B => A+B" shows the stack before and after the bytecode
59
executes.  Beforehand, the stack must contain at least two values, A
60
and B; since the top of the stack is to the right, B is on the top of
61
the stack, and A is underneath it.  After execution, the bytecode will
62
have popped A and B from the stack, and replaced them with a single
63
value, A+B.  There may be other values on the stack below those shown,
64
but the bytecode affects only those shown.
65
 
66
   Here is another example:
67
 
68
`const8' (0x22) N: => N
69
     Push the 8-bit integer constant N on the stack, without sign
70
     extension.
71
 
72
 
73
   In this example, the bytecode `const8' takes an operand N directly
74
from the bytecode stream; the operand follows the `const8' bytecode
75
itself.  We write any such operands immediately after the name of the
76
bytecode, before the colon, and describe the exact encoding of the
77
operand in the bytecode stream in the body of the bytecode description.
78
 
79
   For the `const8' bytecode, there are no stack items given before the
80
=>; this simply means that the bytecode consumes no values from the
81
stack.  If a bytecode consumes no values, or produces no values, the
82
list on either side of the => may be empty.
83
 
84
   If a value is written as A, B, or N, then the bytecode treats it as
85
an integer.  If a value is written is ADDR, then the bytecode treats it
86
as an address.
87
 
88
   We do not fully describe the floating point operations here; although
89
this design can be extended in a clean way to handle floating point
90
values, they are not of immediate interest to the customer, so we avoid
91
describing them, to save time.
92
 
93
`float' (0x01): =>
94
     Prefix for floating-point bytecodes.  Not implemented yet.
95
 
96
`add' (0x02): A B => A+B
97
     Pop two integers from the stack, and push their sum, as an integer.
98
 
99
`sub' (0x03): A B => A-B
100
     Pop two integers from the stack, subtract the top value from the
101
     next-to-top value, and push the difference.
102
 
103
`mul' (0x04): A B => A*B
104
     Pop two integers from the stack, multiply them, and push the
105
     product on the stack.  Note that, when one multiplies two N-bit
106
     numbers yielding another N-bit number, it is irrelevant whether the
107
     numbers are signed or not; the results are the same.
108
 
109
`div_signed' (0x05): A B => A/B
110
     Pop two signed integers from the stack; divide the next-to-top
111
     value by the top value, and push the quotient.  If the divisor is
112
     zero, terminate with an error.
113
 
114
`div_unsigned' (0x06): A B => A/B
115
     Pop two unsigned integers from the stack; divide the next-to-top
116
     value by the top value, and push the quotient.  If the divisor is
117
     zero, terminate with an error.
118
 
119
`rem_signed' (0x07): A B => A MODULO B
120
     Pop two signed integers from the stack; divide the next-to-top
121
     value by the top value, and push the remainder.  If the divisor is
122
     zero, terminate with an error.
123
 
124
`rem_unsigned' (0x08): A B => A MODULO B
125
     Pop two unsigned integers from the stack; divide the next-to-top
126
     value by the top value, and push the remainder.  If the divisor is
127
     zero, terminate with an error.
128
 
129
`lsh' (0x09): A B => A<
130
     Pop two integers from the stack; let A be the next-to-top value,
131
     and B be the top value.  Shift A left by B bits, and push the
132
     result.
133
 
134
`rsh_signed' (0x0a): A B => `(signed)'A>>B
135
     Pop two integers from the stack; let A be the next-to-top value,
136
     and B be the top value.  Shift A right by B bits, inserting copies
137
     of the top bit at the high end, and push the result.
138
 
139
`rsh_unsigned' (0x0b): A B => A>>B
140
     Pop two integers from the stack; let A be the next-to-top value,
141
     and B be the top value.  Shift A right by B bits, inserting zero
142
     bits at the high end, and push the result.
143
 
144
`log_not' (0x0e): A => !A
145
     Pop an integer from the stack; if it is zero, push the value one;
146
     otherwise, push the value zero.
147
 
148
`bit_and' (0x0f): A B => A&B
149
     Pop two integers from the stack, and push their bitwise `and'.
150
 
151
`bit_or' (0x10): A B => A|B
152
     Pop two integers from the stack, and push their bitwise `or'.
153
 
154
`bit_xor' (0x11): A B => A^B
155
     Pop two integers from the stack, and push their bitwise
156
     exclusive-`or'.
157
 
158
`bit_not' (0x12): A => ~A
159
     Pop an integer from the stack, and push its bitwise complement.
160
 
161
`equal' (0x13): A B => A=B
162
     Pop two integers from the stack; if they are equal, push the value
163
     one; otherwise, push the value zero.
164
 
165
`less_signed' (0x14): A B => A
166
     Pop two signed integers from the stack; if the next-to-top value
167
     is less than the top value, push the value one; otherwise, push
168
     the value zero.
169
 
170
`less_unsigned' (0x15): A B => A
171
     Pop two unsigned integers from the stack; if the next-to-top value
172
     is less than the top value, push the value one; otherwise, push
173
     the value zero.
174
 
175
`ext' (0x16) N: A => A, sign-extended from N bits
176
     Pop an unsigned value from the stack; treating it as an N-bit
177
     twos-complement value, extend it to full length.  This means that
178
     all bits to the left of bit N-1 (where the least significant bit
179
     is bit 0) are set to the value of bit N-1.  Note that N may be
180
     larger than or equal to the width of the stack elements of the
181
     bytecode engine; in this case, the bytecode should have no effect.
182
 
183
     The number of source bits to preserve, N, is encoded as a single
184
     byte unsigned integer following the `ext' bytecode.
185
 
186
`zero_ext' (0x2a) N: A => A, zero-extended from N bits
187
     Pop an unsigned value from the stack; zero all but the bottom N
188
     bits.  This means that all bits to the left of bit N-1 (where the
189
     least significant bit is bit 0) are set to the value of bit N-1.
190
 
191
     The number of source bits to preserve, N, is encoded as a single
192
     byte unsigned integer following the `zero_ext' bytecode.
193
 
194
`ref8' (0x17): ADDR => A
195
`ref16' (0x18): ADDR => A
196
`ref32' (0x19): ADDR => A
197
`ref64' (0x1a): ADDR => A
198
     Pop an address ADDR from the stack.  For bytecode `ref'N, fetch an
199
     N-bit value from ADDR, using the natural target endianness.  Push
200
     the fetched value as an unsigned integer.
201
 
202
     Note that ADDR may not be aligned in any particular way; the
203
     `refN' bytecodes should operate correctly for any address.
204
 
205
     If attempting to access memory at ADDR would cause a processor
206
     exception of some sort, terminate with an error.
207
 
208
`ref_float' (0x1b): ADDR => D
209
`ref_double' (0x1c): ADDR => D
210
`ref_long_double' (0x1d): ADDR => D
211
`l_to_d' (0x1e): A => D
212
`d_to_l' (0x1f): D => A
213
     Not implemented yet.
214
 
215
`dup' (0x28): A => A A
216
     Push another copy of the stack's top element.
217
 
218
`swap' (0x2b): A B => B A
219
     Exchange the top two items on the stack.
220
 
221
`pop' (0x29): A =>
222
     Discard the top value on the stack.
223
 
224
`if_goto' (0x20) OFFSET: A =>
225
     Pop an integer off the stack; if it is non-zero, branch to the
226
     given offset in the bytecode string.  Otherwise, continue to the
227
     next instruction in the bytecode stream.  In other words, if A is
228
     non-zero, set the `pc' register to `start' + OFFSET.  Thus, an
229
     offset of zero denotes the beginning of the expression.
230
 
231
     The OFFSET is stored as a sixteen-bit unsigned value, stored
232
     immediately following the `if_goto' bytecode.  It is always stored
233
     most significant byte first, regardless of the target's normal
234
     endianness.  The offset is not guaranteed to fall at any particular
235
     alignment within the bytecode stream; thus, on machines where
236
     fetching a 16-bit on an unaligned address raises an exception, you
237
     should fetch the offset one byte at a time.
238
 
239
`goto' (0x21) OFFSET: =>
240
     Branch unconditionally to OFFSET; in other words, set the `pc'
241
     register to `start' + OFFSET.
242
 
243
     The offset is stored in the same way as for the `if_goto' bytecode.
244
 
245
`const8' (0x22) N: => N
246
`const16' (0x23) N: => N
247
`const32' (0x24) N: => N
248
`const64' (0x25) N: => N
249
     Push the integer constant N on the stack, without sign extension.
250
     To produce a small negative value, push a small twos-complement
251
     value, and then sign-extend it using the `ext' bytecode.
252
 
253
     The constant N is stored in the appropriate number of bytes
254
     following the `const'B bytecode.  The constant N is always stored
255
     most significant byte first, regardless of the target's normal
256
     endianness.  The constant is not guaranteed to fall at any
257
     particular alignment within the bytecode stream; thus, on machines
258
     where fetching a 16-bit on an unaligned address raises an
259
     exception, you should fetch N one byte at a time.
260
 
261
`reg' (0x26) N: => A
262
     Push the value of register number N, without sign extension.  The
263
     registers are numbered following GDB's conventions.
264
 
265
     The register number N is encoded as a 16-bit unsigned integer
266
     immediately following the `reg' bytecode.  It is always stored most
267
     significant byte first, regardless of the target's normal
268
     endianness.  The register number is not guaranteed to fall at any
269
     particular alignment within the bytecode stream; thus, on machines
270
     where fetching a 16-bit on an unaligned address raises an
271
     exception, you should fetch the register number one byte at a time.
272
 
273
`getv' (0x2c) N: => V
274
     Push the value of trace state variable number N, without sign
275
     extension.
276
 
277
     The variable number N is encoded as a 16-bit unsigned integer
278
     immediately following the `getv' bytecode.  It is always stored
279
     most significant byte first, regardless of the target's normal
280
     endianness.  The variable number is not guaranteed to fall at any
281
     particular alignment within the bytecode stream; thus, on machines
282
     where fetching a 16-bit on an unaligned address raises an
283
     exception, you should fetch the register number one byte at a time.
284
 
285
`setv' (0x2d) N: => V
286
     Set trace state variable number N to the value found on the top of
287
     the stack.  The stack is unchanged, so that the value is readily
288
     available if the assignment is part of a larger expression.  The
289
     handling of N is as described for `getv'.
290
 
291
`trace' (0x0c): ADDR SIZE =>
292
     Record the contents of the SIZE bytes at ADDR in a trace buffer,
293
     for later retrieval by GDB.
294
 
295
`trace_quick' (0x0d) SIZE: ADDR => ADDR
296
     Record the contents of the SIZE bytes at ADDR in a trace buffer,
297
     for later retrieval by GDB.  SIZE is a single byte unsigned
298
     integer following the `trace' opcode.
299
 
300
     This bytecode is equivalent to the sequence `dup const8 SIZE
301
     trace', but we provide it anyway to save space in bytecode strings.
302
 
303
`trace16' (0x30) SIZE: ADDR => ADDR
304
     Identical to trace_quick, except that SIZE is a 16-bit big-endian
305
     unsigned integer, not a single byte.  This should probably have
306
     been named `trace_quick16', for consistency.
307
 
308
`tracev' (0x2e) N: => A
309
     Record the value of trace state variable number N in the trace
310
     buffer.  The handling of N is as described for `getv'.
311
 
312
`end' (0x27): =>
313
     Stop executing bytecode; the result should be the top element of
314
     the stack.  If the purpose of the expression was to compute an
315
     lvalue or a range of memory, then the next-to-top of the stack is
316
     the lvalue's address, and the top of the stack is the lvalue's
317
     size, in bytes.
318
 
319
 
320

321
File: gdb.info,  Node: Using Agent Expressions,  Next: Varying Target Capabilities,  Prev: Bytecode Descriptions,  Up: Agent Expressions
322
 
323
E.3 Using Agent Expressions
324
===========================
325
 
326
Agent expressions can be used in several different ways by GDB, and the
327
debugger can generate different bytecode sequences as appropriate.
328
 
329
   One possibility is to do expression evaluation on the target rather
330
than the host, such as for the conditional of a conditional tracepoint.
331
In such a case, GDB compiles the source expression into a bytecode
332
sequence that simply gets values from registers or memory, does
333
arithmetic, and returns a result.
334
 
335
   Another way to use agent expressions is for tracepoint data
336
collection.  GDB generates a different bytecode sequence for
337
collection; in addition to bytecodes that do the calculation, GDB adds
338
`trace' bytecodes to save the pieces of memory that were used.
339
 
340
   * The user selects trace points in the program's code at which GDB
341
     should collect data.
342
 
343
   * The user specifies expressions to evaluate at each trace point.
344
     These expressions may denote objects in memory, in which case
345
     those objects' contents are recorded as the program runs, or
346
     computed values, in which case the values themselves are recorded.
347
 
348
   * GDB transmits the tracepoints and their associated expressions to
349
     the GDB agent, running on the debugging target.
350
 
351
   * The agent arranges to be notified when a trace point is hit.
352
 
353
   * When execution on the target reaches a trace point, the agent
354
     evaluates the expressions associated with that trace point, and
355
     records the resulting values and memory ranges.
356
 
357
   * Later, when the user selects a given trace event and inspects the
358
     objects and expression values recorded, GDB talks to the agent to
359
     retrieve recorded data as necessary to meet the user's requests.
360
     If the user asks to see an object whose contents have not been
361
     recorded, GDB reports an error.
362
 
363
 
364

365
File: gdb.info,  Node: Varying Target Capabilities,  Next: Rationale,  Prev: Using Agent Expressions,  Up: Agent Expressions
366
 
367
E.4 Varying Target Capabilities
368
===============================
369
 
370
Some targets don't support floating-point, and some would rather not
371
have to deal with `long long' operations.  Also, different targets will
372
have different stack sizes, and different bytecode buffer lengths.
373
 
374
   Thus, GDB needs a way to ask the target about itself.  We haven't
375
worked out the details yet, but in general, GDB should be able to send
376
the target a packet asking it to describe itself.  The reply should be a
377
packet whose length is explicit, so we can add new information to the
378
packet in future revisions of the agent, without confusing old versions
379
of GDB, and it should contain a version number.  It should contain at
380
least the following information:
381
 
382
   * whether floating point is supported
383
 
384
   * whether `long long' is supported
385
 
386
   * maximum acceptable size of bytecode stack
387
 
388
   * maximum acceptable length of bytecode expressions
389
 
390
   * which registers are actually available for collection
391
 
392
   * whether the target supports disabled tracepoints
393
 
394
 
395

396
File: gdb.info,  Node: Rationale,  Prev: Varying Target Capabilities,  Up: Agent Expressions
397
 
398
E.5 Rationale
399
=============
400
 
401
Some of the design decisions apparent above are arguable.
402
 
403
What about stack overflow/underflow?
404
     GDB should be able to query the target to discover its stack size.
405
     Given that information, GDB can determine at translation time
406
     whether a given expression will overflow the stack.  But this spec
407
     isn't about what kinds of error-checking GDB ought to do.
408
 
409
Why are you doing everything in LONGEST?
410
     Speed isn't important, but agent code size is; using LONGEST
411
     brings in a bunch of support code to do things like division, etc.
412
     So this is a serious concern.
413
 
414
     First, note that you don't need different bytecodes for different
415
     operand sizes.  You can generate code without _knowing_ how big the
416
     stack elements actually are on the target.  If the target only
417
     supports 32-bit ints, and you don't send any 64-bit bytecodes,
418
     everything just works.  The observation here is that the MIPS and
419
     the Alpha have only fixed-size registers, and you can still get
420
     C's semantics even though most instructions only operate on
421
     full-sized words.  You just need to make sure everything is
422
     properly sign-extended at the right times.  So there is no need
423
     for 32- and 64-bit variants of the bytecodes.  Just implement
424
     everything using the largest size you support.
425
 
426
     GDB should certainly check to see what sizes the target supports,
427
     so the user can get an error earlier, rather than later.  But this
428
     information is not necessary for correctness.
429
 
430
Why don't you have `>' or `<=' operators?
431
     I want to keep the interpreter small, and we don't need them.  We
432
     can combine the `less_' opcodes with `log_not', and swap the order
433
     of the operands, yielding all four asymmetrical comparison
434
     operators.  For example, `(x <= y)' is `! (x > y)', which is `! (y
435
     < x)'.
436
 
437
Why do you have `log_not'?
438
Why do you have `ext'?
439
Why do you have `zero_ext'?
440
     These are all easily synthesized from other instructions, but I
441
     expect them to be used frequently, and they're simple, so I
442
     include them to keep bytecode strings short.
443
 
444
     `log_not' is equivalent to `const8 0 equal'; it's used in half the
445
     relational operators.
446
 
447
     `ext N' is equivalent to `const8 S-N lsh const8 S-N rsh_signed',
448
     where S is the size of the stack elements; it follows `refM' and
449
     REG bytecodes when the value should be signed.  See the next
450
     bulleted item.
451
 
452
     `zero_ext N' is equivalent to `constM MASK log_and'; it's used
453
     whenever we push the value of a register, because we can't assume
454
     the upper bits of the register aren't garbage.
455
 
456
Why not have sign-extending variants of the `ref' operators?
457
     Because that would double the number of `ref' operators, and we
458
     need the `ext' bytecode anyway for accessing bitfields.
459
 
460
Why not have constant-address variants of the `ref' operators?
461
     Because that would double the number of `ref' operators again, and
462
     `const32 ADDRESS ref32' is only one byte longer.
463
 
464
Why do the `refN' operators have to support unaligned fetches?
465
     GDB will generate bytecode that fetches multi-byte values at
466
     unaligned addresses whenever the executable's debugging
467
     information tells it to.  Furthermore, GDB does not know the value
468
     the pointer will have when GDB generates the bytecode, so it
469
     cannot determine whether a particular fetch will be aligned or not.
470
 
471
     In particular, structure bitfields may be several bytes long, but
472
     follow no alignment rules; members of packed structures are not
473
     necessarily aligned either.
474
 
475
     In general, there are many cases where unaligned references occur
476
     in correct C code, either at the programmer's explicit request, or
477
     at the compiler's discretion.  Thus, it is simpler to make the GDB
478
     agent bytecodes work correctly in all circumstances than to make
479
     GDB guess in each case whether the compiler did the usual thing.
480
 
481
Why are there no side-effecting operators?
482
     Because our current client doesn't want them?  That's a cheap
483
     answer.  I think the real answer is that I'm afraid of
484
     implementing function calls.  We should re-visit this issue after
485
     the present contract is delivered.
486
 
487
Why aren't the `goto' ops PC-relative?
488
     The interpreter has the base address around anyway for PC bounds
489
     checking, and it seemed simpler.
490
 
491
Why is there only one offset size for the `goto' ops?
492
     Offsets are currently sixteen bits.  I'm not happy with this
493
     situation either:
494
 
495
     Suppose we have multiple branch ops with different offset sizes.
496
     As I generate code left-to-right, all my jumps are forward jumps
497
     (there are no loops in expressions), so I never know the target
498
     when I emit the jump opcode.  Thus, I have to either always assume
499
     the largest offset size, or do jump relaxation on the code after I
500
     generate it, which seems like a big waste of time.
501
 
502
     I can imagine a reasonable expression being longer than 256 bytes.
503
     I can't imagine one being longer than 64k.  Thus, we need 16-bit
504
     offsets.  This kind of reasoning is so bogus, but relaxation is
505
     pathetic.
506
 
507
     The other approach would be to generate code right-to-left.  Then
508
     I'd always know my offset size.  That might be fun.
509
 
510
Where is the function call bytecode?
511
     When we add side-effects, we should add this.
512
 
513
Why does the `reg' bytecode take a 16-bit register number?
514
     Intel's IA-64 architecture has 128 general-purpose registers, and
515
     128 floating-point registers, and I'm sure it has some random
516
     control registers.
517
 
518
Why do we need `trace' and `trace_quick'?
519
     Because GDB needs to record all the memory contents and registers
520
     an expression touches.  If the user wants to evaluate an expression
521
     `x->y->z', the agent must record the values of `x' and `x->y' as
522
     well as the value of `x->y->z'.
523
 
524
Don't the `trace' bytecodes make the interpreter less general?
525
     They do mean that the interpreter contains special-purpose code,
526
     but that doesn't mean the interpreter can only be used for that
527
     purpose.  If an expression doesn't use the `trace' bytecodes, they
528
     don't get in its way.
529
 
530
Why doesn't `trace_quick' consume its arguments the way everything else does?
531
     In general, you do want your operators to consume their arguments;
532
     it's consistent, and generally reduces the amount of stack
533
     rearrangement necessary.  However, `trace_quick' is a kludge to
534
     save space; it only exists so we needn't write `dup const8 SIZE
535
     trace' before every memory reference.  Therefore, it's okay for it
536
     not to consume its arguments; it's meant for a specific context in
537
     which we know exactly what it should do with the stack.  If we're
538
     going to have a kludge, it should be an effective kludge.
539
 
540
Why does `trace16' exist?
541
     That opcode was added by the customer that contracted Cygnus for
542
     the data tracing work.  I personally think it is unnecessary;
543
     objects that large will be quite rare, so it is okay to use `dup
544
     const16 SIZE trace' in those cases.
545
 
546
     Whatever we decide to do with `trace16', we should at least leave
547
     opcode 0x30 reserved, to remain compatible with the customer who
548
     added it.
549
 
550
 
551

552
File: gdb.info,  Node: Trace File Format,  Next: Copying,  Prev: Operating System Information,  Up: Top
553
 
554
Appendix F Trace File Format
555
****************************
556
 
557
The trace file comes in three parts: a header, a textual description
558
section, and a trace frame section with binary data.
559
 
560
   The header has the form `\x7fTRACE0\n'.  The first byte is `0x7f' so
561
as to indicate that the file contains binary data, while the `0' is a
562
version number that may have different values in the future.
563
 
564
   The description section consists of multiple lines of ASCII text
565
separated by newline characters (`0xa').  The lines may include a
566
variety of optional descriptive or context-setting information, such as
567
tracepoint definitions or register set size.  GDB will ignore any line
568
that it does not recognize.  An empty line marks the end of this
569
section.
570
 
571
   The trace frame section consists of a number of consecutive frames.
572
Each frame begins with a two-byte tracepoint number, followed by a
573
four-byte size giving the amount of data in the frame.  The data in the
574
frame consists of a number of blocks, each introduced by a character
575
indicating its type (at least register, memory, and trace state
576
variable).  The data in this section is raw binary, not a hexadecimal
577
or other encoding; its endianness matches the target's endianness.
578
 
579
`R BYTES'
580
     Register block.  The number and ordering of bytes matches that of a
581
     `g' packet in the remote protocol.  Note that these are the actual
582
     bytes, in target order and GDB register order, not a hexadecimal
583
     encoding.
584
 
585
`M ADDRESS LENGTH BYTES...'
586
     Memory block.  This is a contiguous block of memory, at the 8-byte
587
     address ADDRESS, with a 2-byte length LENGTH, followed by LENGTH
588
     bytes.
589
 
590
`V NUMBER VALUE'
591
     Trace state variable block.  This records the 8-byte signed value
592
     VALUE of trace state variable numbered NUMBER.
593
 
594
 
595
   Future enhancements of the trace file format may include additional
596
types of blocks.
597
 
598

599
File: gdb.info,  Node: Target Descriptions,  Next: Operating System Information,  Prev: Agent Expressions,  Up: Top
600
 
601
Appendix G Target Descriptions
602
******************************
603
 
604
*Warning:* target descriptions are still under active development, and
605
the contents and format may change between GDB releases.  The format is
606
expected to stabilize in the future.
607
 
608
   One of the challenges of using GDB to debug embedded systems is that
609
there are so many minor variants of each processor architecture in use.
610
It is common practice for vendors to start with a standard processor
611
core -- ARM, PowerPC, or MIPS, for example -- and then make changes to
612
adapt it to a particular market niche.  Some architectures have
613
hundreds of variants, available from dozens of vendors.  This leads to
614
a number of problems:
615
 
616
   * With so many different customized processors, it is difficult for
617
     the GDB maintainers to keep up with the changes.
618
 
619
   * Since individual variants may have short lifetimes or limited
620
     audiences, it may not be worthwhile to carry information about
621
     every variant in the GDB source tree.
622
 
623
   * When GDB does support the architecture of the embedded system at
624
     hand, the task of finding the correct architecture name to give the
625
     `set architecture' command can be error-prone.
626
 
627
   To address these problems, the GDB remote protocol allows a target
628
system to not only identify itself to GDB, but to actually describe its
629
own features.  This lets GDB support processor variants it has never
630
seen before -- to the extent that the descriptions are accurate, and
631
that GDB understands them.
632
 
633
   GDB must be linked with the Expat library to support XML target
634
descriptions.  *Note Expat::.
635
 
636
* Menu:
637
 
638
* Retrieving Descriptions::         How descriptions are fetched from a target.
639
* Target Description Format::       The contents of a target description.
640
* Predefined Target Types::         Standard types available for target
641
                                    descriptions.
642
* Standard Target Features::        Features GDB knows about.
643
 
644

645
File: gdb.info,  Node: Retrieving Descriptions,  Next: Target Description Format,  Up: Target Descriptions
646
 
647
G.1 Retrieving Descriptions
648
===========================
649
 
650
Target descriptions can be read from the target automatically, or
651
specified by the user manually.  The default behavior is to read the
652
description from the target.  GDB retrieves it via the remote protocol
653
using `qXfer' requests (*note qXfer: General Query Packets.).  The
654
ANNEX in the `qXfer' packet will be `target.xml'.  The contents of the
655 342 jeremybenn
`target.xml' annex are an XML document, of the form described in *note
656 330 jeremybenn
Target Description Format::.
657
 
658
   Alternatively, you can specify a file to read for the target
659
description.  If a file is set, the target will not be queried.  The
660
commands to specify a file are:
661
 
662
`set tdesc filename PATH'
663
     Read the target description from PATH.
664
 
665
`unset tdesc filename'
666
     Do not read the XML target description from a file.  GDB will use
667
     the description supplied by the current target.
668
 
669
`show tdesc filename'
670
     Show the filename to read for a target description, if any.
671
 
672

673
File: gdb.info,  Node: Target Description Format,  Next: Predefined Target Types,  Prev: Retrieving Descriptions,  Up: Target Descriptions
674
 
675
G.2 Target Description Format
676
=============================
677
 
678
A target description annex is an XML (http://www.w3.org/XML/) document
679
which complies with the Document Type Definition provided in the GDB
680
sources in `gdb/features/gdb-target.dtd'.  This means you can use
681
generally available tools like `xmllint' to check that your feature
682
descriptions are well-formed and valid.  However, to help people
683
unfamiliar with XML write descriptions for their targets, we also
684
describe the grammar here.
685
 
686
   Target descriptions can identify the architecture of the remote
687
target and (for some architectures) provide information about custom
688
register sets.  They can also identify the OS ABI of the remote target.
689
GDB can use this information to autoconfigure for your target, or to
690
warn you if you connect to an unsupported target.
691
 
692
   Here is a simple target description:
693
 
694
     
695
       i386:x86-64
696
     
697
 
698
This minimal description only says that the target uses the x86-64
699
architecture.
700
 
701
   A target description has the following overall form, with [ ] marking
702
optional elements and ... marking repeatable elements.  The elements
703
are explained further below.
704
 
705
     
706
     
707
     
708
       [ARCHITECTURE]
709
       [OSABI]
710
       [COMPATIBLE]
711
       [FEATURE...]
712
     
713
 
714
The description is generally insensitive to whitespace and line breaks,
715
under the usual common-sense rules.  The XML version declaration and
716
document type declaration can generally be omitted (GDB does not
717
require them), but specifying them may be useful for XML validation
718
tools.  The `version' attribute for `' may also be omitted, but
719
we recommend including it; if future versions of GDB use an incompatible
720
revision of `gdb-target.dtd', they will detect and report the version
721
mismatch.
722
 
723
G.2.1 Inclusion
724
---------------
725
 
726
It can sometimes be valuable to split a target description up into
727
several different annexes, either for organizational purposes, or to
728
share files between different possible target descriptions.  You can
729
divide a description into multiple files by replacing any element of
730
the target description with an inclusion directive of the form:
731
 
732
     
733
 
734
When GDB encounters an element of this form, it will retrieve the named
735
XML DOCUMENT, and replace the inclusion directive with the contents of
736
that document.  If the current description was read using `qXfer', then
737
so will be the included document; DOCUMENT will be interpreted as the
738
name of an annex.  If the current description was read from a file, GDB
739
will look for DOCUMENT as a file in the same directory where it found
740
the original description.
741
 
742
G.2.2 Architecture
743
------------------
744
 
745
An `' element has this form:
746
 
747
       ARCH
748
 
749
   ARCH is one of the architectures from the set accepted by `set
750
architecture' (*note Specifying a Debugging Target: Targets.).
751
 
752
G.2.3 OS ABI
753
------------
754
 
755
This optional field was introduced in GDB version 7.0.  Previous
756
versions of GDB ignore it.
757
 
758
   An `' element has this form:
759
 
760
       ABI-NAME
761
 
762
   ABI-NAME is an OS ABI name from the same selection accepted by
763
`set osabi' (*note Configuring the Current ABI: ABI.).
764
 
765
G.2.4 Compatible Architecture
766
-----------------------------
767
 
768
This optional field was introduced in GDB version 7.0.  Previous
769
versions of GDB ignore it.
770
 
771
   A `' element has this form:
772
 
773
       ARCH
774
 
775
   ARCH is one of the architectures from the set accepted by `set
776
architecture' (*note Specifying a Debugging Target: Targets.).
777
 
778
   A `' element is used to specify that the target is able
779
to run binaries in some other than the main target architecture given
780
by the `' element.  For example, on the Cell Broadband
781
Engine, the main architecture is `powerpc:common' or
782
`powerpc:common64', but the system is able to run binaries in the `spu'
783
architecture as well.  The way to describe this capability with
784
`' is as follows:
785
 
786
       powerpc:common
787
       spu
788
 
789
G.2.5 Features
790
--------------
791
 
792
Each `' describes some logical portion of the target system.
793
Features are currently used to describe available CPU registers and the
794
types of their contents.  A `' element has this form:
795
 
796
     
797
       [TYPE...]
798
       REG...
799
     
800
 
801
Each feature's name should be unique within the description.  The name
802
of a feature does not matter unless GDB has some special knowledge of
803
the contents of that feature; if it does, the feature should have its
804
standard name.  *Note Standard Target Features::.
805
 
806
G.2.6 Types
807
-----------
808
 
809
Any register's value is a collection of bits which GDB must interpret.
810
The default interpretation is a two's complement integer, but other
811
types can be requested by name in the register description.  Some
812
predefined types are provided by GDB (*note Predefined Target Types::),
813
and the description can define additional composite types.
814
 
815
   Each type element must have an `id' attribute, which gives a unique
816
(within the containing `') name to the type.  Types must be
817
defined before they are used.
818
 
819
   Some targets offer vector registers, which can be treated as arrays
820
of scalar elements.  These types are written as `' elements,
821
specifying the array element type, TYPE, and the number of elements,
822
COUNT:
823
 
824
     
825
 
826
   If a register's value is usefully viewed in multiple ways, define it
827
with a union type containing the useful representations.  The `'
828
element contains one or more `' elements, each of which has a
829
NAME and a TYPE:
830
 
831
     
832
       
833
       ...
834
     
835
 
836
   If a register's value is composed from several separate values,
837
define it with a structure type.  There are two forms of the `'
838
element; a `' element must either contain only bitfields or
839
contain no bitfields.  If the structure contains only bitfields, its
840
total size in bytes must be specified, each bitfield must have an
841
explicit start and end, and bitfields are automatically assigned an
842
integer type.  The field's START should be less than or equal to its
843
END, and zero represents the least significant bit.
844
 
845
     
846
       
847
       ...
848
     
849
 
850
   If the structure contains no bitfields, then each field has an
851
explicit type, and no implicit padding is added.
852
 
853
     
854
       
855
       ...
856
     
857
 
858
   If a register's value is a series of single-bit flags, define it with
859
a flags type.  The `' element has an explicit SIZE and contains
860
one or more `' elements.  Each field has a NAME, a START, and an
861
END.  Only single-bit flags are supported.
862
 
863
     
864
       
865
       ...
866
     
867
 
868
G.2.7 Registers
869
---------------
870
 
871
Each register is represented as an element with this form:
872
 
873
     
874
          bitsize="SIZE"
875
          [regnum="NUM"]
876
          [save-restore="SAVE-RESTORE"]
877
          [type="TYPE"]
878
          [group="GROUP"]/>
879
 
880
The components are as follows:
881
 
882
NAME
883
     The register's name; it must be unique within the target
884
     description.
885
 
886
BITSIZE
887
     The register's size, in bits.
888
 
889
REGNUM
890
     The register's number.  If omitted, a register's number is one
891
     greater than that of the previous register (either in the current
892
     feature or in a preceeding feature); the first register in the
893
     target description defaults to zero.  This register number is used
894
     to read or write the register; e.g. it is used in the remote `p'
895
     and `P' packets, and registers appear in the `g' and `G' packets
896
     in order of increasing register number.
897
 
898
SAVE-RESTORE
899
     Whether the register should be preserved across inferior function
900
     calls; this must be either `yes' or `no'.  The default is `yes',
901
     which is appropriate for most registers except for some system
902
     control registers; this is not related to the target's ABI.
903
 
904
TYPE
905
     The type of the register.  TYPE may be a predefined type, a type
906
     defined in the current feature, or one of the special types `int'
907
     and `float'.  `int' is an integer type of the correct size for
908
     BITSIZE, and `float' is a floating point type (in the
909
     architecture's normal floating point format) of the correct size
910
     for BITSIZE.  The default is `int'.
911
 
912
GROUP
913
     The register group to which this register belongs.  GROUP must be
914
     either `general', `float', or `vector'.  If no GROUP is specified,
915
     GDB will not display the register in `info registers'.
916
 
917
 
918

919
File: gdb.info,  Node: Predefined Target Types,  Next: Standard Target Features,  Prev: Target Description Format,  Up: Target Descriptions
920
 
921
G.3 Predefined Target Types
922
===========================
923
 
924
Type definitions in the self-description can build up composite types
925
from basic building blocks, but can not define fundamental types.
926
Instead, standard identifiers are provided by GDB for the fundamental
927
types.  The currently supported types are:
928
 
929
`int8'
930
`int16'
931
`int32'
932
`int64'
933
`int128'
934
     Signed integer types holding the specified number of bits.
935
 
936
`uint8'
937
`uint16'
938
`uint32'
939
`uint64'
940
`uint128'
941
     Unsigned integer types holding the specified number of bits.
942
 
943
`code_ptr'
944
`data_ptr'
945
     Pointers to unspecified code and data.  The program counter and
946
     any dedicated return address register may be marked as code
947
     pointers; printing a code pointer converts it into a symbolic
948
     address.  The stack pointer and any dedicated address registers
949
     may be marked as data pointers.
950
 
951
`ieee_single'
952
     Single precision IEEE floating point.
953
 
954
`ieee_double'
955
     Double precision IEEE floating point.
956
 
957
`arm_fpa_ext'
958
     The 12-byte extended precision format used by ARM FPA registers.
959
 
960
`i387_ext'
961
     The 10-byte extended precision format used by x87 registers.
962
 
963
`i386_eflags'
964
     32bit EFLAGS register used by x86.
965
 
966
`i386_mxcsr'
967
     32bit MXCSR register used by x86.
968
 
969
 
970

971
File: gdb.info,  Node: Standard Target Features,  Prev: Predefined Target Types,  Up: Target Descriptions
972
 
973
G.4 Standard Target Features
974
============================
975
 
976
A target description must contain either no registers or all the
977
target's registers.  If the description contains no registers, then GDB
978
will assume a default register layout, selected based on the
979
architecture.  If the description contains any registers, the default
980
layout will not be used; the standard registers must be described in
981
the target description, in such a way that GDB can recognize them.
982
 
983
   This is accomplished by giving specific names to feature elements
984
which contain standard registers.  GDB will look for features with
985
those names and verify that they contain the expected registers; if any
986
known feature is missing required registers, or if any required feature
987
is missing, GDB will reject the target description.  You can add
988
additional registers to any of the standard features -- GDB will
989
display them just as if they were added to an unrecognized feature.
990
 
991
   This section lists the known features and their expected contents.
992
Sample XML documents for these features are included in the GDB source
993
tree, in the directory `gdb/features'.
994
 
995
   Names recognized by GDB should include the name of the company or
996
organization which selected the name, and the overall architecture to
997
which the feature applies; so e.g. the feature containing ARM core
998
registers is named `org.gnu.gdb.arm.core'.
999
 
1000
   The names of registers are not case sensitive for the purpose of
1001
recognizing standard features, but GDB will only display registers
1002
using the capitalization used in the description.
1003
 
1004
* Menu:
1005
 
1006
* ARM Features::
1007
* i386 Features::
1008
* MIPS Features::
1009
* M68K Features::
1010
* PowerPC Features::
1011
 
1012

1013
File: gdb.info,  Node: ARM Features,  Next: i386 Features,  Up: Standard Target Features
1014
 
1015
G.4.1 ARM Features
1016
------------------
1017
 
1018
The `org.gnu.gdb.arm.core' feature is required for ARM targets.  It
1019
should contain registers `r0' through `r13', `sp', `lr', `pc', and
1020
`cpsr'.
1021
 
1022
   The `org.gnu.gdb.arm.fpa' feature is optional.  If present, it
1023
should contain registers `f0' through `f7' and `fps'.
1024
 
1025
   The `org.gnu.gdb.xscale.iwmmxt' feature is optional.  If present, it
1026
should contain at least registers `wR0' through `wR15' and `wCGR0'
1027
through `wCGR3'.  The `wCID', `wCon', `wCSSF', and `wCASF' registers
1028
are optional.
1029
 
1030
   The `org.gnu.gdb.arm.vfp' feature is optional.  If present, it
1031
should contain at least registers `d0' through `d15'.  If they are
1032
present, `d16' through `d31' should also be included.  GDB will
1033
synthesize the single-precision registers from halves of the
1034
double-precision registers.
1035
 
1036
   The `org.gnu.gdb.arm.neon' feature is optional.  It does not need to
1037
contain registers; it instructs GDB to display the VFP double-precision
1038
registers as vectors and to synthesize the quad-precision registers
1039
from pairs of double-precision registers.  If this feature is present,
1040
`org.gnu.gdb.arm.vfp' must also be present and include 32
1041
double-precision registers.
1042
 
1043

1044
File: gdb.info,  Node: i386 Features,  Next: MIPS Features,  Prev: ARM Features,  Up: Standard Target Features
1045
 
1046
G.4.2 i386 Features
1047
-------------------
1048
 
1049
The `org.gnu.gdb.i386.core' feature is required for i386/amd64 targets.
1050
It should describe the following registers:
1051
 
1052
   - `eax' through `edi' plus `eip' for i386
1053
 
1054
   - `rax' through `r15' plus `rip' for amd64
1055
 
1056
   - `eflags', `cs', `ss', `ds', `es', `fs', `gs'
1057
 
1058
   - `st0' through `st7'
1059
 
1060
   - `fctrl', `fstat', `ftag', `fiseg', `fioff', `foseg', `fooff' and
1061
     `fop'
1062
 
1063
   The register sets may be different, depending on the target.
1064
 
1065
   The `org.gnu.gdb.i386.sse' feature is optional.  It should describe
1066
registers:
1067
 
1068
   - `xmm0' through `xmm7' for i386
1069
 
1070
   - `xmm0' through `xmm15' for amd64
1071
 
1072
   - `mxcsr'
1073
 
1074
   The `org.gnu.gdb.i386.avx' feature is optional and requires the
1075
`org.gnu.gdb.i386.sse' feature.  It should describe the upper 128 bits
1076
of YMM registers:
1077
 
1078
   - `ymm0h' through `ymm7h' for i386
1079
 
1080
   - `ymm0h' through `ymm15h' for amd64
1081
 
1082
   -
1083
   The `org.gnu.gdb.i386.linux' feature is optional.  It should
1084
describe a single register, `orig_eax'.
1085
 
1086

1087
File: gdb.info,  Node: MIPS Features,  Next: M68K Features,  Prev: i386 Features,  Up: Standard Target Features
1088
 
1089
G.4.3 MIPS Features
1090
-------------------
1091
 
1092
The `org.gnu.gdb.mips.cpu' feature is required for MIPS targets.  It
1093
should contain registers `r0' through `r31', `lo', `hi', and `pc'.
1094
They may be 32-bit or 64-bit depending on the target.
1095
 
1096
   The `org.gnu.gdb.mips.cp0' feature is also required.  It should
1097
contain at least the `status', `badvaddr', and `cause' registers.  They
1098
may be 32-bit or 64-bit depending on the target.
1099
 
1100
   The `org.gnu.gdb.mips.fpu' feature is currently required, though it
1101
may be optional in a future version of GDB.  It should contain
1102
registers `f0' through `f31', `fcsr', and `fir'.  They may be 32-bit or
1103
64-bit depending on the target.
1104
 
1105
   The `org.gnu.gdb.mips.linux' feature is optional.  It should contain
1106
a single register, `restart', which is used by the Linux kernel to
1107
control restartable syscalls.
1108
 
1109

1110
File: gdb.info,  Node: M68K Features,  Next: PowerPC Features,  Prev: MIPS Features,  Up: Standard Target Features
1111
 
1112
G.4.4 M68K Features
1113
-------------------
1114
 
1115
``org.gnu.gdb.m68k.core''
1116
``org.gnu.gdb.coldfire.core''
1117
``org.gnu.gdb.fido.core''
1118
     One of those features must be always present.  The feature that is
1119
     present determines which flavor of m68k is used.  The feature that
1120
     is present should contain registers `d0' through `d7', `a0'
1121
     through `a5', `fp', `sp', `ps' and `pc'.
1122
 
1123
``org.gnu.gdb.coldfire.fp''
1124
     This feature is optional.  If present, it should contain registers
1125
     `fp0' through `fp7', `fpcontrol', `fpstatus' and `fpiaddr'.
1126
 
1127

1128
File: gdb.info,  Node: PowerPC Features,  Prev: M68K Features,  Up: Standard Target Features
1129
 
1130
G.4.5 PowerPC Features
1131
----------------------
1132
 
1133
The `org.gnu.gdb.power.core' feature is required for PowerPC targets.
1134
It should contain registers `r0' through `r31', `pc', `msr', `cr',
1135
`lr', `ctr', and `xer'.  They may be 32-bit or 64-bit depending on the
1136
target.
1137
 
1138
   The `org.gnu.gdb.power.fpu' feature is optional.  It should contain
1139
registers `f0' through `f31' and `fpscr'.
1140
 
1141
   The `org.gnu.gdb.power.altivec' feature is optional.  It should
1142
contain registers `vr0' through `vr31', `vscr', and `vrsave'.
1143
 
1144
   The `org.gnu.gdb.power.vsx' feature is optional.  It should contain
1145
registers `vs0h' through `vs31h'.  GDB will combine these registers
1146
with the floating point registers (`f0' through `f31') and the altivec
1147
registers (`vr0' through `vr31') to present the 128-bit wide registers
1148
`vs0' through `vs63', the set of vector registers for POWER7.
1149
 
1150
   The `org.gnu.gdb.power.spe' feature is optional.  It should contain
1151
registers `ev0h' through `ev31h', `acc', and `spefscr'.  SPE targets
1152
should provide 32-bit registers in `org.gnu.gdb.power.core' and provide
1153
the upper halves in `ev0h' through `ev31h'.  GDB will combine these to
1154
present registers `ev0' through `ev31' to the user.
1155
 
1156

1157
File: gdb.info,  Node: Operating System Information,  Next: Trace File Format,  Prev: Target Descriptions,  Up: Top
1158
 
1159
Appendix H Operating System Information
1160
***************************************
1161
 
1162
* Menu:
1163
 
1164
* Process list::
1165
 
1166
   Users of GDB often wish to obtain information about the state of the
1167
operating system running on the target--for example the list of
1168
processes, or the list of open files.  This section describes the
1169
mechanism that makes it possible.  This mechanism is similar to the
1170
target features mechanism (*note Target Descriptions::), but focuses on
1171
a different aspect of target.
1172
 
1173
   Operating system information is retrived from the target via the
1174
remote protocol, using `qXfer' requests (*note qXfer osdata read::).
1175
The object name in the request should be `osdata', and the ANNEX
1176
identifies the data to be fetched.
1177
 
1178

1179
File: gdb.info,  Node: Process list,  Up: Operating System Information
1180
 
1181
H.1 Process list
1182
================
1183
 
1184
When requesting the process list, the ANNEX field in the `qXfer'
1185
request should be `processes'.  The returned data is an XML document.
1186
The formal syntax of this document is defined in
1187
`gdb/features/osdata.dtd'.
1188
 
1189
   An example document is:
1190
 
1191
     
1192
     
1193
     
1194
       
1195
         1
1196
         root
1197
         /sbin/init
1198
         1,2,3
1199
       
1200
     
1201
 
1202
   Each item should include a column whose name is `pid'.  The value of
1203
that column should identify the process on the target.  The `user' and
1204
`command' columns are optional, and will be displayed by GDB.  The
1205
`cores' column, if present, should contain a comma-separated list of
1206
cores that this process is running on.  Target may provide additional
1207
columns, which GDB currently ignores.
1208
 
1209

1210
File: gdb.info,  Node: Copying,  Next: GNU Free Documentation License,  Prev: Trace File Format,  Up: Top
1211
 
1212
Appendix I GNU GENERAL PUBLIC LICENSE
1213
*************************************
1214
 
1215
                        Version 3, 29 June 2007
1216
 
1217
     Copyright (C) 2007 Free Software Foundation, Inc. `http://fsf.org/'
1218
 
1219
     Everyone is permitted to copy and distribute verbatim copies of this
1220
     license document, but changing it is not allowed.
1221
 
1222
Preamble
1223
========
1224
 
1225
The GNU General Public License is a free, copyleft license for software
1226
and other kinds of works.
1227
 
1228
   The licenses for most software and other practical works are designed
1229
to take away your freedom to share and change the works.  By contrast,
1230
the GNU General Public License is intended to guarantee your freedom to
1231
share and change all versions of a program--to make sure it remains
1232
free software for all its users.  We, the Free Software Foundation, use
1233
the GNU General Public License for most of our software; it applies
1234
also to any other work released this way by its authors.  You can apply
1235
it to your programs, too.
1236
 
1237
   When we speak of free software, we are referring to freedom, not
1238
price.  Our General Public Licenses are designed to make sure that you
1239
have the freedom to distribute copies of free software (and charge for
1240
them if you wish), that you receive source code or can get it if you
1241
want it, that you can change the software or use pieces of it in new
1242
free programs, and that you know you can do these things.
1243
 
1244
   To protect your rights, we need to prevent others from denying you
1245
these rights or asking you to surrender the rights.  Therefore, you
1246
have certain responsibilities if you distribute copies of the software,
1247
or if you modify it: responsibilities to respect the freedom of others.
1248
 
1249
   For example, if you distribute copies of such a program, whether
1250
gratis or for a fee, you must pass on to the recipients the same
1251
freedoms that you received.  You must make sure that they, too, receive
1252
or can get the source code.  And you must show them these terms so they
1253
know their rights.
1254
 
1255
   Developers that use the GNU GPL protect your rights with two steps:
1256
(1) assert copyright on the software, and (2) offer you this License
1257
giving you legal permission to copy, distribute and/or modify it.
1258
 
1259
   For the developers' and authors' protection, the GPL clearly explains
1260
that there is no warranty for this free software.  For both users' and
1261
authors' sake, the GPL requires that modified versions be marked as
1262
changed, so that their problems will not be attributed erroneously to
1263
authors of previous versions.
1264
 
1265
   Some devices are designed to deny users access to install or run
1266
modified versions of the software inside them, although the
1267
manufacturer can do so.  This is fundamentally incompatible with the
1268
aim of protecting users' freedom to change the software.  The
1269
systematic pattern of such abuse occurs in the area of products for
1270
individuals to use, which is precisely where it is most unacceptable.
1271
Therefore, we have designed this version of the GPL to prohibit the
1272
practice for those products.  If such problems arise substantially in
1273
other domains, we stand ready to extend this provision to those domains
1274
in future versions of the GPL, as needed to protect the freedom of
1275
users.
1276
 
1277
   Finally, every program is threatened constantly by software patents.
1278
States should not allow patents to restrict development and use of
1279
software on general-purpose computers, but in those that do, we wish to
1280
avoid the special danger that patents applied to a free program could
1281
make it effectively proprietary.  To prevent this, the GPL assures that
1282
patents cannot be used to render the program non-free.
1283
 
1284
   The precise terms and conditions for copying, distribution and
1285
modification follow.
1286
 
1287
TERMS AND CONDITIONS
1288
====================
1289
 
1290
  0. Definitions.
1291
 
1292
     "This License" refers to version 3 of the GNU General Public
1293
     License.
1294
 
1295
     "Copyright" also means copyright-like laws that apply to other
1296
     kinds of works, such as semiconductor masks.
1297
 
1298
     "The Program" refers to any copyrightable work licensed under this
1299
     License.  Each licensee is addressed as "you".  "Licensees" and
1300
     "recipients" may be individuals or organizations.
1301
 
1302
     To "modify" a work means to copy from or adapt all or part of the
1303
     work in a fashion requiring copyright permission, other than the
1304
     making of an exact copy.  The resulting work is called a "modified
1305
     version" of the earlier work or a work "based on" the earlier work.
1306
 
1307
     A "covered work" means either the unmodified Program or a work
1308
     based on the Program.
1309
 
1310
     To "propagate" a work means to do anything with it that, without
1311
     permission, would make you directly or secondarily liable for
1312
     infringement under applicable copyright law, except executing it
1313
     on a computer or modifying a private copy.  Propagation includes
1314
     copying, distribution (with or without modification), making
1315
     available to the public, and in some countries other activities as
1316
     well.
1317
 
1318
     To "convey" a work means any kind of propagation that enables other
1319
     parties to make or receive copies.  Mere interaction with a user
1320
     through a computer network, with no transfer of a copy, is not
1321
     conveying.
1322
 
1323
     An interactive user interface displays "Appropriate Legal Notices"
1324
     to the extent that it includes a convenient and prominently visible
1325
     feature that (1) displays an appropriate copyright notice, and (2)
1326
     tells the user that there is no warranty for the work (except to
1327
     the extent that warranties are provided), that licensees may
1328
     convey the work under this License, and how to view a copy of this
1329
     License.  If the interface presents a list of user commands or
1330
     options, such as a menu, a prominent item in the list meets this
1331
     criterion.
1332
 
1333
  1. Source Code.
1334
 
1335
     The "source code" for a work means the preferred form of the work
1336
     for making modifications to it.  "Object code" means any
1337
     non-source form of a work.
1338
 
1339
     A "Standard Interface" means an interface that either is an
1340
     official standard defined by a recognized standards body, or, in
1341
     the case of interfaces specified for a particular programming
1342
     language, one that is widely used among developers working in that
1343
     language.
1344
 
1345
     The "System Libraries" of an executable work include anything,
1346
     other than the work as a whole, that (a) is included in the normal
1347
     form of packaging a Major Component, but which is not part of that
1348
     Major Component, and (b) serves only to enable use of the work
1349
     with that Major Component, or to implement a Standard Interface
1350
     for which an implementation is available to the public in source
1351
     code form.  A "Major Component", in this context, means a major
1352
     essential component (kernel, window system, and so on) of the
1353
     specific operating system (if any) on which the executable work
1354
     runs, or a compiler used to produce the work, or an object code
1355
     interpreter used to run it.
1356
 
1357
     The "Corresponding Source" for a work in object code form means all
1358
     the source code needed to generate, install, and (for an executable
1359
     work) run the object code and to modify the work, including
1360
     scripts to control those activities.  However, it does not include
1361
     the work's System Libraries, or general-purpose tools or generally
1362
     available free programs which are used unmodified in performing
1363
     those activities but which are not part of the work.  For example,
1364
     Corresponding Source includes interface definition files
1365
     associated with source files for the work, and the source code for
1366
     shared libraries and dynamically linked subprograms that the work
1367
     is specifically designed to require, such as by intimate data
1368
     communication or control flow between those subprograms and other
1369
     parts of the work.
1370
 
1371
     The Corresponding Source need not include anything that users can
1372
     regenerate automatically from other parts of the Corresponding
1373
     Source.
1374
 
1375
     The Corresponding Source for a work in source code form is that
1376
     same work.
1377
 
1378
  2. Basic Permissions.
1379
 
1380
     All rights granted under this License are granted for the term of
1381
     copyright on the Program, and are irrevocable provided the stated
1382
     conditions are met.  This License explicitly affirms your unlimited
1383
     permission to run the unmodified Program.  The output from running
1384
     a covered work is covered by this License only if the output,
1385
     given its content, constitutes a covered work.  This License
1386
     acknowledges your rights of fair use or other equivalent, as
1387
     provided by copyright law.
1388
 
1389
     You may make, run and propagate covered works that you do not
1390
     convey, without conditions so long as your license otherwise
1391
     remains in force.  You may convey covered works to others for the
1392
     sole purpose of having them make modifications exclusively for
1393
     you, or provide you with facilities for running those works,
1394
     provided that you comply with the terms of this License in
1395
     conveying all material for which you do not control copyright.
1396
     Those thus making or running the covered works for you must do so
1397
     exclusively on your behalf, under your direction and control, on
1398
     terms that prohibit them from making any copies of your
1399
     copyrighted material outside their relationship with you.
1400
 
1401
     Conveying under any other circumstances is permitted solely under
1402
     the conditions stated below.  Sublicensing is not allowed; section
1403
     10 makes it unnecessary.
1404
 
1405
  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
1406
 
1407
     No covered work shall be deemed part of an effective technological
1408
     measure under any applicable law fulfilling obligations under
1409
     article 11 of the WIPO copyright treaty adopted on 20 December
1410
     1996, or similar laws prohibiting or restricting circumvention of
1411
     such measures.
1412
 
1413
     When you convey a covered work, you waive any legal power to forbid
1414
     circumvention of technological measures to the extent such
1415
     circumvention is effected by exercising rights under this License
1416
     with respect to the covered work, and you disclaim any intention
1417
     to limit operation or modification of the work as a means of
1418
     enforcing, against the work's users, your or third parties' legal
1419
     rights to forbid circumvention of technological measures.
1420
 
1421
  4. Conveying Verbatim Copies.
1422
 
1423
     You may convey verbatim copies of the Program's source code as you
1424
     receive it, in any medium, provided that you conspicuously and
1425
     appropriately publish on each copy an appropriate copyright notice;
1426
     keep intact all notices stating that this License and any
1427
     non-permissive terms added in accord with section 7 apply to the
1428
     code; keep intact all notices of the absence of any warranty; and
1429
     give all recipients a copy of this License along with the Program.
1430
 
1431
     You may charge any price or no price for each copy that you convey,
1432
     and you may offer support or warranty protection for a fee.
1433
 
1434
  5. Conveying Modified Source Versions.
1435
 
1436
     You may convey a work based on the Program, or the modifications to
1437
     produce it from the Program, in the form of source code under the
1438
     terms of section 4, provided that you also meet all of these
1439
     conditions:
1440
 
1441
       a. The work must carry prominent notices stating that you
1442
          modified it, and giving a relevant date.
1443
 
1444
       b. The work must carry prominent notices stating that it is
1445
          released under this License and any conditions added under
1446
          section 7.  This requirement modifies the requirement in
1447
          section 4 to "keep intact all notices".
1448
 
1449
       c. You must license the entire work, as a whole, under this
1450
          License to anyone who comes into possession of a copy.  This
1451
          License will therefore apply, along with any applicable
1452
          section 7 additional terms, to the whole of the work, and all
1453
          its parts, regardless of how they are packaged.  This License
1454
          gives no permission to license the work in any other way, but
1455
          it does not invalidate such permission if you have separately
1456
          received it.
1457
 
1458
       d. If the work has interactive user interfaces, each must display
1459
          Appropriate Legal Notices; however, if the Program has
1460
          interactive interfaces that do not display Appropriate Legal
1461
          Notices, your work need not make them do so.
1462
 
1463
     A compilation of a covered work with other separate and independent
1464
     works, which are not by their nature extensions of the covered
1465
     work, and which are not combined with it such as to form a larger
1466
     program, in or on a volume of a storage or distribution medium, is
1467
     called an "aggregate" if the compilation and its resulting
1468
     copyright are not used to limit the access or legal rights of the
1469
     compilation's users beyond what the individual works permit.
1470
     Inclusion of a covered work in an aggregate does not cause this
1471
     License to apply to the other parts of the aggregate.
1472
 
1473
  6. Conveying Non-Source Forms.
1474
 
1475
     You may convey a covered work in object code form under the terms
1476
     of sections 4 and 5, provided that you also convey the
1477
     machine-readable Corresponding Source under the terms of this
1478
     License, in one of these ways:
1479
 
1480
       a. Convey the object code in, or embodied in, a physical product
1481
          (including a physical distribution medium), accompanied by the
1482
          Corresponding Source fixed on a durable physical medium
1483
          customarily used for software interchange.
1484
 
1485
       b. Convey the object code in, or embodied in, a physical product
1486
          (including a physical distribution medium), accompanied by a
1487
          written offer, valid for at least three years and valid for
1488
          as long as you offer spare parts or customer support for that
1489
          product model, to give anyone who possesses the object code
1490
          either (1) a copy of the Corresponding Source for all the
1491
          software in the product that is covered by this License, on a
1492
          durable physical medium customarily used for software
1493
          interchange, for a price no more than your reasonable cost of
1494
          physically performing this conveying of source, or (2) access
1495
          to copy the Corresponding Source from a network server at no
1496
          charge.
1497
 
1498
       c. Convey individual copies of the object code with a copy of
1499
          the written offer to provide the Corresponding Source.  This
1500
          alternative is allowed only occasionally and noncommercially,
1501
          and only if you received the object code with such an offer,
1502
          in accord with subsection 6b.
1503
 
1504
       d. Convey the object code by offering access from a designated
1505
          place (gratis or for a charge), and offer equivalent access
1506
          to the Corresponding Source in the same way through the same
1507
          place at no further charge.  You need not require recipients
1508
          to copy the Corresponding Source along with the object code.
1509
          If the place to copy the object code is a network server, the
1510
          Corresponding Source may be on a different server (operated
1511
          by you or a third party) that supports equivalent copying
1512
          facilities, provided you maintain clear directions next to
1513
          the object code saying where to find the Corresponding Source.
1514
          Regardless of what server hosts the Corresponding Source, you
1515
          remain obligated to ensure that it is available for as long
1516
          as needed to satisfy these requirements.
1517
 
1518
       e. Convey the object code using peer-to-peer transmission,
1519
          provided you inform other peers where the object code and
1520
          Corresponding Source of the work are being offered to the
1521
          general public at no charge under subsection 6d.
1522
 
1523
 
1524
     A separable portion of the object code, whose source code is
1525
     excluded from the Corresponding Source as a System Library, need
1526
     not be included in conveying the object code work.
1527
 
1528
     A "User Product" is either (1) a "consumer product", which means
1529
     any tangible personal property which is normally used for personal,
1530
     family, or household purposes, or (2) anything designed or sold for
1531
     incorporation into a dwelling.  In determining whether a product
1532
     is a consumer product, doubtful cases shall be resolved in favor of
1533
     coverage.  For a particular product received by a particular user,
1534
     "normally used" refers to a typical or common use of that class of
1535
     product, regardless of the status of the particular user or of the
1536
     way in which the particular user actually uses, or expects or is
1537
     expected to use, the product.  A product is a consumer product
1538
     regardless of whether the product has substantial commercial,
1539
     industrial or non-consumer uses, unless such uses represent the
1540
     only significant mode of use of the product.
1541
 
1542
     "Installation Information" for a User Product means any methods,
1543
     procedures, authorization keys, or other information required to
1544
     install and execute modified versions of a covered work in that
1545
     User Product from a modified version of its Corresponding Source.
1546
     The information must suffice to ensure that the continued
1547
     functioning of the modified object code is in no case prevented or
1548
     interfered with solely because modification has been made.
1549
 
1550
     If you convey an object code work under this section in, or with,
1551
     or specifically for use in, a User Product, and the conveying
1552
     occurs as part of a transaction in which the right of possession
1553
     and use of the User Product is transferred to the recipient in
1554
     perpetuity or for a fixed term (regardless of how the transaction
1555
     is characterized), the Corresponding Source conveyed under this
1556
     section must be accompanied by the Installation Information.  But
1557
     this requirement does not apply if neither you nor any third party
1558
     retains the ability to install modified object code on the User
1559
     Product (for example, the work has been installed in ROM).
1560
 
1561
     The requirement to provide Installation Information does not
1562
     include a requirement to continue to provide support service,
1563
     warranty, or updates for a work that has been modified or
1564
     installed by the recipient, or for the User Product in which it
1565
     has been modified or installed.  Access to a network may be denied
1566
     when the modification itself materially and adversely affects the
1567
     operation of the network or violates the rules and protocols for
1568
     communication across the network.
1569
 
1570
     Corresponding Source conveyed, and Installation Information
1571
     provided, in accord with this section must be in a format that is
1572
     publicly documented (and with an implementation available to the
1573
     public in source code form), and must require no special password
1574
     or key for unpacking, reading or copying.
1575
 
1576
  7. Additional Terms.
1577
 
1578
     "Additional permissions" are terms that supplement the terms of
1579
     this License by making exceptions from one or more of its
1580
     conditions.  Additional permissions that are applicable to the
1581
     entire Program shall be treated as though they were included in
1582
     this License, to the extent that they are valid under applicable
1583
     law.  If additional permissions apply only to part of the Program,
1584
     that part may be used separately under those permissions, but the
1585
     entire Program remains governed by this License without regard to
1586
     the additional permissions.
1587
 
1588
     When you convey a copy of a covered work, you may at your option
1589
     remove any additional permissions from that copy, or from any part
1590
     of it.  (Additional permissions may be written to require their own
1591
     removal in certain cases when you modify the work.)  You may place
1592
     additional permissions on material, added by you to a covered work,
1593
     for which you have or can give appropriate copyright permission.
1594
 
1595
     Notwithstanding any other provision of this License, for material
1596
     you add to a covered work, you may (if authorized by the copyright
1597
     holders of that material) supplement the terms of this License
1598
     with terms:
1599
 
1600
       a. Disclaiming warranty or limiting liability differently from
1601
          the terms of sections 15 and 16 of this License; or
1602
 
1603
       b. Requiring preservation of specified reasonable legal notices
1604
          or author attributions in that material or in the Appropriate
1605
          Legal Notices displayed by works containing it; or
1606
 
1607
       c. Prohibiting misrepresentation of the origin of that material,
1608
          or requiring that modified versions of such material be
1609
          marked in reasonable ways as different from the original
1610
          version; or
1611
 
1612
       d. Limiting the use for publicity purposes of names of licensors
1613
          or authors of the material; or
1614
 
1615
       e. Declining to grant rights under trademark law for use of some
1616
          trade names, trademarks, or service marks; or
1617
 
1618
       f. Requiring indemnification of licensors and authors of that
1619
          material by anyone who conveys the material (or modified
1620
          versions of it) with contractual assumptions of liability to
1621
          the recipient, for any liability that these contractual
1622
          assumptions directly impose on those licensors and authors.
1623
 
1624
     All other non-permissive additional terms are considered "further
1625
     restrictions" within the meaning of section 10.  If the Program as
1626
     you received it, or any part of it, contains a notice stating that
1627
     it is governed by this License along with a term that is a further
1628
     restriction, you may remove that term.  If a license document
1629
     contains a further restriction but permits relicensing or
1630
     conveying under this License, you may add to a covered work
1631
     material governed by the terms of that license document, provided
1632
     that the further restriction does not survive such relicensing or
1633
     conveying.
1634
 
1635
     If you add terms to a covered work in accord with this section, you
1636
     must place, in the relevant source files, a statement of the
1637
     additional terms that apply to those files, or a notice indicating
1638
     where to find the applicable terms.
1639
 
1640
     Additional terms, permissive or non-permissive, may be stated in
1641
     the form of a separately written license, or stated as exceptions;
1642
     the above requirements apply either way.
1643
 
1644
  8. Termination.
1645
 
1646
     You may not propagate or modify a covered work except as expressly
1647
     provided under this License.  Any attempt otherwise to propagate or
1648
     modify it is void, and will automatically terminate your rights
1649
     under this License (including any patent licenses granted under
1650
     the third paragraph of section 11).
1651
 
1652
     However, if you cease all violation of this License, then your
1653
     license from a particular copyright holder is reinstated (a)
1654
     provisionally, unless and until the copyright holder explicitly
1655
     and finally terminates your license, and (b) permanently, if the
1656
     copyright holder fails to notify you of the violation by some
1657
     reasonable means prior to 60 days after the cessation.
1658
 
1659
     Moreover, your license from a particular copyright holder is
1660
     reinstated permanently if the copyright holder notifies you of the
1661
     violation by some reasonable means, this is the first time you have
1662
     received notice of violation of this License (for any work) from
1663
     that copyright holder, and you cure the violation prior to 30 days
1664
     after your receipt of the notice.
1665
 
1666
     Termination of your rights under this section does not terminate
1667
     the licenses of parties who have received copies or rights from
1668
     you under this License.  If your rights have been terminated and
1669
     not permanently reinstated, you do not qualify to receive new
1670
     licenses for the same material under section 10.
1671
 
1672
  9. Acceptance Not Required for Having Copies.
1673
 
1674
     You are not required to accept this License in order to receive or
1675
     run a copy of the Program.  Ancillary propagation of a covered work
1676
     occurring solely as a consequence of using peer-to-peer
1677
     transmission to receive a copy likewise does not require
1678
     acceptance.  However, nothing other than this License grants you
1679
     permission to propagate or modify any covered work.  These actions
1680
     infringe copyright if you do not accept this License.  Therefore,
1681
     by modifying or propagating a covered work, you indicate your
1682
     acceptance of this License to do so.
1683
 
1684
 10. Automatic Licensing of Downstream Recipients.
1685
 
1686
     Each time you convey a covered work, the recipient automatically
1687
     receives a license from the original licensors, to run, modify and
1688
     propagate that work, subject to this License.  You are not
1689
     responsible for enforcing compliance by third parties with this
1690
     License.
1691
 
1692
     An "entity transaction" is a transaction transferring control of an
1693
     organization, or substantially all assets of one, or subdividing an
1694
     organization, or merging organizations.  If propagation of a
1695
     covered work results from an entity transaction, each party to that
1696
     transaction who receives a copy of the work also receives whatever
1697
     licenses to the work the party's predecessor in interest had or
1698
     could give under the previous paragraph, plus a right to
1699
     possession of the Corresponding Source of the work from the
1700
     predecessor in interest, if the predecessor has it or can get it
1701
     with reasonable efforts.
1702
 
1703
     You may not impose any further restrictions on the exercise of the
1704
     rights granted or affirmed under this License.  For example, you
1705
     may not impose a license fee, royalty, or other charge for
1706
     exercise of rights granted under this License, and you may not
1707
     initiate litigation (including a cross-claim or counterclaim in a
1708
     lawsuit) alleging that any patent claim is infringed by making,
1709
     using, selling, offering for sale, or importing the Program or any
1710
     portion of it.
1711
 
1712
 11. Patents.
1713
 
1714
     A "contributor" is a copyright holder who authorizes use under this
1715
     License of the Program or a work on which the Program is based.
1716
     The work thus licensed is called the contributor's "contributor
1717
     version".
1718
 
1719
     A contributor's "essential patent claims" are all patent claims
1720
     owned or controlled by the contributor, whether already acquired or
1721
     hereafter acquired, that would be infringed by some manner,
1722
     permitted by this License, of making, using, or selling its
1723
     contributor version, but do not include claims that would be
1724
     infringed only as a consequence of further modification of the
1725
     contributor version.  For purposes of this definition, "control"
1726
     includes the right to grant patent sublicenses in a manner
1727
     consistent with the requirements of this License.
1728
 
1729
     Each contributor grants you a non-exclusive, worldwide,
1730
     royalty-free patent license under the contributor's essential
1731
     patent claims, to make, use, sell, offer for sale, import and
1732
     otherwise run, modify and propagate the contents of its
1733
     contributor version.
1734
 
1735
     In the following three paragraphs, a "patent license" is any
1736
     express agreement or commitment, however denominated, not to
1737
     enforce a patent (such as an express permission to practice a
1738
     patent or covenant not to sue for patent infringement).  To
1739
     "grant" such a patent license to a party means to make such an
1740
     agreement or commitment not to enforce a patent against the party.
1741
 
1742
     If you convey a covered work, knowingly relying on a patent
1743
     license, and the Corresponding Source of the work is not available
1744
     for anyone to copy, free of charge and under the terms of this
1745
     License, through a publicly available network server or other
1746
     readily accessible means, then you must either (1) cause the
1747
     Corresponding Source to be so available, or (2) arrange to deprive
1748
     yourself of the benefit of the patent license for this particular
1749
     work, or (3) arrange, in a manner consistent with the requirements
1750
     of this License, to extend the patent license to downstream
1751
     recipients.  "Knowingly relying" means you have actual knowledge
1752
     that, but for the patent license, your conveying the covered work
1753
     in a country, or your recipient's use of the covered work in a
1754
     country, would infringe one or more identifiable patents in that
1755
     country that you have reason to believe are valid.
1756
 
1757
     If, pursuant to or in connection with a single transaction or
1758
     arrangement, you convey, or propagate by procuring conveyance of, a
1759
     covered work, and grant a patent license to some of the parties
1760
     receiving the covered work authorizing them to use, propagate,
1761
     modify or convey a specific copy of the covered work, then the
1762
     patent license you grant is automatically extended to all
1763
     recipients of the covered work and works based on it.
1764
 
1765
     A patent license is "discriminatory" if it does not include within
1766
     the scope of its coverage, prohibits the exercise of, or is
1767
     conditioned on the non-exercise of one or more of the rights that
1768
     are specifically granted under this License.  You may not convey a
1769
     covered work if you are a party to an arrangement with a third
1770
     party that is in the business of distributing software, under
1771
     which you make payment to the third party based on the extent of
1772
     your activity of conveying the work, and under which the third
1773
     party grants, to any of the parties who would receive the covered
1774
     work from you, a discriminatory patent license (a) in connection
1775
     with copies of the covered work conveyed by you (or copies made
1776
     from those copies), or (b) primarily for and in connection with
1777
     specific products or compilations that contain the covered work,
1778
     unless you entered into that arrangement, or that patent license
1779
     was granted, prior to 28 March 2007.
1780
 
1781
     Nothing in this License shall be construed as excluding or limiting
1782
     any implied license or other defenses to infringement that may
1783
     otherwise be available to you under applicable patent law.
1784
 
1785
 12. No Surrender of Others' Freedom.
1786
 
1787
     If conditions are imposed on you (whether by court order,
1788
     agreement or otherwise) that contradict the conditions of this
1789
     License, they do not excuse you from the conditions of this
1790
     License.  If you cannot convey a covered work so as to satisfy
1791
     simultaneously your obligations under this License and any other
1792
     pertinent obligations, then as a consequence you may not convey it
1793
     at all.  For example, if you agree to terms that obligate you to
1794
     collect a royalty for further conveying from those to whom you
1795
     convey the Program, the only way you could satisfy both those
1796
     terms and this License would be to refrain entirely from conveying
1797
     the Program.
1798
 
1799
 13. Use with the GNU Affero General Public License.
1800
 
1801
     Notwithstanding any other provision of this License, you have
1802
     permission to link or combine any covered work with a work licensed
1803
     under version 3 of the GNU Affero General Public License into a
1804
     single combined work, and to convey the resulting work.  The terms
1805
     of this License will continue to apply to the part which is the
1806
     covered work, but the special requirements of the GNU Affero
1807
     General Public License, section 13, concerning interaction through
1808
     a network will apply to the combination as such.
1809
 
1810
 14. Revised Versions of this License.
1811
 
1812
     The Free Software Foundation may publish revised and/or new
1813
     versions of the GNU General Public License from time to time.
1814
     Such new versions will be similar in spirit to the present
1815
     version, but may differ in detail to address new problems or
1816
     concerns.
1817
 
1818
     Each version is given a distinguishing version number.  If the
1819
     Program specifies that a certain numbered version of the GNU
1820
     General Public License "or any later version" applies to it, you
1821
     have the option of following the terms and conditions either of
1822
     that numbered version or of any later version published by the
1823
     Free Software Foundation.  If the Program does not specify a
1824
     version number of the GNU General Public License, you may choose
1825
     any version ever published by the Free Software Foundation.
1826
 
1827
     If the Program specifies that a proxy can decide which future
1828
     versions of the GNU General Public License can be used, that
1829
     proxy's public statement of acceptance of a version permanently
1830
     authorizes you to choose that version for the Program.
1831
 
1832
     Later license versions may give you additional or different
1833
     permissions.  However, no additional obligations are imposed on any
1834
     author or copyright holder as a result of your choosing to follow a
1835
     later version.
1836
 
1837
 15. Disclaimer of Warranty.
1838
 
1839
     THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
1840
     APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE
1841
     COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS"
1842
     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
1843
     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
1844
     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE
1845
     RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
1846
     SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
1847
     NECESSARY SERVICING, REPAIR OR CORRECTION.
1848
 
1849
 16. Limitation of Liability.
1850
 
1851
     IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
1852
     WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES
1853
     AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
1854
     FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
1855
     CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
1856
     THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
1857
     BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
1858
     PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
1859
     PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
1860
     THE POSSIBILITY OF SUCH DAMAGES.
1861
 
1862
 17. Interpretation of Sections 15 and 16.
1863
 
1864
     If the disclaimer of warranty and limitation of liability provided
1865
     above cannot be given local legal effect according to their terms,
1866
     reviewing courts shall apply local law that most closely
1867
     approximates an absolute waiver of all civil liability in
1868
     connection with the Program, unless a warranty or assumption of
1869
     liability accompanies a copy of the Program in return for a fee.
1870
 
1871
 
1872
END OF TERMS AND CONDITIONS
1873
===========================
1874
 
1875
How to Apply These Terms to Your New Programs
1876
=============================================
1877
 
1878
If you develop a new program, and you want it to be of the greatest
1879
possible use to the public, the best way to achieve this is to make it
1880
free software which everyone can redistribute and change under these
1881
terms.
1882
 
1883
   To do so, attach the following notices to the program.  It is safest
1884
to attach them to the start of each source file to most effectively
1885
state the exclusion of warranty; and each file should have at least the
1886
"copyright" line and a pointer to where the full notice is found.
1887
 
1888
     ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
1889
     Copyright (C) YEAR NAME OF AUTHOR
1890
 
1891
     This program is free software: you can redistribute it and/or modify
1892
     it under the terms of the GNU General Public License as published by
1893
     the Free Software Foundation, either version 3 of the License, or (at
1894
     your option) any later version.
1895
 
1896
     This program is distributed in the hope that it will be useful, but
1897
     WITHOUT ANY WARRANTY; without even the implied warranty of
1898
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1899
     General Public License for more details.
1900
 
1901
     You should have received a copy of the GNU General Public License
1902
     along with this program.  If not, see `http://www.gnu.org/licenses/'.
1903
 
1904
   Also add information on how to contact you by electronic and paper
1905
mail.
1906
 
1907
   If the program does terminal interaction, make it output a short
1908
notice like this when it starts in an interactive mode:
1909
 
1910
     PROGRAM Copyright (C) YEAR NAME OF AUTHOR
1911
     This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
1912
     This is free software, and you are welcome to redistribute it
1913
     under certain conditions; type `show c' for details.
1914
 
1915
   The hypothetical commands `show w' and `show c' should show the
1916
appropriate parts of the General Public License.  Of course, your
1917
program's commands might be different; for a GUI interface, you would
1918
use an "about box".
1919
 
1920
   You should also get your employer (if you work as a programmer) or
1921
school, if any, to sign a "copyright disclaimer" for the program, if
1922
necessary.  For more information on this, and how to apply and follow
1923
the GNU GPL, see `http://www.gnu.org/licenses/'.
1924
 
1925
   The GNU General Public License does not permit incorporating your
1926
program into proprietary programs.  If your program is a subroutine
1927
library, you may consider it more useful to permit linking proprietary
1928
applications with the library.  If this is what you want to do, use the
1929
GNU Lesser General Public License instead of this License.  But first,
1930
please read `http://www.gnu.org/philosophy/why-not-lgpl.html'.
1931
 
1932

1933
File: gdb.info,  Node: GNU Free Documentation License,  Next: Index,  Prev: Copying,  Up: Top
1934
 
1935
Appendix J GNU Free Documentation License
1936
*****************************************
1937
 
1938
                     Version 1.3, 3 November 2008
1939
 
1940
     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
1941
     `http://fsf.org/'
1942
 
1943
     Everyone is permitted to copy and distribute verbatim copies
1944
     of this license document, but changing it is not allowed.
1945
 
1946
  0. PREAMBLE
1947
 
1948
     The purpose of this License is to make a manual, textbook, or other
1949
     functional and useful document "free" in the sense of freedom: to
1950
     assure everyone the effective freedom to copy and redistribute it,
1951
     with or without modifying it, either commercially or
1952
     noncommercially.  Secondarily, this License preserves for the
1953
     author and publisher a way to get credit for their work, while not
1954
     being considered responsible for modifications made by others.
1955
 
1956
     This License is a kind of "copyleft", which means that derivative
1957
     works of the document must themselves be free in the same sense.
1958
     It complements the GNU General Public License, which is a copyleft
1959
     license designed for free software.
1960
 
1961
     We have designed this License in order to use it for manuals for
1962
     free software, because free software needs free documentation: a
1963
     free program should come with manuals providing the same freedoms
1964
     that the software does.  But this License is not limited to
1965
     software manuals; it can be used for any textual work, regardless
1966
     of subject matter or whether it is published as a printed book.
1967
     We recommend this License principally for works whose purpose is
1968
     instruction or reference.
1969
 
1970
  1. APPLICABILITY AND DEFINITIONS
1971
 
1972
     This License applies to any manual or other work, in any medium,
1973
     that contains a notice placed by the copyright holder saying it
1974
     can be distributed under the terms of this License.  Such a notice
1975
     grants a world-wide, royalty-free license, unlimited in duration,
1976
     to use that work under the conditions stated herein.  The
1977
     "Document", below, refers to any such manual or work.  Any member
1978
     of the public is a licensee, and is addressed as "you".  You
1979
     accept the license if you copy, modify or distribute the work in a
1980
     way requiring permission under copyright law.
1981
 
1982
     A "Modified Version" of the Document means any work containing the
1983
     Document or a portion of it, either copied verbatim, or with
1984
     modifications and/or translated into another language.
1985
 
1986
     A "Secondary Section" is a named appendix or a front-matter section
1987
     of the Document that deals exclusively with the relationship of the
1988
     publishers or authors of the Document to the Document's overall
1989
     subject (or to related matters) and contains nothing that could
1990
     fall directly within that overall subject.  (Thus, if the Document
1991
     is in part a textbook of mathematics, a Secondary Section may not
1992
     explain any mathematics.)  The relationship could be a matter of
1993
     historical connection with the subject or with related matters, or
1994
     of legal, commercial, philosophical, ethical or political position
1995
     regarding them.
1996
 
1997
     The "Invariant Sections" are certain Secondary Sections whose
1998
     titles are designated, as being those of Invariant Sections, in
1999
     the notice that says that the Document is released under this
2000
     License.  If a section does not fit the above definition of
2001
     Secondary then it is not allowed to be designated as Invariant.
2002
     The Document may contain zero Invariant Sections.  If the Document
2003
     does not identify any Invariant Sections then there are none.
2004
 
2005
     The "Cover Texts" are certain short passages of text that are
2006
     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
2007
     that says that the Document is released under this License.  A
2008
     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
2009
     be at most 25 words.
2010
 
2011
     A "Transparent" copy of the Document means a machine-readable copy,
2012
     represented in a format whose specification is available to the
2013
     general public, that is suitable for revising the document
2014
     straightforwardly with generic text editors or (for images
2015
     composed of pixels) generic paint programs or (for drawings) some
2016
     widely available drawing editor, and that is suitable for input to
2017
     text formatters or for automatic translation to a variety of
2018
     formats suitable for input to text formatters.  A copy made in an
2019
     otherwise Transparent file format whose markup, or absence of
2020
     markup, has been arranged to thwart or discourage subsequent
2021
     modification by readers is not Transparent.  An image format is
2022
     not Transparent if used for any substantial amount of text.  A
2023
     copy that is not "Transparent" is called "Opaque".
2024
 
2025
     Examples of suitable formats for Transparent copies include plain
2026
     ASCII without markup, Texinfo input format, LaTeX input format,
2027
     SGML or XML using a publicly available DTD, and
2028
     standard-conforming simple HTML, PostScript or PDF designed for
2029
     human modification.  Examples of transparent image formats include
2030
     PNG, XCF and JPG.  Opaque formats include proprietary formats that
2031
     can be read and edited only by proprietary word processors, SGML or
2032
     XML for which the DTD and/or processing tools are not generally
2033
     available, and the machine-generated HTML, PostScript or PDF
2034
     produced by some word processors for output purposes only.
2035
 
2036
     The "Title Page" means, for a printed book, the title page itself,
2037
     plus such following pages as are needed to hold, legibly, the
2038
     material this License requires to appear in the title page.  For
2039
     works in formats which do not have any title page as such, "Title
2040
     Page" means the text near the most prominent appearance of the
2041
     work's title, preceding the beginning of the body of the text.
2042
 
2043
     The "publisher" means any person or entity that distributes copies
2044
     of the Document to the public.
2045
 
2046
     A section "Entitled XYZ" means a named subunit of the Document
2047
     whose title either is precisely XYZ or contains XYZ in parentheses
2048
     following text that translates XYZ in another language.  (Here XYZ
2049
     stands for a specific section name mentioned below, such as
2050
     "Acknowledgements", "Dedications", "Endorsements", or "History".)
2051
     To "Preserve the Title" of such a section when you modify the
2052
     Document means that it remains a section "Entitled XYZ" according
2053
     to this definition.
2054
 
2055
     The Document may include Warranty Disclaimers next to the notice
2056
     which states that this License applies to the Document.  These
2057
     Warranty Disclaimers are considered to be included by reference in
2058
     this License, but only as regards disclaiming warranties: any other
2059
     implication that these Warranty Disclaimers may have is void and
2060
     has no effect on the meaning of this License.
2061
 
2062
  2. VERBATIM COPYING
2063
 
2064
     You may copy and distribute the Document in any medium, either
2065
     commercially or noncommercially, provided that this License, the
2066
     copyright notices, and the license notice saying this License
2067
     applies to the Document are reproduced in all copies, and that you
2068
     add no other conditions whatsoever to those of this License.  You
2069
     may not use technical measures to obstruct or control the reading
2070
     or further copying of the copies you make or distribute.  However,
2071
     you may accept compensation in exchange for copies.  If you
2072
     distribute a large enough number of copies you must also follow
2073
     the conditions in section 3.
2074
 
2075
     You may also lend copies, under the same conditions stated above,
2076
     and you may publicly display copies.
2077
 
2078
  3. COPYING IN QUANTITY
2079
 
2080
     If you publish printed copies (or copies in media that commonly
2081
     have printed covers) of the Document, numbering more than 100, and
2082
     the Document's license notice requires Cover Texts, you must
2083
     enclose the copies in covers that carry, clearly and legibly, all
2084
     these Cover Texts: Front-Cover Texts on the front cover, and
2085
     Back-Cover Texts on the back cover.  Both covers must also clearly
2086
     and legibly identify you as the publisher of these copies.  The
2087
     front cover must present the full title with all words of the
2088
     title equally prominent and visible.  You may add other material
2089
     on the covers in addition.  Copying with changes limited to the
2090
     covers, as long as they preserve the title of the Document and
2091
     satisfy these conditions, can be treated as verbatim copying in
2092
     other respects.
2093
 
2094
     If the required texts for either cover are too voluminous to fit
2095
     legibly, you should put the first ones listed (as many as fit
2096
     reasonably) on the actual cover, and continue the rest onto
2097
     adjacent pages.
2098
 
2099
     If you publish or distribute Opaque copies of the Document
2100
     numbering more than 100, you must either include a
2101
     machine-readable Transparent copy along with each Opaque copy, or
2102
     state in or with each Opaque copy a computer-network location from
2103
     which the general network-using public has access to download
2104
     using public-standard network protocols a complete Transparent
2105
     copy of the Document, free of added material.  If you use the
2106
     latter option, you must take reasonably prudent steps, when you
2107
     begin distribution of Opaque copies in quantity, to ensure that
2108
     this Transparent copy will remain thus accessible at the stated
2109
     location until at least one year after the last time you
2110
     distribute an Opaque copy (directly or through your agents or
2111
     retailers) of that edition to the public.
2112
 
2113
     It is requested, but not required, that you contact the authors of
2114
     the Document well before redistributing any large number of
2115
     copies, to give them a chance to provide you with an updated
2116
     version of the Document.
2117
 
2118
  4. MODIFICATIONS
2119
 
2120
     You may copy and distribute a Modified Version of the Document
2121
     under the conditions of sections 2 and 3 above, provided that you
2122
     release the Modified Version under precisely this License, with
2123
     the Modified Version filling the role of the Document, thus
2124
     licensing distribution and modification of the Modified Version to
2125
     whoever possesses a copy of it.  In addition, you must do these
2126
     things in the Modified Version:
2127
 
2128
       A. Use in the Title Page (and on the covers, if any) a title
2129
          distinct from that of the Document, and from those of
2130
          previous versions (which should, if there were any, be listed
2131
          in the History section of the Document).  You may use the
2132
          same title as a previous version if the original publisher of
2133
          that version gives permission.
2134
 
2135
       B. List on the Title Page, as authors, one or more persons or
2136
          entities responsible for authorship of the modifications in
2137
          the Modified Version, together with at least five of the
2138
          principal authors of the Document (all of its principal
2139
          authors, if it has fewer than five), unless they release you
2140
          from this requirement.
2141
 
2142
       C. State on the Title page the name of the publisher of the
2143
          Modified Version, as the publisher.
2144
 
2145
       D. Preserve all the copyright notices of the Document.
2146
 
2147
       E. Add an appropriate copyright notice for your modifications
2148
          adjacent to the other copyright notices.
2149
 
2150
       F. Include, immediately after the copyright notices, a license
2151
          notice giving the public permission to use the Modified
2152
          Version under the terms of this License, in the form shown in
2153
          the Addendum below.
2154
 
2155
       G. Preserve in that license notice the full lists of Invariant
2156
          Sections and required Cover Texts given in the Document's
2157
          license notice.
2158
 
2159
       H. Include an unaltered copy of this License.
2160
 
2161
       I. Preserve the section Entitled "History", Preserve its Title,
2162
          and add to it an item stating at least the title, year, new
2163
          authors, and publisher of the Modified Version as given on
2164
          the Title Page.  If there is no section Entitled "History" in
2165
          the Document, create one stating the title, year, authors,
2166
          and publisher of the Document as given on its Title Page,
2167
          then add an item describing the Modified Version as stated in
2168
          the previous sentence.
2169
 
2170
       J. Preserve the network location, if any, given in the Document
2171
          for public access to a Transparent copy of the Document, and
2172
          likewise the network locations given in the Document for
2173
          previous versions it was based on.  These may be placed in
2174
          the "History" section.  You may omit a network location for a
2175
          work that was published at least four years before the
2176
          Document itself, or if the original publisher of the version
2177
          it refers to gives permission.
2178
 
2179
       K. For any section Entitled "Acknowledgements" or "Dedications",
2180
          Preserve the Title of the section, and preserve in the
2181
          section all the substance and tone of each of the contributor
2182
          acknowledgements and/or dedications given therein.
2183
 
2184
       L. Preserve all the Invariant Sections of the Document,
2185
          unaltered in their text and in their titles.  Section numbers
2186
          or the equivalent are not considered part of the section
2187
          titles.
2188
 
2189
       M. Delete any section Entitled "Endorsements".  Such a section
2190
          may not be included in the Modified Version.
2191
 
2192
       N. Do not retitle any existing section to be Entitled
2193
          "Endorsements" or to conflict in title with any Invariant
2194
          Section.
2195
 
2196
       O. Preserve any Warranty Disclaimers.
2197
 
2198
     If the Modified Version includes new front-matter sections or
2199
     appendices that qualify as Secondary Sections and contain no
2200
     material copied from the Document, you may at your option
2201
     designate some or all of these sections as invariant.  To do this,
2202
     add their titles to the list of Invariant Sections in the Modified
2203
     Version's license notice.  These titles must be distinct from any
2204
     other section titles.
2205
 
2206
     You may add a section Entitled "Endorsements", provided it contains
2207
     nothing but endorsements of your Modified Version by various
2208
     parties--for example, statements of peer review or that the text
2209
     has been approved by an organization as the authoritative
2210
     definition of a standard.
2211
 
2212
     You may add a passage of up to five words as a Front-Cover Text,
2213
     and a passage of up to 25 words as a Back-Cover Text, to the end
2214
     of the list of Cover Texts in the Modified Version.  Only one
2215
     passage of Front-Cover Text and one of Back-Cover Text may be
2216
     added by (or through arrangements made by) any one entity.  If the
2217
     Document already includes a cover text for the same cover,
2218
     previously added by you or by arrangement made by the same entity
2219
     you are acting on behalf of, you may not add another; but you may
2220
     replace the old one, on explicit permission from the previous
2221
     publisher that added the old one.
2222
 
2223
     The author(s) and publisher(s) of the Document do not by this
2224
     License give permission to use their names for publicity for or to
2225
     assert or imply endorsement of any Modified Version.
2226
 
2227
  5. COMBINING DOCUMENTS
2228
 
2229
     You may combine the Document with other documents released under
2230
     this License, under the terms defined in section 4 above for
2231
     modified versions, provided that you include in the combination
2232
     all of the Invariant Sections of all of the original documents,
2233
     unmodified, and list them all as Invariant Sections of your
2234
     combined work in its license notice, and that you preserve all
2235
     their Warranty Disclaimers.
2236
 
2237
     The combined work need only contain one copy of this License, and
2238
     multiple identical Invariant Sections may be replaced with a single
2239
     copy.  If there are multiple Invariant Sections with the same name
2240
     but different contents, make the title of each such section unique
2241
     by adding at the end of it, in parentheses, the name of the
2242
     original author or publisher of that section if known, or else a
2243
     unique number.  Make the same adjustment to the section titles in
2244
     the list of Invariant Sections in the license notice of the
2245
     combined work.
2246
 
2247
     In the combination, you must combine any sections Entitled
2248
     "History" in the various original documents, forming one section
2249
     Entitled "History"; likewise combine any sections Entitled
2250
     "Acknowledgements", and any sections Entitled "Dedications".  You
2251
     must delete all sections Entitled "Endorsements."
2252
 
2253
  6. COLLECTIONS OF DOCUMENTS
2254
 
2255
     You may make a collection consisting of the Document and other
2256
     documents released under this License, and replace the individual
2257
     copies of this License in the various documents with a single copy
2258
     that is included in the collection, provided that you follow the
2259
     rules of this License for verbatim copying of each of the
2260
     documents in all other respects.
2261
 
2262
     You may extract a single document from such a collection, and
2263
     distribute it individually under this License, provided you insert
2264
     a copy of this License into the extracted document, and follow
2265
     this License in all other respects regarding verbatim copying of
2266
     that document.
2267
 
2268
  7. AGGREGATION WITH INDEPENDENT WORKS
2269
 
2270
     A compilation of the Document or its derivatives with other
2271
     separate and independent documents or works, in or on a volume of
2272
     a storage or distribution medium, is called an "aggregate" if the
2273
     copyright resulting from the compilation is not used to limit the
2274
     legal rights of the compilation's users beyond what the individual
2275
     works permit.  When the Document is included in an aggregate, this
2276
     License does not apply to the other works in the aggregate which
2277
     are not themselves derivative works of the Document.
2278
 
2279
     If the Cover Text requirement of section 3 is applicable to these
2280
     copies of the Document, then if the Document is less than one half
2281
     of the entire aggregate, the Document's Cover Texts may be placed
2282
     on covers that bracket the Document within the aggregate, or the
2283
     electronic equivalent of covers if the Document is in electronic
2284
     form.  Otherwise they must appear on printed covers that bracket
2285
     the whole aggregate.
2286
 
2287
  8. TRANSLATION
2288
 
2289
     Translation is considered a kind of modification, so you may
2290
     distribute translations of the Document under the terms of section
2291
     4.  Replacing Invariant Sections with translations requires special
2292
     permission from their copyright holders, but you may include
2293
     translations of some or all Invariant Sections in addition to the
2294
     original versions of these Invariant Sections.  You may include a
2295
     translation of this License, and all the license notices in the
2296
     Document, and any Warranty Disclaimers, provided that you also
2297
     include the original English version of this License and the
2298
     original versions of those notices and disclaimers.  In case of a
2299
     disagreement between the translation and the original version of
2300
     this License or a notice or disclaimer, the original version will
2301
     prevail.
2302
 
2303
     If a section in the Document is Entitled "Acknowledgements",
2304
     "Dedications", or "History", the requirement (section 4) to
2305
     Preserve its Title (section 1) will typically require changing the
2306
     actual title.
2307
 
2308
  9. TERMINATION
2309
 
2310
     You may not copy, modify, sublicense, or distribute the Document
2311
     except as expressly provided under this License.  Any attempt
2312
     otherwise to copy, modify, sublicense, or distribute it is void,
2313
     and will automatically terminate your rights under this License.
2314
 
2315
     However, if you cease all violation of this License, then your
2316
     license from a particular copyright holder is reinstated (a)
2317
     provisionally, unless and until the copyright holder explicitly
2318
     and finally terminates your license, and (b) permanently, if the
2319
     copyright holder fails to notify you of the violation by some
2320
     reasonable means prior to 60 days after the cessation.
2321
 
2322
     Moreover, your license from a particular copyright holder is
2323
     reinstated permanently if the copyright holder notifies you of the
2324
     violation by some reasonable means, this is the first time you have
2325
     received notice of violation of this License (for any work) from
2326
     that copyright holder, and you cure the violation prior to 30 days
2327
     after your receipt of the notice.
2328
 
2329
     Termination of your rights under this section does not terminate
2330
     the licenses of parties who have received copies or rights from
2331
     you under this License.  If your rights have been terminated and
2332
     not permanently reinstated, receipt of a copy of some or all of
2333
     the same material does not give you any rights to use it.
2334
 
2335
 10. FUTURE REVISIONS OF THIS LICENSE
2336
 
2337
     The Free Software Foundation may publish new, revised versions of
2338
     the GNU Free Documentation License from time to time.  Such new
2339
     versions will be similar in spirit to the present version, but may
2340
     differ in detail to address new problems or concerns.  See
2341
     `http://www.gnu.org/copyleft/'.
2342
 
2343
     Each version of the License is given a distinguishing version
2344
     number.  If the Document specifies that a particular numbered
2345
     version of this License "or any later version" applies to it, you
2346
     have the option of following the terms and conditions either of
2347
     that specified version or of any later version that has been
2348
     published (not as a draft) by the Free Software Foundation.  If
2349
     the Document does not specify a version number of this License,
2350
     you may choose any version ever published (not as a draft) by the
2351
     Free Software Foundation.  If the Document specifies that a proxy
2352
     can decide which future versions of this License can be used, that
2353
     proxy's public statement of acceptance of a version permanently
2354
     authorizes you to choose that version for the Document.
2355
 
2356
 11. RELICENSING
2357
 
2358
     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
2359
     World Wide Web server that publishes copyrightable works and also
2360
     provides prominent facilities for anybody to edit those works.  A
2361
     public wiki that anybody can edit is an example of such a server.
2362
     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
2363
     site means any set of copyrightable works thus published on the MMC
2364
     site.
2365
 
2366
     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
2367
     license published by Creative Commons Corporation, a not-for-profit
2368
     corporation with a principal place of business in San Francisco,
2369
     California, as well as future copyleft versions of that license
2370
     published by that same organization.
2371
 
2372
     "Incorporate" means to publish or republish a Document, in whole or
2373
     in part, as part of another Document.
2374
 
2375
     An MMC is "eligible for relicensing" if it is licensed under this
2376
     License, and if all works that were first published under this
2377
     License somewhere other than this MMC, and subsequently
2378
     incorporated in whole or in part into the MMC, (1) had no cover
2379
     texts or invariant sections, and (2) were thus incorporated prior
2380
     to November 1, 2008.
2381
 
2382
     The operator of an MMC Site may republish an MMC contained in the
2383
     site under CC-BY-SA on the same site at any time before August 1,
2384
     2009, provided the MMC is eligible for relicensing.
2385
 
2386
 
2387
ADDENDUM: How to use this License for your documents
2388
====================================================
2389
 
2390
To use this License in a document you have written, include a copy of
2391
the License in the document and put the following copyright and license
2392
notices just after the title page:
2393
 
2394
       Copyright (C)  YEAR  YOUR NAME.
2395
       Permission is granted to copy, distribute and/or modify this document
2396
       under the terms of the GNU Free Documentation License, Version 1.3
2397
       or any later version published by the Free Software Foundation;
2398
       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
2399
       Texts.  A copy of the license is included in the section entitled ``GNU
2400
       Free Documentation License''.
2401
 
2402
   If you have Invariant Sections, Front-Cover Texts and Back-Cover
2403
Texts, replace the "with...Texts." line with this:
2404
 
2405
         with the Invariant Sections being LIST THEIR TITLES, with
2406
         the Front-Cover Texts being LIST, and with the Back-Cover Texts
2407
         being LIST.
2408
 
2409
   If you have Invariant Sections without Cover Texts, or some other
2410
combination of the three, merge those two alternatives to suit the
2411
situation.
2412
 
2413
   If your document contains nontrivial examples of program code, we
2414
recommend releasing these examples in parallel under your choice of
2415
free software license, such as the GNU General Public License, to
2416
permit their use in free software.
2417
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.