Messages in this thread | | | From | Miguel Ojeda <> | Date | Mon, 16 May 2022 10:18:45 +0200 | Subject | Re: linux-next: manual merge of the rust tree with the char-misc tree |
| |
Hi Greg,
On Mon, May 16, 2022 at 9:49 AM Greg KH <greg@kroah.com> wrote: > > Odd, why does the Rust binder implementation require the IOCTL > definitions to be in an enum instead of a #define?
It is because bindgen (the tool which generates the "raw" C bindings) only works with simple C `#define`s. Thus there are two options when one hits something like this: either copy-paste them manually into the Rust side (which adds maintenance), or change them into real objects/identifiers in the C side.
There may be support in the future for expanding macros that end up in a numeric one: https://github.com/rust-lang/rust-bindgen/issues/753.
Stephen: the resolution looks fine, thanks!
> If that's required, I can take that type of change now to prevent merge > issues in the future.
We have two so far: this one (for the RFC Android patch) and another small one in include/linux/spinlock.h (for the `sync` module).
So far I have put those changes in their respective patches, but if you prefer I can send them independently too (like the prerequisite patches).
Cheers, Miguel
| |