Skip to content

Commit 7a6dd1f

Browse files
committed
Modify the descritions of seq_file and flowchart
7.4 The seq_file is missing the behavior that occurs when it directly returns NULL after the start step. Also, in the flowchart, the first decision where `return is NULL` is `Yes` points to nothing, which is not defined in ISO 5807. ISO 5807 section 10.3.1.2 states logic path of a decision, "Each exit from a symbol be accompanied by the appropriate condition values to show the logic path which it represents, so that the conditions and the associated references are identified." The behavior of pointing to nothing does not have associated references and does not indicate the relation of this logic path. Refs: 1. The Liunx Kernel Module Programming Guide 7.4 Manage /proc file with seq_file 2. ISO-5807-1985
1 parent 1d3943a commit 7a6dd1f

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

lkmpg.tex

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1234,7 +1234,7 @@ \subsection{Manage /proc file with seq\_file}
12341234
The \cpp|seq_file| API starts a sequence when a user read the \verb|/proc| file.
12351235

12361236
A sequence begins with the call of the function \cpp|start()|.
1237-
If the return is a non \cpp|NULL| value, the function \cpp|next()| is called.
1237+
If the return is a non \cpp|NULL| value, the function \cpp|next()| is called; otherwise, otherwise, the \cpp|stop()| function is called directly.
12381238
This function is an iterator, the goal is to go through all the data.
12391239
Each time \cpp|next()| is called, the function \cpp|show()| is also called.
12401240
It writes data values in the buffer read by the user.
@@ -1251,13 +1251,12 @@ \subsection{Manage /proc file with seq\_file}
12511251
\begin{tikzpicture}[node distance=2cm, thick]
12521252
\node (start) [startstop] {start() treatment};
12531253
\node (branch1) [decision, below of=start, yshift=-1cm] {return is NULL?};
1254-
\node (emptynode) [right of=branch1, xshift=2cm] {Yes};
12551254
\node (next) [process, below of=branch1, yshift=-1cm] {next() treatment};
12561255
\node (branch2) [decision, below of=next, yshift=-1cm] {return is NULL?};
12571256
\node (stop) [startstop, below of=branch2, yshift=-1cm] {stop() treatment};
12581257

12591258
\draw [->] (start) -- (branch1);
1260-
\draw [->] (branch1) -- node[anchor=east] {} (emptynode);
1259+
\draw [->] (branch1.east) to [out=135, in=-135, bend left=45] node [right] {Yes} (stop.east);
12611260
\draw [->] (branch1) -- node[left=2em, anchor=south] {No} (next);
12621261
\draw [->] (next) -- (branch2);
12631262
\draw [->] (branch2.west) to [out=135, in=-135, bend left=45] node [left] {No} (next.west);

0 commit comments

Comments
 (0)