From 0351969fdffa9959921d8ec38b7d0d7cf095fcd0 Mon Sep 17 00:00:00 2001 From: John Ogness 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 --- kernel-devel/char-device/pres_char-device_de.tex | 287 ----------------------- 1 file changed, 287 deletions(-) delete mode 100644 kernel-devel/char-device/pres_char-device_de.tex (limited to 'kernel-devel/char-device/pres_char-device_de.tex') diff --git a/kernel-devel/char-device/pres_char-device_de.tex b/kernel-devel/char-device/pres_char-device_de.tex deleted file mode 100644 index 6568af4..0000000 --- a/kernel-devel/char-device/pres_char-device_de.tex +++ /dev/null @@ -1,287 +0,0 @@ -\input{configpres} - -\title{Interaktion eines Character Device Treibers} -\maketitle - -\subsection{Character Devices} - -\subsubsection{Syscall Interface} -\begin{frame} -\frametitle{Syscall Interface} -\begin{center} -\includegraphics[width=5cm]{images/syscall.png} -\end{center} -\end{frame} - -\subsubsection{Struktur} -\begin{frame} -\frametitle{Interaktion eines Character Device Treibers} -\pause -\begin{itemize} -\item open -\pause -\item release -\pause -\item read -\pause -\item write -\pause -\item fsync -\pause -\item llseek -\pause -\item poll -\pause -\item mmap -\pause -\item ioctl -\pause -\item \dots -\end{itemize} -\end{frame} - -\begin{frame}[fragile] -\frametitle{open} -\pause -\begin{itemize} -\item Prototyp -\pause -\begin{tiny} -\begin{lstlisting}[frame=trBL] -int (*open) (struct inode *, struct file *); -\end{lstlisting} -\end{tiny} -\pause -\item Beschreibung -\pause -\begin{description} -\item [open:] Erste Operation auf einem Character-Device. Die Funktion muss -nicht implementiert werden. In diesem Fall schlägt ein Öffnen des Devices nie -fehl und es gibt keine Benachrichtigung des Treibers. -\end{description} -\pause -\item Datenfluss -\end{itemize} -\pause -\begin{center} -\includegraphics[width=5cm]{images/open.png} -\end{center} -\end{frame} - -\begin{frame}[fragile] -\frametitle{release} -\pause -\begin{itemize} -\item Prototyp -\pause -\begin{tiny} -\begin{lstlisting}[frame=trBL] -int (*release) (struct inode *, struct file *); -\end{lstlisting} -\end{tiny} -\pause -\item Beschreibung -\pause -\begin{description} -\item [release:] Letzte Operation auf einem Character-Device. Die Funktion muss -nicht implementiert werden. In diesem Fall schlägt ein Öffnen des Devices nie -fehl und es gibt keine Benachrichtigung des Treibers. -\end{description} -\pause -\item Datenfluss -\end{itemize} -\pause -\begin{center} -\includegraphics[width=5cm]{images/release.png} -\end{center} -\end{frame} - -\begin{frame}[fragile] -\frametitle{read} -\pause -\begin{itemize} -\item Prototyp -\pause -\begin{tiny} -\begin{lstlisting}[frame=trBL] -ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); -\end{lstlisting} -\end{tiny} -\pause -\item Beschreibung -\pause -\begin{description} -\item [read:] Lesen von Daten des Devices. Die Daten werden mit Hilfe von -\emph{copy\_to\_user} in den Userspace kopiert. -\end{description} -\pause -\item Datenfluss -\end{itemize} -\pause -\begin{center} -\includegraphics[width=5cm]{images/read.png} -\end{center} -\end{frame} - -\begin{frame}[fragile] -\frametitle{write} -\pause -\begin{itemize} -\item Prototyp -\pause -\begin{tiny} -\begin{lstlisting}[frame=trBL] -ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); -\end{lstlisting} -\end{tiny} -\pause -\item Beschreibung -\pause -\begin{description} -\item [write:] Schreiben von Daten an das Devices. Die Daten werden mit Hilfe -von \emph{copy\_from\_user} aus dem Userspace kopiert. -\end{description} -\pause -\item Datenfluss -\end{itemize} -\pause -\begin{center} -\includegraphics[width=5cm]{images/write.png} -\end{center} -\end{frame} - -\begin{frame}[fragile] -\frametitle{fsync} -\pause -\begin{itemize} -\item Prototyp -\pause -\begin{tiny} -\begin{lstlisting}[frame=trBL] -int (*fsync) (struct file *, struct dentry *, int datasync); -\end{lstlisting} -\end{tiny} -\pause -\item Beschreibung -\pause -\begin{description} -\item [fsync:] Das Schreiben aller gecachten Daten eines Devices erzwingen. -\end{description} -\pause -\item Datenfluss -\end{itemize} -\pause -\begin{center} -\includegraphics[width=5cm]{images/fsync.png} -\end{center} -\end{frame} - -\begin{frame}[fragile] -\frametitle{llseek} -\pause -\begin{itemize} -\item Prototyp -\pause -\begin{tiny} -\begin{lstlisting}[frame=trBL] -loff_t (*llseek) (struct file *, loff_t, int); -\end{lstlisting} -\end{tiny} -\pause -\item Beschreibung -\pause -\begin{description} -\item [llseek:] Setzt die aktuelle Position für Lese- und Schreibzugriffe. -\end{description} -\pause -\item Datenfluss -\end{itemize} -\pause -\begin{center} -\includegraphics[width=5cm]{images/llseek.png} -\end{center} -\end{frame} - -\begin{frame}[fragile] -\frametitle{poll} -\pause -\begin{itemize} -\item Prototyp -\pause -\begin{tiny} -\begin{lstlisting}[frame=trBL] -unsigned int (*poll) (struct file *, struct poll_table_struct *); -\end{lstlisting} -\end{tiny} -\pause -\item Beschreibung -\pause -\begin{description} -\item [poll:] Implementiert poll, epoll und select. Wird poll nicht -implementiert, so muss nicht blockierendes Lesen und Schreiben möglich sein. -\end{description} -\pause -\item Datenfluss -\end{itemize} -\pause -\begin{center} -\includegraphics[width=5cm]{images/poll.png} -\end{center} -\end{frame} - -\begin{frame}[fragile] -\frametitle{mmap} -\pause -\begin{itemize} -\item Prototyp -\pause -\begin{tiny} -\begin{lstlisting}[frame=trBL] -int (*mmap) (struct file *, struct vm_area_struct *); -\end{lstlisting} -\end{tiny} -\pause -\item Beschreibung -\pause -\begin{description} -\item [mmap:] Legt ein Speichermapping des Devices im Kontext des -Userspace-Prozesses an. -\end{description} -\pause -\item Datenfluss -\end{itemize} -\pause -\begin{center} -\includegraphics[width=5cm]{images/mmap.png} -\end{center} -\end{frame} - -\begin{frame}[fragile] -\frametitle{ioctl} -\pause -\begin{itemize} -\item Prototyp -\pause -\begin{tiny} -\begin{lstlisting}[frame=trBL] -int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); -\end{lstlisting} -\end{tiny} -\pause -\item Beschreibung -\pause -\begin{description} -\item [ioctl:] Implementiert Device-spezifische Kommandos. Sollte, da in den -meisten Fällen bessere, standartisierte Schnittstellen existieren, vermieden -werden. -\end{description} -\pause -\item Datenfluss -\end{itemize} -\pause -\begin{center} -\includegraphics[width=5cm]{images/ioctl.png} -\end{center} -\end{frame} - -\input{tailpres} -- cgit v1.2.3