Preprocessor macro expanding to a command
| Space | User/kernel |
| Context | Sync/async |
| May block | No |
| SPL | Any |
| Dynamic memory | No |
#include <SPAD/AC.H>
CALL_IORQ(iorq, handler, chained_iorq); This macro has the same functionality as CALL_IORQ_CANCELABLE, except that handler may be an expression. When handler is a simple function, use CALL_IORQ_CANCELABLE — it generates faster code.
SPL_TOP, so all rules for this SPL apply. It shouldn't contain a loop and it can only call functions that don't block and that can be called on SPL_TOP. If you need more complex expression, evaluate it outside CALL_IORQ_EXPR, store it to a variable and pass the variable to CALL_IORQ_EXPR.