]> rtime.felk.cvut.cz Git - socketcan-devel.git/commitdiff
Update patch series to revision 469.
authorthuermann <thuermann@030b6a49-0b11-0410-94ab-b0dab22257f2>
Mon, 17 Sep 2007 20:08:02 +0000 (20:08 +0000)
committerthuermann <thuermann@030b6a49-0b11-0410-94ab-b0dab22257f2>
Mon, 17 Sep 2007 20:08:02 +0000 (20:08 +0000)
git-svn-id: svn://svn.berlios.de//socketcan/trunk@470 030b6a49-0b11-0410-94ab-b0dab22257f2

patch-series/net-2.6.24/07-can-doc.diff
patch-series/net-2.6.24/intro

index 67b3aebfd614db37651b02cb79eb452ec7b01c36..3f427c4cec05fa6f8cf3df5cab196f555831dbf3 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Urs Thuermann <urs.thuermann@volkswagen.de>
 Index: net-2.6.24/Documentation/networking/can.txt
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ net-2.6.24/Documentation/networking/can.txt        2007-09-17 10:27:25.000000000 +0200
++++ net-2.6.24/Documentation/networking/can.txt        2007-09-17 21:57:29.000000000 +0200
 @@ -0,0 +1,635 @@
 +============================================================================
 +
@@ -65,7 +65,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +
 +The socketcan package is an implementation of CAN protocols
 +(Controller Area Network) for Linux.  CAN is a networking technology
-+which has wide-spread use in automation, embedded devices, and
++which has widespread use in automation, embedded devices, and
 +automotive fields.  While there have been other CAN implementations
 +for Linux based on character devices, Socket CAN uses the Berkeley
 +socket API, the Linux network stack and implements the CAN device
@@ -95,15 +95,15 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +Socket CAN was designed to overcome all of these limitations.  A new
 +protocol family has been implemented which provides a socket interface
 +to user space applications and which builds upon the Linux network
-+layer, so to use all of the provided queueing functionality.  Device
-+drivers for CAN controller hardware register itself with the Linux
++layer, so to use all of the provided queueing functionality.  A device
++driver for CAN controller hardware registers itself with the Linux
 +network layer as a network device, so that CAN frames from the
 +controller can be passed up to the network layer and on to the CAN
 +protocol family module and also vice-versa.  Also, the protocol family
 +module provides an API for transport protocol modules to register, so
 +that any number of transport protocols can be loaded or unloaded
 +dynamically.  In fact, the can core module alone does not provide any
-+protocol and can not be used without loading at least one additional
++protocol and cannot be used without loading at least one additional
 +protocol module.  Multiple sockets can be opened at the same time,
 +on different or the same protocol module and they can listen/send
 +frames on different or the same CAN IDs.  Several sockets listening on
@@ -129,7 +129,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +* Abstraction.  In most existing character-device implementations, the
 +  hardware-specific device driver for a CAN controller directly
 +  provides the character device for the application to work with.
-+  This is at least very unusual in Unix systems, for both, char and
++  This is at least very unusual in Unix systems, for both char and
 +  block devices.  For example you don't have a character device for a
 +  certain UART of a serial interface, a certain sound chip in your
 +  computer, a SCSI or IDE controller providing access to your hard
@@ -144,9 +144,9 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +  without such a (complete) abstraction layer, as is done by most
 +  existing drivers.  The right way, however, would be to add such a
 +  layer with all the functionality like registering for certain CAN
-+  IDs, supporting several open file descriptors and (de)multplexing
++  IDs, supporting several open file descriptors and (de)multiplexing
 +  CAN frames between them, (sophisticated) queueing of CAN frames, and
-+  providing an API for device driver to register with.  However, then
++  providing an API for device drivers to register with.  However, then
 +  it would be no more difficult, or may be even easier, to use the
 +  networking framework provided by the Linux kernel, and this is what
 +  Socket CAN does.
@@ -159,18 +159,18 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +
 +  As described in chapter 2 it is the main goal of Socket CAN to
 +  provide a socket interface to user space applications which builds
-+  upon the Linux networklayer. In opposite to the commonly known
-+  TCP/IP and ethernet networking the CAN bus is a broadcast-only(!)
-+  medium that has no MAC-layer adressing like ethernet. The CAN-identifier
++  upon the Linux networklayer. In contrast to the commonly known
++  TCP/IP and ethernet networking, the CAN bus is a broadcast-only(!)
++  medium that has no MAC-layer addressing like ethernet. The CAN-identifier
 +  (can_id) is used for arbitration on the CAN-bus. Therefore the CAN-IDs
