diff options
Diffstat (limited to 'Documentation/DocBook')
-rw-r--r-- | Documentation/DocBook/Makefile | 2 | ||||
-rw-r--r-- | Documentation/DocBook/networking.tmpl | 3 | ||||
-rw-r--r-- | Documentation/DocBook/uio-howto.tmpl | 101 | ||||
-rw-r--r-- | Documentation/DocBook/wanbook.tmpl | 99 |
4 files changed, 100 insertions, 105 deletions
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile index 9b1f6ca100d1..0a08126d3094 100644 --- a/Documentation/DocBook/Makefile +++ b/Documentation/DocBook/Makefile | |||
@@ -6,7 +6,7 @@ | |||
6 | # To add a new book the only step required is to add the book to the | 6 | # To add a new book the only step required is to add the book to the |
7 | # list of DOCBOOKS. | 7 | # list of DOCBOOKS. |
8 | 8 | ||
9 | DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml \ | 9 | DOCBOOKS := z8530book.xml mcabook.xml \ |
10 | kernel-hacking.xml kernel-locking.xml deviceiobook.xml \ | 10 | kernel-hacking.xml kernel-locking.xml deviceiobook.xml \ |
11 | procfs-guide.xml writing_usb_driver.xml networking.xml \ | 11 | procfs-guide.xml writing_usb_driver.xml networking.xml \ |
12 | kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ | 12 | kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ |
diff --git a/Documentation/DocBook/networking.tmpl b/Documentation/DocBook/networking.tmpl index f24f9e85e4ae..627707a3cb9d 100644 --- a/Documentation/DocBook/networking.tmpl +++ b/Documentation/DocBook/networking.tmpl | |||
@@ -98,9 +98,6 @@ | |||
98 | X!Enet/core/wireless.c | 98 | X!Enet/core/wireless.c |
99 | </sect1> | 99 | </sect1> |
100 | --> | 100 | --> |
101 | <sect1><title>Synchronous PPP</title> | ||
102 | !Edrivers/net/wan/syncppp.c | ||
103 | </sect1> | ||
104 | </chapter> | 101 | </chapter> |
105 | 102 | ||
106 | </book> | 103 | </book> |
diff --git a/Documentation/DocBook/uio-howto.tmpl b/Documentation/DocBook/uio-howto.tmpl index df87d1b93605..b787e4721c90 100644 --- a/Documentation/DocBook/uio-howto.tmpl +++ b/Documentation/DocBook/uio-howto.tmpl | |||
@@ -42,6 +42,12 @@ GPL version 2. | |||
42 | 42 | ||
43 | <revhistory> | 43 | <revhistory> |
44 | <revision> | 44 | <revision> |
45 | <revnumber>0.6</revnumber> | ||
46 | <date>2008-12-05</date> | ||
47 | <authorinitials>hjk</authorinitials> | ||
48 | <revremark>Added description of portio sysfs attributes.</revremark> | ||
49 | </revision> | ||
50 | <revision> | ||
45 | <revnumber>0.5</revnumber> | 51 | <revnumber>0.5</revnumber> |
46 | <date>2008-05-22</date> | 52 | <date>2008-05-22</date> |
47 | <authorinitials>hjk</authorinitials> | 53 | <authorinitials>hjk</authorinitials> |
@@ -318,6 +324,54 @@ interested in translating it, please email me | |||
318 | offset = N * getpagesize(); | 324 | offset = N * getpagesize(); |
319 | </programlisting> | 325 | </programlisting> |
320 | 326 | ||
327 | <para> | ||
328 | Sometimes there is hardware with memory-like regions that can not be | ||
329 | mapped with the technique described here, but there are still ways to | ||
330 | access them from userspace. The most common example are x86 ioports. | ||
331 | On x86 systems, userspace can access these ioports using | ||
332 | <function>ioperm()</function>, <function>iopl()</function>, | ||
333 | <function>inb()</function>, <function>outb()</function>, and similar | ||
334 | functions. | ||
335 | </para> | ||
336 | <para> | ||
337 | Since these ioport regions can not be mapped, they will not appear under | ||
338 | <filename>/sys/class/uio/uioX/maps/</filename> like the normal memory | ||
339 | described above. Without information about the port regions a hardware | ||
340 | has to offer, it becomes difficult for the userspace part of the | ||
341 | driver to find out which ports belong to which UIO device. | ||
342 | </para> | ||
343 | <para> | ||
344 | To address this situation, the new directory | ||
345 | <filename>/sys/class/uio/uioX/portio/</filename> was added. It only | ||
346 | exists if the driver wants to pass information about one or more port | ||
347 | regions to userspace. If that is the case, subdirectories named | ||
348 | <filename>port0</filename>, <filename>port1</filename>, and so on, | ||
349 | will appear underneath | ||
350 | <filename>/sys/class/uio/uioX/portio/</filename>. | ||
351 | </para> | ||
352 | <para> | ||
353 | Each <filename>portX/</filename> directory contains three read-only | ||
354 | files that show start, size, and type of the port region: | ||
355 | </para> | ||
356 | <itemizedlist> | ||
357 | <listitem> | ||
358 | <para> | ||
359 | <filename>start</filename>: The first port of this region. | ||
360 | </para> | ||
361 | </listitem> | ||
362 | <listitem> | ||
363 | <para> | ||
364 | <filename>size</filename>: The number of ports in this region. | ||
365 | </para> | ||
366 | </listitem> | ||
367 | <listitem> | ||
368 | <para> | ||
369 | <filename>porttype</filename>: A string describing the type of port. | ||
370 | </para> | ||
371 | </listitem> | ||
372 | </itemizedlist> | ||
373 | |||
374 | |||
321 | </sect1> | 375 | </sect1> |
322 | </chapter> | 376 | </chapter> |
323 | 377 | ||
@@ -339,12 +393,12 @@ offset = N * getpagesize(); | |||
339 | 393 | ||
340 | <itemizedlist> | 394 | <itemizedlist> |
341 | <listitem><para> | 395 | <listitem><para> |
342 | <varname>char *name</varname>: Required. The name of your driver as | 396 | <varname>const char *name</varname>: Required. The name of your driver as |
343 | it will appear in sysfs. I recommend using the name of your module for this. | 397 | it will appear in sysfs. I recommend using the name of your module for this. |
344 | </para></listitem> | 398 | </para></listitem> |
345 | 399 | ||
346 | <listitem><para> | 400 | <listitem><para> |
347 | <varname>char *version</varname>: Required. This string appears in | 401 | <varname>const char *version</varname>: Required. This string appears in |
348 | <filename>/sys/class/uio/uioX/version</filename>. | 402 | <filename>/sys/class/uio/uioX/version</filename>. |
349 | </para></listitem> | 403 | </para></listitem> |
350 | 404 | ||
@@ -356,6 +410,13 @@ See the description below for details. | |||
356 | </para></listitem> | 410 | </para></listitem> |
357 | 411 | ||
358 | <listitem><para> | 412 | <listitem><para> |
413 | <varname>struct uio_port port[ MAX_UIO_PORTS_REGIONS ]</varname>: Required | ||
414 | if you want to pass information about ioports to userspace. For each port | ||
415 | region you need to fill one of the <varname>uio_port</varname> structures. | ||
416 | See the description below for details. | ||
417 | </para></listitem> | ||
418 | |||
419 | <listitem><para> | ||
359 | <varname>long irq</varname>: Required. If your hardware generates an | 420 | <varname>long irq</varname>: Required. If your hardware generates an |
360 | interrupt, it's your modules task to determine the irq number during | 421 | interrupt, it's your modules task to determine the irq number during |
361 | initialization. If you don't have a hardware generated interrupt but | 422 | initialization. If you don't have a hardware generated interrupt but |
@@ -448,6 +509,42 @@ Please do not touch the <varname>kobj</varname> element of | |||
448 | <varname>struct uio_mem</varname>! It is used by the UIO framework | 509 | <varname>struct uio_mem</varname>! It is used by the UIO framework |
449 | to set up sysfs files for this mapping. Simply leave it alone. | 510 | to set up sysfs files for this mapping. Simply leave it alone. |
450 | </para> | 511 | </para> |
512 | |||
513 | <para> | ||
514 | Sometimes, your device can have one or more port regions which can not be | ||
515 | mapped to userspace. But if there are other possibilities for userspace to | ||
516 | access these ports, it makes sense to make information about the ports | ||
517 | available in sysfs. For each region, you have to set up a | ||
518 | <varname>struct uio_port</varname> in the <varname>port[]</varname> array. | ||
519 | Here's a description of the fields of <varname>struct uio_port</varname>: | ||
520 | </para> | ||
521 | |||
522 | <itemizedlist> | ||
523 | <listitem><para> | ||
524 | <varname>char *porttype</varname>: Required. Set this to one of the predefined | ||
525 | constants. Use <varname>UIO_PORT_X86</varname> for the ioports found in x86 | ||
526 | architectures. | ||
527 | </para></listitem> | ||
528 | |||
529 | <listitem><para> | ||
530 | <varname>unsigned long start</varname>: Required if the port region is used. | ||
531 | Fill in the number of the first port of this region. | ||
532 | </para></listitem> | ||
533 | |||
534 | <listitem><para> | ||
535 | <varname>unsigned long size</varname>: Fill in the number of ports in this | ||
536 | region. If <varname>size</varname> is zero, the region is considered unused. | ||
537 | Note that you <emphasis>must</emphasis> initialize <varname>size</varname> | ||
538 | with zero for all unused regions. | ||
539 | </para></listitem> | ||
540 | </itemizedlist> | ||
541 | |||
542 | <para> | ||
543 | Please do not touch the <varname>portio</varname> element of | ||
544 | <varname>struct uio_port</varname>! It is used internally by the UIO | ||
545 | framework to set up sysfs files for this region. Simply leave it alone. | ||
546 | </para> | ||
547 | |||
451 | </sect1> | 548 | </sect1> |
452 | 549 | ||
453 | <sect1 id="adding_irq_handler"> | 550 | <sect1 id="adding_irq_handler"> |
diff --git a/Documentation/DocBook/wanbook.tmpl b/Documentation/DocBook/wanbook.tmpl deleted file mode 100644 index 8c93db122f04..000000000000 --- a/Documentation/DocBook/wanbook.tmpl +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> | ||
4 | |||
5 | <book id="WANGuide"> | ||
6 | <bookinfo> | ||
7 | <title>Synchronous PPP and Cisco HDLC Programming Guide</title> | ||
8 | |||
9 | <authorgroup> | ||
10 | <author> | ||
11 | <firstname>Alan</firstname> | ||
12 | <surname>Cox</surname> | ||
13 | <affiliation> | ||
14 | <address> | ||
15 | <email>alan@lxorguk.ukuu.org.uk</email> | ||
16 | </address> | ||
17 | </affiliation> | ||
18 | </author> | ||
19 | </authorgroup> | ||
20 | |||
21 | <copyright> | ||
22 | <year>2000</year> | ||
23 | <holder>Alan Cox</holder> | ||
24 | </copyright> | ||
25 | |||
26 | <legalnotice> | ||
27 | <para> | ||
28 | This documentation is free software; you can redistribute | ||
29 | it and/or modify it under the terms of the GNU General Public | ||
30 | License as published by the Free Software Foundation; either | ||
31 | version 2 of the License, or (at your option) any later | ||
32 | version. | ||
33 | </para> | ||
34 | |||
35 | <para> | ||
36 | This program is distributed in the hope that it will be | ||
37 | useful, but WITHOUT ANY WARRANTY; without even the implied | ||
38 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
39 | See the GNU General Public License for more details. | ||
40 | </para> | ||
41 | |||
42 | <para> | ||
43 | You should have received a copy of the GNU General Public | ||
44 | License along with this program; if not, write to the Free | ||
45 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||
46 | MA 02111-1307 USA | ||
47 | </para> | ||
48 | |||
49 | <para> | ||
50 | For more details see the file COPYING in the source | ||
51 | distribution of Linux. | ||
52 | </para> | ||
53 | </legalnotice> | ||
54 | </bookinfo> | ||
55 | |||
56 | <toc></toc> | ||
57 | |||
58 | <chapter id="intro"> | ||
59 | <title>Introduction</title> | ||
60 | <para> | ||
61 | The syncppp drivers in Linux provide a fairly complete | ||
62 | implementation of Cisco HDLC and a minimal implementation of | ||
63 | PPP. The longer term goal is to switch the PPP layer to the | ||
64 | generic PPP interface that is new in Linux 2.3.x. The API should | ||
65 | remain unchanged when this is done, but support will then be | ||
66 | available for IPX, compression and other PPP features | ||
67 | </para> | ||
68 | </chapter> | ||
69 | <chapter id="bugs"> | ||
70 | <title>Known Bugs And Assumptions</title> | ||
71 | <para> | ||
72 | <variablelist> | ||
73 | <varlistentry><term>PPP is minimal</term> | ||
74 | <listitem> | ||
75 | <para> | ||
76 | The current PPP implementation is very basic, although sufficient | ||
77 | for most wan usages. | ||
78 | </para> | ||
79 | </listitem></varlistentry> | ||
80 | |||
81 | <varlistentry><term>Cisco HDLC Quirks</term> | ||
82 | <listitem> | ||
83 | <para> | ||
84 | Currently we do not end all packets with the correct Cisco multicast | ||
85 | or unicast flags. Nothing appears to mind too much but this should | ||
86 | be corrected. | ||
87 | </para> | ||
88 | </listitem></varlistentry> | ||
89 | </variablelist> | ||
90 | |||
91 | </para> | ||
92 | </chapter> | ||
93 | |||
94 | <chapter id="pubfunctions"> | ||
95 | <title>Public Functions Provided</title> | ||
96 | !Edrivers/net/wan/syncppp.c | ||
97 | </chapter> | ||
98 | |||
99 | </book> | ||