From 245ac0298e857f6fd46c547cbb71f70b9a3c00d2 Mon Sep 17 00:00:00 2001 From: 25077667 Date: Fri, 23 Jul 2021 02:10:57 +0800 Subject: [PATCH] Use TikZ to re-draw seq_file graph --- img/seq_file.png | Bin 26202 -> 0 bytes lkmpg.tex | 28 +++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) delete mode 100644 img/seq_file.png diff --git a/img/seq_file.png b/img/seq_file.png deleted file mode 100644 index 4d15a3a1672be847f9e61c88401235eafbeaebb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26202 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 diff --git a/lkmpg.tex b/lkmpg.tex index 0a66089..7595f2e 100644 --- a/lkmpg.tex +++ b/lkmpg.tex @@ -5,6 +5,16 @@ \usepackage{graphicx} \usepackage{fancyhdr} +% tikz settings +\usepackage{tikz} +\usetikzlibrary{shapes.geometric, arrows, shadows, decorations.text} +\tikzstyle{startstop} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30, drop shadow] +\tikzstyle{io} = [trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30] +\tikzstyle{process} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, text width=3cm, draw=black, fill=orange!30] +\tikzstyle{decision} = [diamond, minimum width=1cm, minimum height=1cm, text centered, draw=black, fill=green!30] +\tikzstyle{arrow} = [thick,->,>=stealth] +\tikzstyle{line} = [draw, -latex'] + % packages for code \usepackage{verbatim} \usepackage{minted} @@ -733,7 +743,23 @@ non NULL value, the function next() is called. This function is an iterator, the BE CARREFUL: when a sequence is finished, another one starts. That means that at the end of function stop(), the function start() is called again. This loop finishes when the function start() returns NULL. You can see a scheme of this in the figure "How seq\_file works". \begin{center} -\includegraphics[width=.9\linewidth]{img/seq_file.png} + \begin{tikzpicture}[node distance=2cm, thick] + \node (start) [startstop] {start() treatment}; + \node (branch1) [decision, below of=start, yshift=-1cm] {return is NULL?}; + \node (emptynode) [right of=branch1, xshift=2cm] {Yes}; + \node (next) [process, below of=branch1, yshift=-1cm] {next() treatment}; + \node (branch2) [decision, below of=next, yshift=-1cm] {return is NULL?}; + \node (stop) [startstop, below of=branch2, yshift=-1cm] {stop() treatment}; + + + \draw [->] (start) -- (branch1); + \draw [->] (branch1) -- node[anchor=east] {} (emptynode); + \draw [->] (branch1) -- node[left=2em, anchor=south] {No} (next); + \draw [->] (next) -- (branch2); + \draw [->] (branch2.west) to [out=135, in=-135, bend left=45] node [left] {No} (next.west); + \draw [->] (branch2) -- node[left=2em, anchor=south] {Yes} (stop); + \draw [->] (stop.west) to [out=135, in=-135] node [left] {} (start.west); + \end{tikzpicture} \end{center} Seq\_file provides basic functions for proc\_ops, as seq\_read, seq\_lseek, and some others. But nothing to write in the /proc file. Of course, you can still use the same way as in the previous example.