Zephyr system call argument marshaling war story

Have no fear, this isn’t a military tale! Rather an overview of the mechanism used to implement system calls in the Zephyr operating system. This presentation will quickly introduce the Zephyr system call model, then focus on how it is implemented. We’ll discuss the unsuspected minefield of portable argument passing across different architectures, then the pitfalls of compiler optimization (or lack thereof) and look at various attempt at making it work for everyone all the time. While Zephyr material is used, this presentation ultimately is more about how to (ab)use the C language in such a low-level context so no prior Zephyr knowledge is necessary.

Nicolas Pitre