Generic macros

Signed-off-by: nixnodes <code@eth.si>