[FE training-materials-updates] kernel-frameworks: correct net_device links

Alexandre Belloni alexandre.belloni at free-electrons.com
Wed Nov 6 07:06:08 CET 2013


Repository : git://git.free-electrons.com/training-materials.git

On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=0002c4ad3f34adea21d1b6b3097fe2fe79d372f0

>---------------------------------------------------------------

commit 0002c4ad3f34adea21d1b6b3097fe2fe79d372f0
Author: Alexandre Belloni <alexandre.belloni at free-electrons.com>
Date:   Wed Nov 6 00:52:05 2013 -0500

    kernel-frameworks: correct net_device links
    
    When creating net_devices, the private structure is actually allocated
    at the same time as the net_device structure. This is kind of a special
    case. Also when working with usb devices, You don't actually have to
    keep a pointer to the struct usb_interface to be able to read/write
    to/from the device so you can't go back and forth between structures. So
    I added a simpler example using an spi_device registering an rtc_device
    in the RTC framework which is closer to what you can usually encounter.
    
    Signed-off-by: Alexandre Belloni <alexandre.belloni at free-electrons.com>


>---------------------------------------------------------------

0002c4ad3f34adea21d1b6b3097fe2fe79d372f0
 slides/kernel-frameworks/kernel-frameworks.tex     |   77 +++-
 .../kernel-frameworks/link-structures-netdev.dia   |  384 ++++++++++++++------
 ...ructures-netdev.dia => link-structures-rtc.dia} |  294 +++++++++++----
 3 files changed, 562 insertions(+), 193 deletions(-)

diff --git a/slides/kernel-frameworks/kernel-frameworks.tex b/slides/kernel-frameworks/kernel-frameworks.tex
index 9e6defe..87ac7cc 100644
--- a/slides/kernel-frameworks/kernel-frameworks.tex
+++ b/slides/kernel-frameworks/kernel-frameworks.tex
@@ -539,14 +539,15 @@ static int xxxfb_probe (struct pci_dev *dev,
   \item This is typically done
     \begin{itemize}
     \item By subclassing the appropriate framework structure
-    \item Or by storing a reference to the appropriate framework
+    \item By storing a reference to the appropriate framework
       structure
+    \item Or by including your information in the framework structure
     \end{itemize}
   \end{itemize}
 \end{frame}
 
 \begin{frame}[fragile]
-  \frametitle{Driver-specific Data Structure Examples}
+  \frametitle{Driver-specific Data Structure Examples 1/2}
   \begin{itemize}
   \item i.MX serial driver: \code{imx_port} is a subclass of
     \code{uart_port}
@@ -560,8 +561,23 @@ struct imx_port {
     [...]
 };
   \end{minted}
+  \item ds1305 RTC driver: \code{ds1305} has a reference to
+    \code{rtc_device}
+  \begin{minted}[fontsize=\scriptsize]{c}
+struct ds1305 {
+    struct spi_device       *spi;
+    struct rtc_device       *rtc;
+    [...]
+};
+  \end{minted}
+  \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Driver-specific Data Structure Examples 2/2}
+  \begin{itemize}
   \item rtl8150 network driver: \code{rtl8150} has a reference to
