Hi Akira, Thanks for the patch. The new scheme worked great as a good example of composing my commits. So, Acked-by: Junchang Wang <junchangwang@xxxxxxxxx> Thanks, --Junchang On Sun, Jul 21, 2019 at 8:02 AM Akira Yokosawa <akiyks@xxxxxxxxx> wrote: > > From 245899f43fd007aa344180c0089515cd90f84db2 Mon Sep 17 00:00:00 2001 > From: Akira Yokosawa <akiyks@xxxxxxxxx> > Date: Sat, 27 Apr 2019 21:04:40 +0900 > Subject: [PATCH 1/7] toyrcu: Convert Listing B.1 to new scheme > > This commit was originally presented to Junchang as an example where > code fragments extracted from two source files under CodeSamples/ are > merged into a code snippet. > > Junchan employed this scheme in commits 686f3f3b721c ("rcu: Use > READ_ONCE() and WRITE_ONCE() for shared variable rcu_gp_ctr"), > a26c1625bb0d ("rcu_qs: Use READ_ONCE() AND WRITE_ONCE() for shared > variable rcu_gp_ctr"), and b9696a4a456f ("rcu_nest: Update description > of rcu_nest.[hc]"). > > Extra vertical space needs to be canceled by the \vspace*{} command > between the two \input{} commands. > \fvset{firstnumber=last} is to continue line numbering. > \fvset{firstnumber=auto} restores the default setting. > > Also tweak positioning option of the listing environment. > > Cc: Junchang Wang <junchangwang@xxxxxxxxx> > Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> > --- > CodeSamples/defer/rcu_lock.c | 2 ++ > CodeSamples/defer/rcu_lock.h | 2 ++ > appendix/toyrcu/toyrcu.tex | 26 ++++---------------------- > 3 files changed, 8 insertions(+), 22 deletions(-) > > diff --git a/CodeSamples/defer/rcu_lock.c b/CodeSamples/defer/rcu_lock.c > index 8d45ac89..08b87fbd 100644 > --- a/CodeSamples/defer/rcu_lock.c > +++ b/CodeSamples/defer/rcu_lock.c > @@ -20,12 +20,14 @@ > > #include "../api.h" > #include "rcu_lock.h" > +//\begin{snippet}[labelbase=ln:defer:rcu_lock:synchronize,commandchars=\\\[\]] > > void synchronize_rcu(void) > { > spin_lock(&rcu_gp_lock); > spin_unlock(&rcu_gp_lock); > } > +//\end{snippet} > > #ifdef TEST > #include "rcutorture.h" > diff --git a/CodeSamples/defer/rcu_lock.h b/CodeSamples/defer/rcu_lock.h > index 224ea0e4..bf6f9b3c 100644 > --- a/CodeSamples/defer/rcu_lock.h > +++ b/CodeSamples/defer/rcu_lock.h > @@ -26,6 +26,7 @@ static void rcu_init(void) > { > } > > +//\begin{snippet}[labelbase=ln:defer:rcu_lock:lock_unlock,commandchars=\\\[\]] > static void rcu_read_lock(void) > { > spin_lock(&rcu_gp_lock); > @@ -35,5 +36,6 @@ static void rcu_read_unlock(void) > { > spin_unlock(&rcu_gp_lock); > } > +//\end{snippet} > > extern void synchronize_rcu(void); > diff --git a/appendix/toyrcu/toyrcu.tex b/appendix/toyrcu/toyrcu.tex > index 0e84b058..d876595b 100644 > --- a/appendix/toyrcu/toyrcu.tex > +++ b/appendix/toyrcu/toyrcu.tex > @@ -30,29 +30,11 @@ provides a summary and a list of desirable RCU properties. > > \section{Lock-Based RCU} > \label{sec:app:toyrcu:Lock-Based RCU} > +\NoIndentAfterThis > > -\begin{listing}[bp] > -{ \scriptsize > -\begin{verbbox} > - 1 static void rcu_read_lock(void) > - 2 { > - 3 spin_lock(&rcu_gp_lock); > - 4 } > - 5 > - 6 static void rcu_read_unlock(void) > - 7 { > - 8 spin_unlock(&rcu_gp_lock); > - 9 } > - 10 > - 11 void synchronize_rcu(void) > - 12 { > - 13 spin_lock(&rcu_gp_lock); > - 14 spin_unlock(&rcu_gp_lock); > - 15 } > -\end{verbbox} > -} > -\centering > -\theverbbox > +\begin{listing}[htbp] > +\input{CodeSamples/defer/rcu_lock@lock_unlock.fcv}\vspace*{-11pt}\fvset{firstnumber=last} > +\input{CodeSamples/defer/rcu_lock@xxxxxxxxxxxxxxx}\fvset{firstnumber=auto} > \caption{Lock-Based RCU Implementation} > \label{lst:app:toyrcu:Lock-Based RCU Implementation} > \end{listing} > -- > 2.17.1 > >