On Mon, May 16, 2022 at 10:18:45AM +0200, Miguel Ojeda wrote: > Hi Greg, > > On Mon, May 16, 2022 at 9:49 AM Greg KH <greg@xxxxxxxxx> 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). The binder one I can take now if you want to send that to me, as that would make your development life easier. thanks, greg k-h