Functional C macros are not expanded. · Issue #753 · rust-lang/rust-bindgen (original) (raw)
So I'm generating bindings to <linux/uinput>. This works pretty well, but two c macros in particular do not produce any bindings in the output. Reduced input below:
Input C/C++ Header
#define UI_DEV_CREATE _IO(UINPUT_IOCTL_BASE, 1) #define UI_DEV_DESTROY _IO(UINPUT_IOCTL_BASE, 2)
Bindgen Invocation
let bindings = bindgen::Builder::default() .no_unstable_rust() .header("wrapper/wrapper.h") .expect("Unable to generate bindings").
wrapper.h
looks like this:
#include <linux/uinput.h>
Actual Results
No constant UI_DEV_CREATE
or UI_DEV_DESTROY
generated in output.
Expected Results
Constants UI_DEV_CREATE
and UI_DEV_DESTROY
generated in output.
I'm not really that familiar with the kernel macro _IO
and not sure if this is technically even possible, but I figured to report just to get a more professional opinion. If it's not possible, workarounds welcome.