-+  have to be choosen unique on the bus. When designing a CAN-ECU
++  have to be chosen uniquely on the bus. When designing a CAN-ECU
 +  network the CAN-IDs are mapped to be sent by a specific ECU.
-+  For this reason a CAN-ID can be treatened best as a kind of source address.
++  For this reason a CAN-ID can be treated best as a kind of source address.
 +
 +  3.1 receive lists
 +
 +  The network transparent access of multiple applications leads to the
-+  problem that different applications may be interrested in the same
++  problem that different applications may be interested in the same
 +  CAN-IDs from the same CAN network interface. The Socket CAN core
 +  module - which implements the protocol family CAN - provides several
 +  high efficient receive lists for this reason. If e.g. a user space
@@ -188,7 +188,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +
 +  As known from other networking concepts the data exchanging
 +  applications may run on the same or different nodes without any
-+  change (except if the according addressing information):
++  change (except for the according addressing information):
 +
 +         ___   ___   ___                   _______   ___
 +        | _ | | _ | | _ |                 | _   _ | | _ |
@@ -198,23 +198,23 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +        -----------------(1)- CAN bus -(2)---------------
 +
 +  To ensure that application A receives the same information in the
-+  expample (2) as it would receive in example (1) there is need for
++  example (2) as it would receive in example (1) there is need for
 +  some kind of local loopback on the appropriate node.
 +
 +  The Linux network devices (by default) just can handle the
-+  transmission and receiption of media dependend frames. Due to the
++  transmission and reception of media dependent frames. Due to the
 +  arbritration on the CAN bus the transmission of a low prio CAN-ID
-+  may be delayed from the receipition of a high prio CAN frame. To
++  may be delayed by the recepition of a high prio CAN frame. To
 +  reflect the correct* traffic on the node the loopback of the sent
 +  data has to be performed right after a successful transmission. If
-+  the CAN network interface is not capable to perform the loopback for
++  the CAN network interface is not capable of performing the loopback for
 +  some reason the SocketCAN core can do this task as a fallback solution.
 +  See chapter 6.2 for details (recommended).
 +
 +  The loopback functionality is enabled by default to reflect standard
 +  networking behaviour for CAN applications. Due to some requests from
 +  the RT-SocketCAN group the loopback optionally may be disabled for each
-+  seperate socket. See sockopts from the CAN RAW sockets in chapter 4.1 .
++  separate socket. See sockopts from the CAN RAW sockets in chapter 4.1.
 +
 +  * = you really like to have this when you're running analyser tools
 +      like 'candump' or 'cansniffer' on the (same) node.
@@ -240,16 +240,16 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +  layer problems is a vital requirement for CAN users to identify
 +  hardware issues on the physical transceiver layer as well as
 +  arbitration problems and error frames caused by the different
-+  ECUs. The occurance of detected errors are important for diagnosis
++  ECUs. The occurrence of detected errors are important for diagnosis
 +  and have to be logged together with the exact timestamp. For this
 +  reason the CAN interface driver can generate so called Error Frames
-+  that can optionally be passed to the user application on the same
-+  way like other CAN frames. Whenever an error on the physical layer
++  that can optionally be passed to the user application in the same
++  way as other CAN frames. Whenever an error on the physical layer
 +  or the MAC layer is detected (e.g. by the CAN controller) the driver
 +  creates an appropriate error frame. Error frames can be requested by
 +  the user application using the common CAN filter mechanisms. Inside
-+  this filter definition the (interrested) type of errors may be
-+  selected. The receiption of error frames is disabled by default.
++  this filter definition the (interested) type of errors may be
++  selected. The reception of error frames is disabled by default.
 +
 +4. How to use Socket CAN
 +------------------------
@@ -269,7 +269,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +
 +  respectively.  After the successful creation of the socket, you would
 +  normally use the bind(2) system call to bind the socket to a CAN
-+  interface (which is different to TCP/IP due to different addressing
++  interface (which is different from TCP/IP due to different addressing
 +  - see chapter 3). After binding (CAN_RAW) or connecting (CAN_BCM)
 +  the socket, you can read(2) and write(2) from/to the socket or use
 +  send(2), sendto(2), sendmsg(2) and the recv* counterpart operations
@@ -306,7 +306,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +            } can_addr;
 +    };
 +
-+  To determine the interface index the an appropriate ioctl() has to
++  To determine the interface index an appropriate ioctl() has to
 +  be used (example for CAN_RAW sockets without error checking):
 +
 +    int s;
@@ -325,7 +325,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +
 +    (..)
 +
