Programming Linux
Quick search
Navigation
Courses
Courses Overview
Slide Material
Python Programming
The C Programming Language
C++: TODO List
C++: Miscellaneous Live-Hacking
C++
The New C++ (11-…)
Design Patterns With C++
C++ Code
C++ Exercises
CMake
Linux
Is Software A Craft? Software Is A Craft! ⟶
Clean Code
Unit Testing With
googletest
Linux Kernel Driver Development
Modern Character Devices
File Operations on Character Devices
Coding: First Functionality
Character Device Basics
Coding: Multiple Devices
Coding: Refactoring
DMA
DMA (Slideshow)
Fedora: Building the Kernel
Fedora: Building External Kernel Modules
Module Loading, Hello World
Coding: Raspi GPIO Interrupts
Interrupts
IO Memory
Dynamic Memory:
kmalloc()
Doubly Linked Lists
Coding: Fix Race Condition (Mutex)
Mutex (and RT Mutex)
Network Devices
PCI
Process vs.Atomic Context
Raspberry Pi: Building the Kernel
Coding: Fix
Sleep While Atomic
Spinlock (vs. Mutex)
dup()
,
fork()
, and Reference Counting (Stub)
Coding: Timed Event
Timer Management
Accessing Userspace Memory
Waiting for Something
Workqueue
Sample Code Maintenance
To Do List
Generated Topic Graph
How To Book
Log Of Past Courses
About
Myself: Contact, Impressum, …
This Site
Blog
Posts
DMA
¶
DMA (Slideshow)
cluster_linux
Linux
cluster_linux_kernel
Linux Kernel Driver Development
linux_kernel_dma
DMA
linux_kernel_kmalloc
Dynamic Memory: kmalloc()
linux_kernel_dma->linux_kernel_kmalloc
linux_kernel_process_vs_atomic
Process vs.Atomic Context
linux_kernel_kmalloc->linux_kernel_process_vs_atomic