Peripheral Device Register Support for Source Code Boilerplate Generator of QEMU Development Toolkit
Vasily Efimov, Vartan Andronikovich Padaryan · 2018
QEMU emulator is used together with different security tools to solve problems where maximum control over virtual machine is required. Absence of a proper VM with specific devices is a widespread issue. Also, development of a new virtual device (device model) is a error prone and time consuming process. The QEMU Development Toolkit (QDT) can be used to simplify the first stage of this process by generating boilerplate code for models. Currently QDT can generate the bulk of device model code. The paper discusses some extensions of QDT capabilities. A device register model was added. The register model allows to generate extra code for frequently met device register behavior patterns. The model is implemented as an extension to QDT device description API in Python. Evaluation showed that size of device register description is half of C-code boilerplate generated from it. The register description is gathered in one place, that's more convenient for developer whereas generated code is spread across the boilerplate.