mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-02-22 00:00:03 +03:00
fix(bindgen): expand the Fix753 workaround for any type and document it
Offer documentation to the poor people who stumble on this and look for a macro generation mechanism on the Rust side.
This commit is contained in:
parent
234fe664b1
commit
5a1975e528
@ -64,7 +64,7 @@ fn main() {
|
||||
.blocklist_type("srcu_struct")
|
||||
.allowlist_var("BCH_.*")
|
||||
.allowlist_var("KEY_SPEC_.*")
|
||||
.allowlist_var("Fix753_FMODE_.*")
|
||||
.allowlist_var("Fix753_.*")
|
||||
.allowlist_var("bch.*")
|
||||
.allowlist_var("__bch2.*")
|
||||
.allowlist_var("__BTREE_ITER.*")
|
||||
|
@ -14,9 +14,22 @@
|
||||
#include "cmds.h"
|
||||
#include "raid/raid.h"
|
||||
|
||||
/* Fix753 is a workaround for https://github.com/rust-lang/rust-bindgen/issues/753
|
||||
* Functional macro are not expanded with bindgen, e.g. ioctl are automatically ignored
|
||||
* from the generation
|
||||
*
|
||||
* To avoid this, use `MARK_FIX_753` to force the synthesis of your macro constant.
|
||||
* It will appear in Rust with its proper name and not Fix753_{name}.
|
||||
*/
|
||||
|
||||
#define MARK_FIX_753(req_name) const blk_mode_t Fix753_##req_name = req_name;
|
||||
/* MARK_FIX_753: force generate a macro constant in Rust
|
||||
*
|
||||
* @type_name - a type for this constant
|
||||
* @req_name - a name for this constant which will be used inside of Rust
|
||||
*/
|
||||
#define MARK_FIX_753(type_name, req_name) const type_name Fix753_##req_name = req_name;
|
||||
|
||||
MARK_FIX_753(blk_mode_t, BLK_OPEN_READ);
|
||||
MARK_FIX_753(blk_mode_t, BLK_OPEN_WRITE);
|
||||
MARK_FIX_753(blk_mode_t, BLK_OPEN_EXCL);
|
||||
|
||||
MARK_FIX_753(BLK_OPEN_READ);
|
||||
MARK_FIX_753(BLK_OPEN_WRITE);
|
||||
MARK_FIX_753(BLK_OPEN_EXCL);
|
||||
|
Loading…
Reference in New Issue
Block a user