-+  To bind a socket to all(!) CAN interfaces the interface index might
++  To bind a socket to all(!) CAN interfaces the interface index must
 +  be 0 (zero). In this case the socket receives CAN frames from every
 +  enabled CAN interface. To determine the originating CAN interface
 +  the system call recvfrom(2) may be used instead of read(2). To send
@@ -352,7 +352,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +
 +    /* do something with the received CAN frame */
 +
-+  Writing CAN frames can be done analogue with the write(2) system call:
++  Writing CAN frames can be done similarly, with the write(2) system call:
 +
 +    nbytes = write(s, &frame, sizeof(struct can_frame));
 +
@@ -389,20 +389,20 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +  Using CAN_RAW sockets is extensively comparable to the commonly
 +  known access to CAN character devices. To meet the new possibilities
 +  provided by the multi user SocketCAN approach, some reasonable
-+  defaults are set at RAW socket bindung time:
++  defaults are set at RAW socket binding time:
 +
 +  - The filters are set to exactly one filter receiving everything
 +  - The socket only receives valid data frames (=> no error frames)
 +  - The loopback of sent CAN frames is enabled (see chapter 3.2)
-+  - The socket does not receive it's own sent frames (in loopback mode)
++  - The socket does not receive its own sent frames (in loopback mode)
 +
 +  These default settings may be changed before or after binding the socket.
 +  To use the referenced definitions of the socket options for CAN_RAW
-+  sockets include linux/can/raw.h .
++  sockets, include <linux/can/raw.h>.
 +
 +  4.1.1 RAW socket option CAN_RAW_FILTER
 +
-+  The receiption of CAN frames using CAN_RAW sockets can be controlled
++  The reception of CAN frames using CAN_RAW sockets can be controlled
 +  by defining 0 .. n filters with the CAN_RAW_FILTER socket option.
 +
 +  The CAN filter structure is defined in include/linux/can.h:
@@ -416,10 +416,10 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +
 +    <received_can_id> & mask == can_id & mask
 +
-+  which is analogue to known CAN controllers hardware filter semantics.
++  which is analogous to known CAN controllers hardware filter semantics.
 +  The filter can be inverted in this semantic, when the CAN_INV_FILTER
 +  bit is set in can_id element of the can_filter structure. In
-+  opposite to CAN controller hardware filters the user may set 0 .. n
++  contrast to CAN controller hardware filters the user may set 0 .. n
 +  receive filters for each open socket separately:
 +
 +    struct can_filter rfilter[2];
@@ -431,11 +431,11 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +
 +    setsockopt(s, SOL_CAN_RAW, CAN_RAW_FILTER, &rfilter, sizeof(rfilter));
 +
-+  To disable the receiption of CAN frames on the selected CAN_RAW socket:
++  To disable the reception of CAN frames on the selected CAN_RAW socket:
 +
 +    setsockopt(s, SOL_CAN_RAW, CAN_RAW_FILTER, NULL, 0);
 +
-+  To set the filters to zero filters is quite obsolete as not readed
++  To set the filters to zero filters is quite obsolete as not read
 +  data causes the raw socket to discard the received CAN frames. But
 +  having this 'send only' use-case we may remove the receive list in the
 +  Kernel to save a little (really a very little!) CPU usage.
@@ -444,8 +444,8 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +
 +  As described in chapter 3.4 the CAN interface driver can generate so
 +  called Error Frames that can optionally be passed to the user
-+  application on the same way like other CAN frames. The possible
-+  errors are devided into different error classes that may be filtered
++  application in the same way as other CAN frames. The possible
++  errors are divided into different error classes that may be filtered
 +  using the appropriate error mask. To register for every possible
 +  error condition CAN_ERR_MASK can be used as value for the error mask.
 +  The values for the error mask are defined in linux/can/error.h .
@@ -471,12 +471,12 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +  When the local loopback is enabled, all the sent CAN frames are
 +  looped back to the open CAN sockets that registered for the CAN
 +  frames' CAN-ID on this given interface to meet the multi user
-+  needs. The receiption of the CAN frames on the same socket that was
++  needs. The reception of the CAN frames on the same socket that was
 +  sending the CAN frame is assumed to be unwanted and therefore
 +  disabled by default. This default behaviour may be changed on
 +  demand:
 +
-+    int set_recv_own_msgs = 1; /* 0 = disabled (default), 1 = enabled */
++    int recv_own_msgs = 1; /* 0 = disabled (default), 1 = enabled */
 +
 +    setsockopt(s, SOL_CAN_RAW, CAN_RAW_RECV_OWN_MSGS,
 +               &recv_own_msgs, sizeof(recv_own_msgs));
