From 0351969fdffa9959921d8ec38b7d0d7cf095fcd0 Mon Sep 17 00:00:00 2001
From: John Ogness <john.ogness@linutronix.de>
Date: Tue, 20 Feb 2018 15:33:14 +0100
Subject: remove german slides when english are available

Remove german slides if a completely translated english version is
available. For slides that have been translated to english, but do
not contain all the information of the german slides, the german
slides are still available. But they are only available for
reference. That will not be built.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
---
 .../module-basics/pres_module-basics_de.tex        | 523 ---------------------
 1 file changed, 523 deletions(-)
 delete mode 100644 kernel-devel/module-basics/pres_module-basics_de.tex

(limited to 'kernel-devel/module-basics/pres_module-basics_de.tex')

diff --git a/kernel-devel/module-basics/pres_module-basics_de.tex b/kernel-devel/module-basics/pres_module-basics_de.tex
deleted file mode 100644
index e303cca..0000000
--- a/kernel-devel/module-basics/pres_module-basics_de.tex
+++ /dev/null
@@ -1,523 +0,0 @@
-\input{configpres}
-
-\title{Treiber Modul Grundlagen}
-\maketitle
-
-\subsection{Kernel Module}
-
-\subsubsection{Aufbau}
-\begin{frame}[fragile]
-\frametitle{Aufbau eines Treiber Moduls}
-\pause
-\begin{itemize}
-\item Header
-\pause
-\begin{scriptsize}
-\begin{lstlisting}[frame=trBL]
-#include <linux/init.h>
-#include <linux/module.h>
-\end{lstlisting}
-\end{scriptsize}
-\pause
-\item Init
-\pause
-\begin{scriptsize}
-\begin{lstlisting}[frame=trBL]
-static int __init vain_init(void)
-{
-        printk(KERN_INFO "vain_init: done\n");
-        return 0;
-}
-
-module_init(vain_init);
-\end{lstlisting}
-\end{scriptsize}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Aufbau (fort.)}
-\begin{itemize}
-\item Exit
-\pause
-\begin{scriptsize}
-\begin{lstlisting}[frame=trBL]
-static void __exit vain_exit(void)
-{
-        printk(KERN_INFO "vain_exit: done\n");
-}
-
-module_exit(vain_exit);
-\end{lstlisting}
-\end{scriptsize}
-\pause
-\item Beschreibung
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-MODULE_AUTHOR("Benedikt Spranger <b.spranger@linutronix.de>");
-MODULE_DESCRIPTION("a more or less useless module");
-MODULE_LICENSE("GPL v2");
-MODULE_VERSION("0815");
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\subsubsection{Rumpf Treiber}
-\begin{frame}[fragile]
-\frametitle{Rumpf Treiber}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain/vain.c}
-\end{tiny}
-\end{frame}
-
-\subsubsection{Makefile}
-\begin{frame}[fragile]
-\frametitle{Makefile}
-\begin{scriptsize}
-\lstinputlisting[language=make]{kernel-devel/module-basics/vain/Makefile}
-\end{scriptsize}
-\end{frame}
-
-\subsubsection{Bauen und Laden}
-\begin{frame}[fragile]
-\frametitle{Bauen, laden und entladen des Moduls}
-\begin{itemize}
-\item Bauen
-\pause
-\begin{tiny}
-\begin{verbatim}
-$ make
-make -C /lib/modules/2.6.30/build M=/path/to/vain modules
-make[1]: Entering directory `/usr/src/linux-2.6.30'
-  CC [M]  /path/to/vain/vain.o
-  Building modules, stage 2.
-  MODPOST 1 modules
-  CC      /path/to/vain/vain.mod.o
-  LD [M]  /path/to/vain/vain.ko
-make[1]: Leaving directory `/usr/src/linux-2.6.30'
-$
-\end{verbatim}
-\end{tiny}
-\pause
-\item Laden
-\pause
-\begin{tiny}
-\begin{verbatim}
-# insmod ./vain.ko
-vain_init: done
-#
-\end{verbatim}
-\end{tiny}
-\item Entladen
-\pause
-\begin{tiny}
-\begin{verbatim}
-# rmmod vain
-vain_exit: done
-#
-\end{verbatim}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{Komplexere Module}
-\pause
-\begin{itemize}
-\item Teil eines Bussystems
-\pause
-\begin{itemize}
-\item PCI
-\pause
-\item Platform
-\pause
-\item USB
-\pause
-\item \dots
-\pause
-\end{itemize}
-\item Teil eines Subsystems\footnote{nicht Teil des Vortrages}
-\pause
-\begin{itemize}
-\item Character-Devices
-\pause
-\item Block-Devices
-\pause
-\item Network-Devices
-\pause
-\item \dots
-\end{itemize}
-\end{itemize}
-\end{frame}
-
-\subsubsection{PCI Treiber Modul}
-\begin{frame}[fragile]
-\frametitle{Aufbau eines PCI Treiber Moduls}
-\pause
-\begin{itemize}
-\item Header
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-#include <linux/init.h>
-#include <linux/module.h>
-|#include <linux/pci.h>|
-\end{lstlisting}
-\end{tiny}
-\pause
-\item Init
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-static int __init vain_pci_init(void)
-{
-        int err;
-
-        |err = pci_register_driver(&vain_pci_driver);|
-
-        if (!err)
-                printk(KERN_INFO "vain_pci_init: done\n");
-        return err;
-}
-
-module_init(vain_pci_init);
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Aufbau eines PCI Treiber Moduls (fort.)}
-\begin{itemize}
-\item Exit
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-static void __exit vain_pci_exit(void)
-{
-        |pci_unregister_driver(&vain_pci_driver);|
-        printk(KERN_INFO ``vain_pci_exit: done\n'');
-}
-
-module_exit(vain_pci_exit);
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Aufbau eines PCI Treiber Moduls (fort.)}
-\begin{itemize}
-\item struct pci\_driver
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-|static struct pci_driver vain_pci_driver = {
-        .name =         "vain_pci",
-        .id_table =     vain_pci_ids,
-        .probe =        vain_pci_probe,
-        .remove =       __devexit_p(vain_pci_remove),
-};|
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Aufbau eines PCI Treiber Moduls (fort.)}
-\begin{itemize}
-\item struct struct pci\_device\_id
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-|static struct pci_device_id vain_pci_ids[] __devinitdata = {
-        {PCI_VENDOR_ID_ILLEGAL_VENDOR, PCI_DEVICE_ID_ILLEGAL_VENDOR_DEVICE,
-         PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
-        {0, }
-};|
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Aufbau eines PCI Treiber Moduls (fort.)}
-\begin{itemize}
-\item probe
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-|static int __devinit vain_pci_probe(struct pci_dev *pdev,
-                                    const struct pci_device_id *ent)
-{
-        int ret;
-
-        ret = pci_enable_device(pdev);
-        if (ret)
-        	goto err_free;
-
-        ret = pci_request_regions(pdev, "vain_pci");
-        if (ret)
-                goto err_disable_device;
-
-        info->base = pci_ioremap_bar(pdev, 0);
-        if (!info->base) {
-                ret = -ENODEV;
-                goto err_rel_regs;
-        }
-
-        return 0;|
-\end{lstlisting}
-\dots
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Aufbau eines PCI Treiber Moduls (fort.)}
-\begin{itemize}
-\item remove
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-|static void __devexit vain_pci_remove(struct pci_dev *pdev)
-{
-        struct vain_pci_info *info = pci_get_drvdata(pdev);
-
-        iounmap(info->base);
-        pci_release_regions(pdev);
-        pci_disable_device(pdev);
-        pci_set_drvdata(pdev, NULL);
-
-        kfree (info);
-}|
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{PCI Treiber Hintergrund}
-\includegraphics[width=7cm]{images/PCI_driver.png}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{PCI Rumpf Treiber}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_1.c}
-\end{tiny}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{PCI Rumpf Treiber (fort.)}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_2.c}
-\end{tiny}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{PCI Rumpf Treiber (fort.)}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_3.c}
-\end{tiny}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{PCI Rumpf Treiber (fort.)}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_4.c}
-\end{tiny}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{PCI Rumpf Treiber (fort.)}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_5.c}
-\end{tiny}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{PCI Rumpf Treiber (fort.)}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_6.c}
-\end{tiny}
-\end{frame}
-
-\subsubsection{Platform Treiber Modul}
-\begin{frame}[fragile]
-\frametitle{Aufbau eines Platform Treiber Moduls}
-\pause
-\begin{itemize}
-\item Header
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-#include <linux/init.h>
-#include <linux/module.h>
-|#include <linux/platform_device.h>
-
-#include <asm/io.h>|
-\end{lstlisting}
-\end{tiny}
-\pause
-\item Init
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-static int __init vain_plat_init(void)
-{
-        int err;
-
-        |err = platform_driver_register(&vain_plat_driver);|
-
-        if (!err)
-                printk(KERN_INFO ``vain_plat_init: done\n'');
-        return err;
-}
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Aufbau eines Platform Treiber Moduls (fort.)}
-\pause
-\begin{itemize}
-\item Exit
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-static void __exit vain_plat_exit(void)
-{
-        |platform_driver_unregister(&vain_plat_driver);|
-        printk(KERN_INFO ``vain_plat_exit: done\n'');
-}
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Aufbau eines Platform Treiber Moduls (fort.)}
-\pause
-\begin{itemize}
-\item struct platform\_driver
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-|static struct platform_driver vain_plat_driver = {
-        .driver         = {
-                .name   = "vain_plat",
-                .owner  = THIS_MODULE,
-        },
-        .probe          = vain_plat_probe,
-        .remove         = __devexit_p(vain_plat_remove),
-};|
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Aufbau eines Platform Treiber Moduls (fort.)}
-\pause
-\begin{itemize}
-\item probe
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-|static int __devinit vain_plat_probe(struct platform_device *pdev)
-{
-        struct resource *res;
-        int err;
-
-        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-        if (unlikely(!res))
-                goto err_free;
-
-        mem = request_mem_region(res->start, resource_size(res), pdev->name);
-        if (!mem)
-                goto err_free;
-
-        info->base = ioremap(res->start, resource_size(res));
-        if (!info->base)
-                goto err_ioremap;
-
-        platform_set_drvdata(pdev, info);
-
-        return 0;|
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Aufbau eines Platform Treiber Moduls (fort.)}
-\pause
-\begin{itemize}
-\item remove
-\pause
-\begin{tiny}
-\begin{lstlisting}[frame=trBL]
-|static int __devexit vain_plat_remove(struct platform_device *pdev)
-{
-        struct vain_plat_info *info = platform_get_drvdata(pdev);
-        struct resource *res;
-
-        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-        iounmap(info->base);
-        release_mem_region(res->start, resource_size(res));
-        platform_set_drvdata(pdev, NULL);
-
-        kfree (info);
-
-        return 0;
-}|
-\end{lstlisting}
-\end{tiny}
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{Platform Treiber Hintergrund}
-\includegraphics[width=7cm]{images/plat_driver.png}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Platform Rumpf Treiber}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_1.c}
-\end{tiny}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Platform Rumpf Treiber (fort.)}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_2.c}
-\end{tiny}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Platform Rumpf Treiber (fort.)}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_3.c}
-\end{tiny}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Platform Rumpf Treiber (fort.)}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_4.c}
-\end{tiny}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Platform Rumpf Treiber (fort.)}
-\begin{tiny}
-\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_5.c}
-\end{tiny}
-\end{frame}
-
-\input{tailpres}
-- 
cgit v1.2.3

