[FE training-materials-updates] Kernel slides: document devm_ functions for memory allocation
Michael Opdenacker
michael.opdenacker at free-electrons.com
Tue Feb 4 23:08:45 CET 2014
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=e96dfefe95ac6f86314ae4e05ba9fd4643aee8a4
>---------------------------------------------------------------
commit e96dfefe95ac6f86314ae4e05ba9fd4643aee8a4
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date: Tue Feb 4 23:08:01 2014 +0100
Kernel slides: document devm_ functions for memory allocation
Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>
>---------------------------------------------------------------
e96dfefe95ac6f86314ae4e05ba9fd4643aee8a4
.../kernel-driver-development-memory.tex | 21 ++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex b/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex
index 425c0ee..2b75a4c 100644
--- a/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex
+++ b/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex
@@ -330,8 +330,7 @@ kfree(work);
\item Allocates memory for an array of \code{n} elements of
\code{size} size, and zeroes its contents.
\end{itemize}
- \item \mint{c}+void *krealloc(const void *p, size_t new_size,+
- \mint{c}+gfp_t flags);+
+ \item {\footnotesize \mint{c}+void *krealloc(const void *p, size_t new_size, gfp_t flags);+}
\begin{itemize}
\item Changes the size of the buffer pointed by \code{p} to
\code{new_size}, by reallocating a new buffer and copying the
@@ -342,6 +341,24 @@ kfree(work);
\end{frame}
\begin{frame}[fragile]
+ \frametitle{devm\_ kmalloc functions}
+ \begin{itemize}
+ \item Automatically free the allocated buffers when the
+ corresponding device or module is unprobed.
+ \item Need to have a reference to a \kstruct{device}.
+ \item {\footnotesize \mint{c}+void *devm_kmalloc(struct device *dev, size_t size, int flags);+}
+ \item {\footnotesize \mint{c}+void *devm_kzalloc(struct device *dev, size_t size, int flags);+}
+ \item {\scriptsize \mint{c}+void *kcalloc(struct device *dev, size_t n, size_t size, gfp_t flags);+}
+ \item {\small \mint{c}+void *devm_kfree(struct device *dev, void *p);+}
+ \begin{itemize}
+ \item Useful to immediately free an allocated buffer
+ \end{itemize}
+ \end{itemize}
+ See \kerneldoc{driver-model/devres.txt} for details about managed
+ device resources.
+\end{frame}
+
+\begin{frame}[fragile]
\frametitle{vmalloc Allocator}
\begin{itemize}
\item The \kfunc{vmalloc} allocator can be used to obtain virtually
More information about the training-materials-updates
mailing list