mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-26 03:28:21 +00:00
The do statement ensures the macros to generate just one expression that is compatible with any programming construct. The concrete bug was if (cond) PDBG(...); else ... which was expanded to if (cond) if (DO_PDBG) Genode::printf(...); else ... This is obviously wrong as the *else* branch is then connected to the second *if*.
This is generic part of the Genode implementation. It consists of two parts: :_Core_: is the ultimate root of the Genode application tree and provides abstractions for the lowest-level hardware resources such as RAM, ROM, CPU, and generic device access. All generic parts of Core can be found here - for system-specific implementations refer to the appropriate 'base-<system>' directory. :_Base libraries and protocols_: that are used by each Genode component to interact with other components. This is the glue that holds everything together.