@@ -499,7 +499,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +  - stats_timer: To calculate the Socket CAN core statistics
 +    (e.g. current/maximum frames per second) this 1 second timer is
 +    invoked at can.ko module start time by default. This timer can be
-+    disabled giving stattimer=0 on the module comandline.
++    disabled by using stattimer=0 on the module comandline.
 +
 +  - debug: When the Kconfig option CONFIG_CAN_DEBUG_CORE is set at
 +    compile time, the debug output code is compiled into the module.
@@ -507,7 +507,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +    debug = 0x02 => print content of processed CAN frames
 +    debug = 0x04 => print content of processed socket buffers
 +
-+    It is possible or have ORed values e.g. 3 or 7 for an output off
++    It is possible to use ORed values e.g. 3 or 7 for an output of
 +    all available debug information. Using 0x02 and 0x04 may flood
 +    your kernel log - so be careful.
 +
@@ -550,7 +550,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +  protocol has to be defined in include/linux/can.h .
 +  The prototypes and definitions to use the Socket CAN core can be
 +  accessed by including include/linux/can/core.h .
-+  Additionally to functions that register the CAN protocol and the
++  In addition to functions that register the CAN protocol and the
 +  CAN device notifier chain there are functions to subscribe CAN
 +  frames received by CAN interfaces and to send CAN frames:
 +
@@ -565,7 +565,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +----------------------
 +
 +  Writing a CAN network device driver is much easier than writing a
-+  CAN character device driver. Analogue to other know network device
++  CAN character device driver. Similar to other known network device
 +  drivers you mainly have to deal with:
 +
 +  - TX: Put the CAN frame from the socket buffer to the CAN controller.
@@ -587,8 +587,8 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +  6.2 loopback
 +
 +  As described in chapter 3.2 the CAN network device driver should
-+  support a local loopback functionality. If so the driver flag
-+  IFF_LOOPBACK has to be set to omit the PF_CAN core to perform the
++  support a local loopback functionality. In this case the driver flag
++  IFF_LOOPBACK has to be set to cause the PF_CAN core to not perform the
 +  loopback as fallback solution:
 +
 +    dev->flags = (IFF_NOARP | IFF_LOOPBACK);
@@ -622,7 +622,7 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +             serial line ASCII protocol (for serial / USB adaptors)
 +
 +  Additionally the different CAN adaptors (ISA/PCI/PCMCIA/USB/Parport)
-+  from PEAK Systemtechnik support the CAN netdevice driver modell
++  from PEAK Systemtechnik support the CAN netdevice driver model
 +  since Linux driver v6.0: http://www.peak-system.com/linux/index.htm
 +
 +  Please check the Mailing Lists on the berlios OSS project website.
@@ -653,8 +653,8 @@ Index: net-2.6.24/Documentation/networking/can.txt
 +  Michael Schulze (driver layer loopback requirement, RT CAN drivers review)
 Index: net-2.6.24/Documentation/networking/00-INDEX
 ===================================================================
---- net-2.6.24.orig/Documentation/networking/00-INDEX  2007-09-17 10:26:57.000000000 +0200
-+++ net-2.6.24/Documentation/networking/00-INDEX       2007-09-17 10:27:25.000000000 +0200
+--- net-2.6.24.orig/Documentation/networking/00-INDEX  2007-09-17 10:30:35.000000000 +0200
++++ net-2.6.24/Documentation/networking/00-INDEX       2007-09-17 11:21:01.000000000 +0200
 @@ -26,6 +26,8 @@
        - info on the driver for Baycom style amateur radio modems
  bridge.txt
index 666eae906e5fdc65dae088521dd6064e0aef6468..73dbf88039255a0c8fb8a39dded756e8dd3b0b6c 100644 (file)
@@ -4,11 +4,15 @@ ESUBJECT
 
 Hello Dave,
 
-this is the sixth post of the patch series that adds the PF_CAN
+this is the patch series that adds the PF_CAN
 protocol family for the Controller Area Network.
 
 Since our last post we have changed the following:
 
+* Typos in documentation as pointd out by Randy Dunlap.
+
+The changes in try #6 were:
+
 * Update code to work with namespaces in net-2.6.24.
 * Remove SET_MODULE_OWNER() from vcan.
 
@@ -67,7 +71,7 @@ The changes in try #2 were:
 
 
 This patch series applies against net-2.6.24 and is derived from Subversion
-revision r466 of http://svn.berlios.de/svnroot/repos/socketcan.
+revision r469 of http://svn.berlios.de/svnroot/repos/socketcan.
 It can be found in the directory
 http://svn.berlios.de/svnroot/repos/socketcan/trunk/patch-series/<version>.