object: Add helper for callbacks with two void pointers

This commit is contained in:
Tobias Brunner 2020-05-20 17:34:39 +02:00
parent d8a2c58229
commit 3d3d5235aa
1 changed files with 11 additions and 0 deletions

View File

@ -123,4 +123,15 @@
static typeof(_cb_##name) *name = (typeof(_cb_##name)*)_cb_##name; \
static ret _cb_##name(param1, ##__VA_ARGS__)
/**
* Same as CALLBACK(), but for two void* arguments (e.g. for comparisons).
*/
#define CALLBACK2(name, ret, param1, param2, ...) \
static ret _cb_##name(union {void *_generic; param1;} \
__attribute__((transparent_union)), \
union {void *_generic; param2;} \
__attribute__((transparent_union)), ##__VA_ARGS__); \
static typeof(_cb_##name) *name = (typeof(_cb_##name)*)_cb_##name; \
static ret _cb_##name(param1, param2, ##__VA_ARGS__)
#endif /** OBJECT_H_ @} */