-    \code{net_device}
+    \code{net_device} and is allocated within that framework structure.
   \begin{minted}[fontsize=\scriptsize]{c}
 struct rtl8150 {
     unsigned long flags;
@@ -575,7 +591,7 @@ struct rtl8150 {
 \end{frame}
 
 \begin{frame}
-  \frametitle{Link Between Structures 1/3}
+  \frametitle{Link Between Structures 1/4}
   \begin{itemize}
   \item The framework typically contains a \code{struct device *}
     pointer that the driver must point to the corresponding struct
@@ -597,7 +613,7 @@ struct rtl8150 {
 \end{frame}
 
 \begin{frame}[fragile]
-  \frametitle{Link Between Structures 2/3}
+  \frametitle{Link Between Structures 2/4}
   \begin{columns}
     \column{0.7\textwidth}
     \begin{minted}[fontsize=\tiny]{c}
@@ -633,19 +649,68 @@ static int serial_imx_remove(struct platform_device *pdev)
 \end{frame}
 
 \begin{frame}[fragile]
-  \frametitle{Link Between Structures 3/3}
+  \frametitle{Link Between Structures 3/4}
+  \begin{columns}
+    \column{0.7\textwidth}
+    \begin{minted}[fontsize=\tiny]{c}
+static int ds1305_probe(struct spi_device *spi)
+{
+    struct ds1305                   *ds1305;
+
+    [...]
+
+    /* set up driver data */
+    ds1305 = devm_kzalloc(&spi->dev, sizeof(*ds1305), GFP_KERNEL);
+    if (!ds1305)
+            return -ENOMEM;
+    ds1305->spi = spi;
+    spi_set_drvdata(spi, ds1305);
+
+    [...]
+
+    /* register RTC ... from here on, ds1305->ctrl needs locking */
+    ds1305->rtc = devm_rtc_device_register(&spi->dev, "ds1305",
+                    &ds1305_ops, THIS_MODULE);
+
+    [...]
+}
+
+static int ds1305_remove(struct spi_device *spi)
+{
+    struct ds1305 *ds1305 = spi_get_drvdata(spi);
+
+    [...]
+}
+    \end{minted}
+    \column{0.3\textwidth}
+    \begin{center}
+      \includegraphics[height=0.8\textheight]{slides/kernel-frameworks/link-structures-rtc.pdf}
+    \end{center}
+  \end{columns}
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Link Between Structures 4/4}
   \begin{columns}
     \column{0.7\textwidth}
     \begin{minted}[fontsize=\tiny]{c}
 static int rtl8150_probe(struct usb_interface *intf,
     const struct usb_device_id *id)
 {
+    struct usb_device *udev = interface_to_usbdev(intf);
     rtl8150_t *dev;
     struct net_device *netdev;
 
     netdev = alloc_etherdev(sizeof(rtl8150_t));
     dev = netdev_priv(netdev);
 
+    [...]
+
+    dev->udev = udev;
+    dev->netdev = netdev;
+
+    [...]
+
     usb_set_intfdata(intf, dev);
     SET_NETDEV_DEV(netdev, &intf->dev);
 
diff --git a/slides/kernel-frameworks/link-structures-netdev.dia b/slides/kernel-frameworks/link-structures-netdev.dia
index 1d8382b..fc783d9 100644
--- a/slides/kernel-frameworks/link-structures-netdev.dia
+++ b/slides/kernel-frameworks/link-structures-netdev.dia
@@ -65,20 +65,49 @@
   <dia:layer name="Arrière-plan" visible="true" active="true">
     <dia:object type="Standard - Box" version="0" id="O0">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,1"/>
+        <dia:point val="5,0"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="4.95,0.95;12.05,8.05"/>
+        <dia:rectangle val="4.95,-0.05;12.05,2.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="5,1"/>
+        <dia:point val="5,0"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="7"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
+        <dia:real val="2"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0.10000000149011612"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#5cacff"/>
+      </dia:attribute>
+      <dia:attribute name="inner_color">
+        <dia:color val="#add8e6"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Box" version="0" id="O1">
+      <dia:attribute name="obj_pos">
+        <dia:point val="5,3"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="4.95,2.95;12.05,7.05"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="5,3"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
         <dia:real val="7"/>
       </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="4"/>
+      </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="0.10000000149011612"/>
       </dia:attribute>
@@ -92,15 +121,15 @@
         <dia:boolean val="true"/>
       </dia:attribute>
     </dia:object>
-    <dia:object type="Standard - Box" version="0" id="O1">
+    <dia:object type="Standard - Box" version="0" id="O2">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,1"/>
+        <dia:point val="5,2"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="4.95,0.95;12.05,3.05"/>
+        <dia:rectangle val="4.95,1.95;12.05,4.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="5,1"/>
+        <dia:point val="5,2"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="7"/>
@@ -121,12 +150,12 @@
         <dia:boolean val="true"/>
       </dia:attribute>
     </dia:object>
-    <dia:object type="Standard - Text" version="1" id="O2">
+    <dia:object type="Standard - Text" version="1" id="O3">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,2"/>
+        <dia:point val="8.5,3"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="7.055,1.62625;9.945,2.37375"/>
+        <dia:rectangle val="7.055,2.62625;9.945,3.37375"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -140,7 +169,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,2.22125"/>
+            <dia:point val="8.5,3.22125"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -154,53 +183,24 @@
         <dia:enum val="2"/>
       </dia:attribute>
       <dia:connections>
-        <dia:connection handle="0" to="O1" connection="8"/>
+        <dia:connection handle="0" to="O2" connection="8"/>
       </dia:connections>
     </dia:object>
-    <dia:object type="Standard - Box" version="0" id="O3">
-      <dia:attribute name="obj_pos">
-        <dia:point val="5,9"/>
-      </dia:attribute>
-      <dia:attribute name="obj_bb">
-        <dia:rectangle val="4.95,8.95;12.05,14.05"/>
-      </dia:attribute>
-      <dia:attribute name="elem_corner">
-        <dia:point val="5,9"/>
-      </dia:attribute>
-      <dia:attribute name="elem_width">
-        <dia:real val="7"/>
-      </dia:attribute>
-      <dia:attribute name="elem_height">
-        <dia:real val="5"/>
-      </dia:attribute>
-      <dia:attribute name="border_width">
-        <dia:real val="0.10000000149011612"/>
-      </dia:attribute>
-      <dia:attribute name="border_color">
-        <dia:color val="#5cacff"/>
-      </dia:attribute>
-      <dia:attribute name="inner_color">
-        <dia:color val="#add8e6"/>
-      </dia:attribute>
-      <dia:attribute name="show_background">
-        <dia:boolean val="true"/>
-      </dia:attribute>
-    </dia:object>
     <dia:object type="Standard - Box" version="0" id="O4">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,9"/>
+        <dia:point val="5,-2"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="4.95,8.95;12.05,10.05"/>
+        <dia:rectangle val="4.95,-2.05;12.05,0.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="5,9"/>
+        <dia:point val="5,-2"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="7"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="1"/>
+        <dia:real val="2"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="0.10000000149011612"/>
@@ -217,10 +217,10 @@
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O5">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,9.5"/>
+        <dia:point val="8.5,-1"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="7.38375,9.12625;9.61625,9.87375"/>
+        <dia:rectangle val="7.38375,-1.37375;9.61625,-0.62625"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -234,7 +234,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,9.72125"/>
+            <dia:point val="8.5,-0.77875"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -253,19 +253,19 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O6">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,17"/>
+        <dia:point val="5,16"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="4.95,16.95;12.05,24.05"/>
+        <dia:rectangle val="4.95,15.95;12.05,22.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="5,17"/>
+        <dia:point val="5,16"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="7"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="7"/>
+        <dia:real val="6"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="0.10000000149011612"/>
@@ -282,13 +282,13 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O7">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,15"/>
+        <dia:point val="5,14"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="4.95,14.95;12.05,17.05"/>
+        <dia:rectangle val="4.95,13.95;12.05,16.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="5,15"/>
+        <dia:point val="5,14"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="7"/>
@@ -311,10 +311,10 @@
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O8">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,16"/>
+        <dia:point val="8.5,15"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="6.34,15.5982;10.6787,16.4018"/>
+        <dia:rectangle val="6.34,14.6263;10.66,15.3738"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -328,7 +328,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,16.2119"/>
+            <dia:point val="8.5,15.2213"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -347,13 +347,13 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O9">
       <dia:attribute name="obj_pos">
-        <dia:point val="6,19"/>
+        <dia:point val="6,18"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="5.95,18.95;11.05,22.05"/>
+        <dia:rectangle val="5.95,17.95;11.05,21.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="6,19"/>
+        <dia:point val="6,18"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="5"/>
@@ -376,13 +376,13 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O10">
       <dia:attribute name="obj_pos">
-        <dia:point val="6,18"/>
+        <dia:point val="6,17"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="5.95,17.95;11.05,19.05"/>
+        <dia:rectangle val="5.95,16.95;11.05,18.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="6,18"/>
+        <dia:point val="6,17"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="5"/>
@@ -405,15 +405,15 @@
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O11">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,18.5"/>
+        <dia:point val="7,19"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="7.44625,18.1262;9.55375,18.8737"/>
+        <dia:rectangle val="7,18.6262;10.6475,19.3737"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#device#</dia:string>
+            <dia:string>#driver_data#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="0" name="Helvetica"/>
@@ -422,35 +422,31 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,18.7212"/>
+            <dia:point val="7,19.2212"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
           </dia:attribute>
           <dia:attribute name="alignment">
-            <dia:enum val="1"/>
+            <dia:enum val="0"/>
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
       <dia:attribute name="valign">
         <dia:enum val="2"/>
       </dia:attribute>
-      <dia:connections>
-        <dia:connection handle="0" to="O10" connection="8"/>
-      </dia:connections>
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O12">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,19"/>
+        <dia:point val="8.5,17.5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="6.67625,19;10.3238,20.5475"/>
+        <dia:rectangle val="7.44625,17.1262;9.55375,17.8737"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#void *
-driver_data#</dia:string>
+            <dia:string>#device#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="0" name="Helvetica"/>
@@ -459,7 +455,7 @@ driver_data#</dia:string>
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,19.595"/>
+            <dia:point val="8.5,17.7212"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -470,10 +466,10 @@ driver_data#</dia:string>
         </dia:composite>
       </dia:attribute>
       <dia:attribute name="valign">
-        <dia:enum val="0"/>
+        <dia:enum val="2"/>
       </dia:attribute>
       <dia:connections>
-        <dia:connection handle="0" to="O9" connection="1"/>
+        <dia:connection handle="0" to="O10" connection="8"/>
       </dia:connections>
     </dia:object>
     <dia:object type="Standard - ZigZagLine" version="1" id="O13">
@@ -481,13 +477,13 @@ driver_data#</dia:string>
         <dia:point val="6,19"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="2.95,0.638197;6.05,19.05"/>
+        <dia:rectangle val="3.95,1.6382;6.05,19.05"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
         <dia:point val="6,19"/>
-        <dia:point val="3,19"/>
-        <dia:point val="3,1"/>
-        <dia:point val="5,1"/>
+        <dia:point val="4,19"/>
+        <dia:point val="4,2"/>
+        <dia:point val="5,2"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="0"/>
@@ -507,16 +503,15 @@ driver_data#</dia:string>
         <dia:real val="0.5"/>
       </dia:attribute>
       <dia:connections>
-        <dia:connection handle="0" to="O9" connection="0"/>
-        <dia:connection handle="1" to="O1" connection="0"/>
+        <dia:connection handle="1" to="O0" connection="5"/>
       </dia:connections>
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O14">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,4.5"/>
+        <dia:point val="7,5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="6.2675,3.905;8.5,4.6525"/>
+        <dia:rectangle val="7,4.62625;9.2325,5.37375"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -530,35 +525,32 @@ driver_data#</dia:string>
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,4.5"/>
+            <dia:point val="7,5.22125"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
           </dia:attribute>
           <dia:attribute name="alignment">
-            <dia:enum val="2"/>
+            <dia:enum val="0"/>
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
       <dia:attribute name="valign">
-        <dia:enum val="3"/>
+        <dia:enum val="2"/>
       </dia:attribute>
-      <dia:connections>
-        <dia:connection handle="0" to="O0" connection="8"/>
-      </dia:connections>
     </dia:object>
     <dia:object type="Standard - ZigZagLine" version="1" id="O15">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,4.5"/>
+        <dia:point val="12,5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="3.9,4.45;5.1118,9.3618"/>
+        <dia:rectangle val="11.8882,-1.3618;13.1,5.05"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="5,4.5"/>
-        <dia:point val="3.95,4.5"/>
-        <dia:point val="3.95,9"/>
-        <dia:point val="5,9"/>
+        <dia:point val="12,5"/>
+        <dia:point val="13.05,5"/>
+        <dia:point val="13.05,-1"/>
+        <dia:point val="12,-1"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="0"/>
@@ -578,21 +570,20 @@ driver_data#</dia:string>
         <dia:real val="0.5"/>
       </dia:attribute>
       <dia:connections>
-        <dia:connection handle="0" to="O0" connection="3"/>
-        <dia:connection handle="1" to="O4" connection="0"/>
+        <dia:connection handle="1" to="O4" connection="4"/>
       </dia:connections>
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O16">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,11.5"/>
+        <dia:point val="7,6"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="5.6975,10.905;8.5,11.6525"/>
+        <dia:rectangle val="7,5.62625;8.5875,6.37375"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#dev        #</dia:string>
+            <dia:string>#udev#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="0" name="Helvetica"/>
@@ -601,35 +592,32 @@ driver_data#</dia:string>
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,11.5"/>
+            <dia:point val="7,6.22125"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
           </dia:attribute>
           <dia:attribute name="alignment">
-            <dia:enum val="2"/>
+            <dia:enum val="0"/>
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
       <dia:attribute name="valign">
-        <dia:enum val="3"/>
+        <dia:enum val="2"/>
       </dia:attribute>
-      <dia:connections>
-        <dia:connection handle="0" to="O3" connection="8"/>
-      </dia:connections>
     </dia:object>
     <dia:object type="Standard - ZigZagLine" version="1" id="O17">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,11.5"/>
+        <dia:point val="12,6"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="3.9,11.45;6.1118,18.3618"/>
+        <dia:rectangle val="11.8882,5.95;13.05,8.3618"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="5,11.5"/>
-        <dia:point val="3.95,11.5"/>
-        <dia:point val="3.95,18"/>
-        <dia:point val="6,18"/>
+        <dia:point val="12,6"/>
+        <dia:point val="13,6"/>
+        <dia:point val="13,8"/>
+        <dia:point val="12,8"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="0"/>
@@ -637,8 +625,169 @@ driver_data#</dia:string>
         <dia:enum val="0"/>
       </dia:attribute>
       <dia:attribute name="autorouting">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="1" to="O19" connection="2"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Box" version="0" id="O18">
+      <dia:attribute name="obj_pos">
+        <dia:point val="5,10"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="4.95,9.95;12.05,13.05"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="5,10"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="7"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="3"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0.10000000149011612"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#868686"/>
+      </dia:attribute>
+      <dia:attribute name="inner_color">
+        <dia:color val="#e5e5e5"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
         <dia:boolean val="true"/>
       </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Box" version="0" id="O19">
+      <dia:attribute name="obj_pos">
+        <dia:point val="5,8"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="4.95,7.95;12.05,10.05"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="5,8"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="7"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="2"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0.10000000149011612"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#868686"/>
+      </dia:attribute>
+      <dia:attribute name="inner_color">
+        <dia:color val="#e5e5e5"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O20">
+      <dia:attribute name="obj_pos">
+        <dia:point val="8.5,9"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="6.71375,8.62625;10.2863,9.37375"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#usb_device#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="8.5,9.22125"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O19" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O21">
+      <dia:attribute name="obj_pos">
+        <dia:point val="7,20"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="7,19.6262;9.09844,20.3737"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#parent#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="7,20.2212"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - ZigZagLine" version="1" id="O22">
+      <dia:attribute name="obj_pos">
+        <dia:point val="11,20"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="10.95,8.6382;13.05,20.05"/>
+      </dia:attribute>
+      <dia:attribute name="orth_points">
+        <dia:point val="11,20"/>
+        <dia:point val="13,20"/>
+        <dia:point val="13,9"/>
+        <dia:point val="12,9"/>
+      </dia:attribute>
+      <dia:attribute name="orth_orient">
+        <dia:enum val="0"/>
+        <dia:enum val="1"/>
+        <dia:enum val="0"/>
+      </dia:attribute>
+      <dia:attribute name="autorouting">
+        <dia:boolean val="false"/>
+      </dia:attribute>
       <dia:attribute name="end_arrow">
         <dia:enum val="22"/>
       </dia:attribute>
@@ -649,8 +798,7 @@ driver_data#</dia:string>
         <dia:real val="0.5"/>
       </dia:attribute>
       <dia:connections>
-        <dia:connection handle="0" to="O3" connection="3"/>
-        <dia:connection handle="1" to="O10" connection="0"/>
+        <dia:connection handle="1" to="O19" connection="4"/>
       </dia:connections>
     </dia:object>
   </dia:layer>
diff --git a/slides/kernel-frameworks/link-structures-netdev.dia b/slides/kernel-frameworks/link-structures-rtc.dia
similarity index 71%
copy from slides/kernel-frameworks/link-structures-netdev.dia
copy to slides/kernel-frameworks/link-structures-rtc.dia
index 1d8382b..ab13a6a 100644
--- a/slides/kernel-frameworks/link-structures-netdev.dia
+++ b/slides/kernel-frameworks/link-structures-rtc.dia
@@ -126,12 +126,12 @@
         <dia:point val="8.5,2"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="7.055,1.62625;9.945,2.37375"/>
+        <dia:rectangle val="6.2875,1.62625;10.7125,2.37375"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#rtl8150_t#</dia:string>
+            <dia:string>#struct ds1305#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="0" name="Helvetica"/>
@@ -162,7 +162,7 @@
         <dia:point val="5,9"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="4.95,8.95;12.05,14.05"/>
+        <dia:rectangle val="4.95,8.95;12.05,16.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
         <dia:point val="5,9"/>
@@ -171,7 +171,7 @@
         <dia:real val="7"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="5"/>
+        <dia:real val="7"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="0.10000000149011612"/>
@@ -220,12 +220,12 @@
         <dia:point val="8.5,9.5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="7.38375,9.12625;9.61625,9.87375"/>
+        <dia:rectangle val="5.82625,9.12625;11.1738,9.87375"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#netdev#</dia:string>
+            <dia:string>#struct rtc_device#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="0" name="Helvetica"/>
@@ -253,13 +253,13 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O6">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,17"/>
+        <dia:point val="5,19"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="4.95,16.95;12.05,24.05"/>
+        <dia:rectangle val="4.95,18.95;12.05,26.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="5,17"/>
+        <dia:point val="5,19"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="7"/>
@@ -282,13 +282,13 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O7">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,15"/>
+        <dia:point val="5,17"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="4.95,14.95;12.05,17.05"/>
+        <dia:rectangle val="4.95,16.95;12.05,19.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="5,15"/>
+        <dia:point val="5,17"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="7"/>
@@ -311,15 +311,15 @@
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O8">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,16"/>
+        <dia:point val="8.5,18"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="6.34,15.5982;10.6787,16.4018"/>
+        <dia:rectangle val="5.8,17.6262;11.2,18.3737"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#usb_interface#</dia:string>
+            <dia:string>#struct spi_device#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="0" name="Helvetica"/>
@@ -328,7 +328,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,16.2119"/>
+            <dia:point val="8.5,18.2212"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -347,13 +347,13 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O9">
       <dia:attribute name="obj_pos">
-        <dia:point val="6,19"/>
+        <dia:point val="6,21"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="5.95,18.95;11.05,22.05"/>
+        <dia:rectangle val="5.95,20.95;11.05,24.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="6,19"/>
+        <dia:point val="6,21"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="5"/>
@@ -376,13 +376,13 @@
     </dia:object>
     <dia:object type="Standard - Box" version="0" id="O10">
       <dia:attribute name="obj_pos">
-        <dia:point val="6,18"/>
+        <dia:point val="6,20"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="5.95,17.95;11.05,19.05"/>
+        <dia:rectangle val="5.95,19.95;11.05,21.05"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="6,18"/>
+        <dia:point val="6,20"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="5"/>
@@ -405,10 +405,10 @@
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O11">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,18.5"/>
+        <dia:point val="8.5,20.5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="7.44625,18.1262;9.55375,18.8737"/>
+        <dia:rectangle val="7.44625,20.1262;9.55375,20.8737"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -422,7 +422,7 @@
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,18.7212"/>
+            <dia:point val="8.5,20.7212"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -441,10 +441,10 @@
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O12">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,19"/>
+        <dia:point val="8.5,21"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="6.67625,19;10.3238,20.5475"/>
+        <dia:rectangle val="6.67625,21;10.3238,22.5475"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -459,7 +459,7 @@ driver_data#</dia:string>
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,19.595"/>
+            <dia:point val="8.5,21.595"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -478,16 +478,16 @@ driver_data#</dia:string>
     </dia:object>
     <dia:object type="Standard - ZigZagLine" version="1" id="O13">
       <dia:attribute name="obj_pos">
-        <dia:point val="6,19"/>
+        <dia:point val="11,22"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="2.95,0.638197;6.05,19.05"/>
+        <dia:rectangle val="10.95,1.6382;14.05,22.05"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="6,19"/>
-        <dia:point val="3,19"/>
-        <dia:point val="3,1"/>
-        <dia:point val="5,1"/>
+        <dia:point val="11,22"/>
+        <dia:point val="14,22"/>
+        <dia:point val="14,2"/>
+        <dia:point val="12,2"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="0"/>
@@ -507,21 +507,20 @@ driver_data#</dia:string>
         <dia:real val="0.5"/>
       </dia:attribute>
       <dia:connections>
-        <dia:connection handle="0" to="O9" connection="0"/>
-        <dia:connection handle="1" to="O1" connection="0"/>
+        <dia:connection handle="1" to="O1" connection="4"/>
       </dia:connections>
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O14">
       <dia:attribute name="obj_pos">
-        <dia:point val="8.5,4.5"/>
+        <dia:point val="6,4"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="6.2675,3.905;8.5,4.6525"/>
+        <dia:rectangle val="6,3.62625;6.9175,4.37375"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#netdev#</dia:string>
+            <dia:string>#spi#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="0" name="Helvetica"/>
@@ -530,35 +529,32 @@ driver_data#</dia:string>
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,4.5"/>
+            <dia:point val="6,4.22125"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
           </dia:attribute>
           <dia:attribute name="alignment">
-            <dia:enum val="2"/>
+            <dia:enum val="0"/>
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
       <dia:attribute name="valign">
-        <dia:enum val="3"/>
+        <dia:enum val="2"/>
       </dia:attribute>
-      <dia:connections>
-        <dia:connection handle="0" to="O0" connection="8"/>
-      </dia:connections>
     </dia:object>
     <dia:object type="Standard - ZigZagLine" version="1" id="O15">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,4.5"/>
+        <dia:point val="5,4"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="3.9,4.45;5.1118,9.3618"/>
+        <dia:rectangle val="2.95,3.95;5.1118,18.3618"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="5,4.5"/>
-        <dia:point val="3.95,4.5"/>
-        <dia:point val="3.95,9"/>
-        <dia:point val="5,9"/>
+        <dia:point val="5,4"/>
+        <dia:point val="3,4"/>
+        <dia:point val="3,18"/>
+        <dia:point val="5,18"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="0"/>
@@ -566,7 +562,7 @@ driver_data#</dia:string>
         <dia:enum val="0"/>
       </dia:attribute>
       <dia:attribute name="autorouting">
-        <dia:boolean val="true"/>
+        <dia:boolean val="false"/>
       </dia:attribute>
       <dia:attribute name="end_arrow">
         <dia:enum val="22"/>
@@ -578,21 +574,145 @@ driver_data#</dia:string>
         <dia:real val="0.5"/>
       </dia:attribute>
       <dia:connections>
-        <dia:connection handle="0" to="O0" connection="3"/>
-        <dia:connection handle="1" to="O4" connection="0"/>
+        <dia:connection handle="1" to="O7" connection="3"/>
       </dia:connections>
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O16">
       <dia:attribute name="obj_pos">
+        <dia:point val="6,5"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="6,4.62625;6.865,5.37375"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#rtc#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="6,5.22125"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - ZigZagLine" version="1" id="O17">
+      <dia:attribute name="obj_pos">
+        <dia:point val="5,5"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="3.95,4.95;5.1118,9.8618"/>
+      </dia:attribute>
+      <dia:attribute name="orth_points">
+        <dia:point val="5,5"/>
+        <dia:point val="4,5"/>
+        <dia:point val="4,9.5"/>
+        <dia:point val="5,9.5"/>
+      </dia:attribute>
+      <dia:attribute name="orth_orient">
+        <dia:enum val="0"/>
+        <dia:enum val="1"/>
+        <dia:enum val="0"/>
+      </dia:attribute>
+      <dia:attribute name="autorouting">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="1" to="O4" connection="3"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Box" version="0" id="O18">
+      <dia:attribute name="obj_pos">
+        <dia:point val="6,12"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="5.95,11.95;11.05,14.05"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="6,12"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="5"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="2"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0.10000000149011612"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#2f004a"/>
+      </dia:attribute>
+      <dia:attribute name="inner_color">
+        <dia:color val="#efb9ff"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Box" version="0" id="O19">
+      <dia:attribute name="obj_pos">
+        <dia:point val="6,11"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="5.95,10.95;11.05,12.05"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="6,11"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="5"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="1"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0.10000000149011612"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#2f004a"/>
+      </dia:attribute>
+      <dia:attribute name="inner_color">
+        <dia:color val="#efb9ff"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O20">
+      <dia:attribute name="obj_pos">
         <dia:point val="8.5,11.5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="5.6975,10.905;8.5,11.6525"/>
+        <dia:rectangle val="7.44625,11.1263;9.55375,11.8738"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#dev        #</dia:string>
+            <dia:string>#device#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="0" name="Helvetica"/>
@@ -601,35 +721,71 @@ driver_data#</dia:string>
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="8.5,11.5"/>
+            <dia:point val="8.5,11.7213"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
           </dia:attribute>
           <dia:attribute name="alignment">
-            <dia:enum val="2"/>
+            <dia:enum val="1"/>
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
       <dia:attribute name="valign">
-        <dia:enum val="3"/>
+        <dia:enum val="2"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O19" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O21">
+      <dia:attribute name="obj_pos">
+        <dia:point val="8.5,12.5"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="7.45078,12.5;9.54922,13.2475"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#parent#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="8.5,13.095"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="0"/>
       </dia:attribute>
       <dia:connections>
         <dia:connection handle="0" to="O3" connection="8"/>
       </dia:connections>
     </dia:object>
-    <dia:object type="Standard - ZigZagLine" version="1" id="O17">
+    <dia:object type="Standard - ZigZagLine" version="1" id="O22">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,11.5"/>
+        <dia:point val="11,13"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="3.9,11.45;6.1118,18.3618"/>
+        <dia:rectangle val="10.8882,12.95;13.05,20.3618"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="5,11.5"/>
-        <dia:point val="3.95,11.5"/>
-        <dia:point val="3.95,18"/>
-        <dia:point val="6,18"/>
+        <dia:point val="11,13"/>
+        <dia:point val="13,13"/>
+        <dia:point val="13,20"/>
+        <dia:point val="11,20"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="0"/>
@@ -637,7 +793,7 @@ driver_data#</dia:string>
         <dia:enum val="0"/>
       </dia:attribute>
       <dia:attribute name="autorouting">
-        <dia:boolean val="true"/>
+        <dia:boolean val="false"/>
       </dia:attribute>
       <dia:attribute name="end_arrow">
         <dia:enum val="22"/>
@@ -649,8 +805,8 @@ driver_data#</dia:string>
         <dia:real val="0.5"/>
       </dia:attribute>
       <dia:connections>
-        <dia:connection handle="0" to="O3" connection="3"/>
-        <dia:connection handle="1" to="O10" connection="0"/>
+        <dia:connection handle="0" to="O18" connection="4"/>
+        <dia:connection handle="1" to="O10" connection="2"/>
       </dia:connections>
     </dia:object>
   </dia:layer>



More information about the training-materials-updates mailing list