Skip to content

Commit 163f7f3

Browse files
committed
Prototype of bindgen workaround usage
1 parent e43ec50 commit 163f7f3

File tree

4 files changed

+55
-125
lines changed

4 files changed

+55
-125
lines changed

libcryptsetup-rs-sys/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,5 @@ semver = "1.0.0"
2121
default_features = false
2222
features = ["runtime"]
2323
version = "0.69.0"
24+
git = "https://github.com/jbaublitz/rust-bindgen"
25+
branch = "issue-rust-bindgen-753"

libcryptsetup-rs-sys/build.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ fn generate_bindings(library: &Library, safe_free_is_needed: bool) {
2929
r
3030
}))
3131
.header("header.h")
32-
.size_t_is_usize(true);
32+
.size_t_is_usize(true)
33+
.clang_macro_fallback();
3334
#[cfg(target_arch = "x86")]
3435
let builder = builder.blocklist_type("max_align_t");
3536
let builder_with_safe_free = if safe_free_is_needed {

libcryptsetup-rs-sys/header.h

Lines changed: 0 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1 @@
11
#include <libcryptsetup.h>
2-
3-
const uint32_t crypt_activate_readonly = CRYPT_ACTIVATE_READONLY;
4-
const uint32_t crypt_activate_no_uuid = CRYPT_ACTIVATE_NO_UUID;
5-
const uint32_t crypt_activate_shared = CRYPT_ACTIVATE_SHARED;
6-
const uint32_t crypt_activate_allow_discards = CRYPT_ACTIVATE_ALLOW_DISCARDS;
7-
const uint32_t crypt_activate_private = CRYPT_ACTIVATE_PRIVATE;
8-
const uint32_t crypt_activate_corrupted = CRYPT_ACTIVATE_CORRUPTED;
9-
const uint32_t crypt_activate_same_cpu_crypt = CRYPT_ACTIVATE_SAME_CPU_CRYPT;
10-
const uint32_t crypt_activate_submit_from_crypt_cpus= CRYPT_ACTIVATE_SUBMIT_FROM_CRYPT_CPUS;
11-
const uint32_t crypt_activate_ignore_corruption = CRYPT_ACTIVATE_IGNORE_CORRUPTION;
12-
const uint32_t crypt_activate_restart_on_corruption = CRYPT_ACTIVATE_RESTART_ON_CORRUPTION;
13-
const uint32_t crypt_activate_ignore_zero_blocks = CRYPT_ACTIVATE_IGNORE_ZERO_BLOCKS;
14-
const uint32_t crypt_activate_keyring_key= CRYPT_ACTIVATE_KEYRING_KEY;
15-
const uint32_t crypt_activate_no_journal = CRYPT_ACTIVATE_NO_JOURNAL;
16-
const uint32_t crypt_activate_recovery = CRYPT_ACTIVATE_RECOVERY;
17-
const uint32_t crypt_activate_ignore_persistent = CRYPT_ACTIVATE_IGNORE_PERSISTENT;
18-
const uint32_t crypt_activate_check_at_most_once = CRYPT_ACTIVATE_CHECK_AT_MOST_ONCE;
19-
const uint32_t crypt_activate_allow_unbound_key = CRYPT_ACTIVATE_ALLOW_UNBOUND_KEY;
20-
const uint32_t crypt_activate_recalculate = CRYPT_ACTIVATE_RECALCULATE;
21-
const uint32_t crypt_activate_refresh = CRYPT_ACTIVATE_REFRESH;
22-
const uint32_t crypt_activate_serialize_memory_hard_pbkdf = CRYPT_ACTIVATE_SERIALIZE_MEMORY_HARD_PBKDF;
23-
const uint32_t crypt_activate_no_journal_bitmap = CRYPT_ACTIVATE_NO_JOURNAL_BITMAP;
24-
#ifdef CRYPT_ACTIVATE_SUSPENDED
25-
const uint32_t crypt_activate_suspended = CRYPT_ACTIVATE_SUSPENDED;
26-
#endif
27-
#ifdef CRYPT_ACTIVATE_IV_LARGE_SECTORS
28-
const uint32_t crypt_activate_iv_large_sectors = CRYPT_ACTIVATE_IV_LARGE_SECTORS;
29-
#endif
30-
#ifdef CRYPT_ACTIVATE_PANIC_ON_CORRUPTION
31-
const uint32_t crypt_activate_panic_on_corruption = CRYPT_ACTIVATE_PANIC_ON_CORRUPTION;
32-
#endif
33-
#ifdef CRYPT_ACTIVATE_NO_READ_WORKQUEUE
34-
const uint32_t crypt_activate_no_read_workqueue = CRYPT_ACTIVATE_NO_READ_WORKQUEUE;
35-
#endif
36-
#ifdef CRYPT_ACTIVATE_NO_WRITE_WORKQUEUE
37-
const uint32_t crypt_activate_no_write_workqueue = CRYPT_ACTIVATE_NO_WRITE_WORKQUEUE;
38-
#endif
39-
#ifdef CRYPT_ACTIVATE_RECALCULATE_RESET
40-
const uint32_t crypt_activate_recalculate_reset = CRYPT_ACTIVATE_RECALCULATE_RESET;
41-
#endif
42-
43-
const uint32_t crypt_deactivate_deferred = CRYPT_DEACTIVATE_DEFERRED;
44-
const uint32_t crypt_deactivate_force = CRYPT_DEACTIVATE_FORCE;
45-
46-
const uint32_t crypt_verity_no_header = CRYPT_VERITY_NO_HEADER;
47-
const uint32_t crypt_verity_check_hash = CRYPT_VERITY_CHECK_HASH;
48-
const uint32_t crypt_verity_create_hash = CRYPT_VERITY_CREATE_HASH;
49-
50-
const uint32_t crypt_tcrypt_legacy_modes = CRYPT_TCRYPT_LEGACY_MODES;
51-
const uint32_t crypt_tcrypt_hidden_header = CRYPT_TCRYPT_HIDDEN_HEADER;
52-
const uint32_t crypt_tcrypt_backup_header = CRYPT_TCRYPT_BACKUP_HEADER;
53-
const uint32_t crypt_tcrypt_system_header = CRYPT_TCRYPT_SYSTEM_HEADER;
54-
const uint32_t crypt_tcrypt_vera_modes = CRYPT_TCRYPT_VERA_MODES;
55-
56-
const uint32_t crypt_keyfile_stop_eol = CRYPT_KEYFILE_STOP_EOL;
57-
58-
const uint32_t crypt_volume_key_no_segment = CRYPT_VOLUME_KEY_NO_SEGMENT;
59-
const uint32_t crypt_volume_key_set = CRYPT_VOLUME_KEY_SET;
60-
const uint32_t crypt_volume_key_digest_reuse = CRYPT_VOLUME_KEY_DIGEST_REUSE;
61-
62-
const uint32_t crypt_requirement_offline_reencrypt = CRYPT_REQUIREMENT_OFFLINE_REENCRYPT;
63-
const uint32_t crypt_requirement_online_reencrypt = CRYPT_REQUIREMENT_ONLINE_REENCRYPT;
64-
const uint32_t crypt_requirement_unknown = CRYPT_REQUIREMENT_UNKNOWN;
65-
66-
const uint32_t crypt_reencrypt_recovery = CRYPT_REENCRYPT_RECOVERY;
67-
const uint32_t crypt_reencrypt_resume_only = CRYPT_REENCRYPT_RESUME_ONLY;
68-
const uint32_t crypt_reencrypt_initialize_only = CRYPT_REENCRYPT_INITIALIZE_ONLY;
69-
const uint32_t crypt_reencrypt_move_first_segment = CRYPT_REENCRYPT_MOVE_FIRST_SEGMENT;
70-
71-
const uint32_t crypt_pbkdf_iter_time_set = CRYPT_PBKDF_ITER_TIME_SET;
72-
const uint32_t crypt_pbkdf_no_benchmark = CRYPT_PBKDF_NO_BENCHMARK;
73-
74-
const uint32_t crypt_wipe_no_direct_io = CRYPT_WIPE_NO_DIRECT_IO;

src/consts/flags.rs

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -7,116 +7,116 @@ use bitflags::bitflags;
77
bitflags! {
88
/// Crypt device activation flags.
99
pub struct CryptActivate: u32 {
10-
const READONLY = libcryptsetup_rs_sys::crypt_activate_readonly;
11-
const NO_UUID = libcryptsetup_rs_sys::crypt_activate_no_uuid;
12-
const SHARED = libcryptsetup_rs_sys::crypt_activate_shared;
13-
const ALLOW_DISCARDS = libcryptsetup_rs_sys::crypt_activate_allow_discards;
14-
const PRIVATE = libcryptsetup_rs_sys::crypt_activate_private;
15-
const CORRUPTED = libcryptsetup_rs_sys::crypt_activate_corrupted;
16-
const SAME_CPU_CRYPT = libcryptsetup_rs_sys::crypt_activate_same_cpu_crypt;
17-
const SUBMIT_FROM_CRYPT_CPUS = libcryptsetup_rs_sys::crypt_activate_submit_from_crypt_cpus;
18-
const IGNORE_CORRUPTION = libcryptsetup_rs_sys::crypt_activate_ignore_corruption;
19-
const RESTART_ON_CORRUPTION = libcryptsetup_rs_sys::crypt_activate_restart_on_corruption;
20-
const IGNORE_ZERO_BLOCKS = libcryptsetup_rs_sys::crypt_activate_ignore_zero_blocks;
21-
const KEYRING_KEY = libcryptsetup_rs_sys::crypt_activate_keyring_key;
22-
const NO_JOURNAL = libcryptsetup_rs_sys::crypt_activate_no_journal;
23-
const RECOVERY = libcryptsetup_rs_sys::crypt_activate_recovery;
24-
const IGNORE_PERSISTENT = libcryptsetup_rs_sys::crypt_activate_ignore_persistent;
25-
const CHECK_AT_MOST_ONCE = libcryptsetup_rs_sys::crypt_activate_check_at_most_once;
26-
const ALLOW_UNBOUND_KEY = libcryptsetup_rs_sys::crypt_activate_allow_unbound_key;
27-
const RECALCULATE = libcryptsetup_rs_sys::crypt_activate_recalculate;
28-
const REFRESH = libcryptsetup_rs_sys::crypt_activate_refresh;
29-
const SERIALIZE_MEMORY_HARD_PBKDF = libcryptsetup_rs_sys::crypt_activate_serialize_memory_hard_pbkdf;
30-
const NO_JOURNAL_BITMAP = libcryptsetup_rs_sys::crypt_activate_no_journal_bitmap;
10+
const READONLY = libcryptsetup_rs_sys::CRYPT_ACTIVATE_READONLY;
11+
const NO_UUID = libcryptsetup_rs_sys::CRYPT_ACTIVATE_NO_UUID;
12+
const SHARED = libcryptsetup_rs_sys::CRYPT_ACTIVATE_SHARED;
13+
const ALLOW_DISCARDS = libcryptsetup_rs_sys::CRYPT_ACTIVATE_ALLOW_DISCARDS;
14+
const PRIVATE = libcryptsetup_rs_sys::CRYPT_ACTIVATE_PRIVATE;
15+
const CORRUPTED = libcryptsetup_rs_sys::CRYPT_ACTIVATE_CORRUPTED;
16+
const SAME_CPU_CRYPT = libcryptsetup_rs_sys::CRYPT_ACTIVATE_SAME_CPU_CRYPT;
17+
const SUBMIT_FROM_CRYPT_CPUS = libcryptsetup_rs_sys::CRYPT_ACTIVATE_SUBMIT_FROM_CRYPT_CPUS;
18+
const IGNORE_CORRUPTION = libcryptsetup_rs_sys::CRYPT_ACTIVATE_IGNORE_CORRUPTION;
19+
const RESTART_ON_CORRUPTION = libcryptsetup_rs_sys::CRYPT_ACTIVATE_RESTART_ON_CORRUPTION;
20+
const IGNORE_ZERO_BLOCKS = libcryptsetup_rs_sys::CRYPT_ACTIVATE_IGNORE_ZERO_BLOCKS;
21+
const KEYRING_KEY = libcryptsetup_rs_sys::CRYPT_ACTIVATE_KEYRING_KEY;
22+
const NO_JOURNAL = libcryptsetup_rs_sys::CRYPT_ACTIVATE_NO_JOURNAL;
23+
const RECOVERY = libcryptsetup_rs_sys::CRYPT_ACTIVATE_RECOVERY;
24+
const IGNORE_PERSISTENT = libcryptsetup_rs_sys::CRYPT_ACTIVATE_IGNORE_PERSISTENT;
25+
const CHECK_AT_MOST_ONCE = libcryptsetup_rs_sys::CRYPT_ACTIVATE_CHECK_AT_MOST_ONCE;
26+
const ALLOW_UNBOUND_KEY = libcryptsetup_rs_sys::CRYPT_ACTIVATE_ALLOW_UNBOUND_KEY;
27+
const RECALCULATE = libcryptsetup_rs_sys::CRYPT_ACTIVATE_RECALCULATE;
28+
const REFRESH = libcryptsetup_rs_sys::CRYPT_ACTIVATE_REFRESH;
29+
const SERIALIZE_MEMORY_HARD_PBKDF = libcryptsetup_rs_sys::CRYPT_ACTIVATE_SERIALIZE_MEMORY_HARD_PBKDF;
30+
const NO_JOURNAL_BITMAP = libcryptsetup_rs_sys::CRYPT_ACTIVATE_NO_JOURNAL_BITMAP;
3131
#[cfg(cryptsetup23supported)]
32-
const SUSPENDED = libcryptsetup_rs_sys::crypt_activate_suspended;
32+
const SUSPENDED = libcryptsetup_rs_sys::CRYPT_ACTIVATE_SUSPENDED;
3333
#[cfg(cryptsetup24supported)]
34-
const IV_LARGE_SECTORS = libcryptsetup_rs_sys::crypt_activate_iv_large_sectors;
34+
const IV_LARGE_SECTORS = libcryptsetup_rs_sys::CRYPT_ACTIVATE_IV_LARGE_SECTORS;
3535
#[cfg(cryptsetup24supported)]
36-
const PANIC_ON_CORRUPTION = libcryptsetup_rs_sys::crypt_activate_panic_on_corruption;
36+
const PANIC_ON_CORRUPTION = libcryptsetup_rs_sys::CRYPT_ACTIVATE_PANIC_ON_CORRUPTION;
3737
#[cfg(cryptsetup24supported)]
38-
const NO_READ_WORKQUEUE = libcryptsetup_rs_sys::crypt_activate_no_read_workqueue;
38+
const NO_READ_WORKQUEUE = libcryptsetup_rs_sys::CRYPT_ACTIVATE_NO_READ_WORKQUEUE;
3939
#[cfg(cryptsetup24supported)]
40-
const NO_WRITE_WORKQUEUE = libcryptsetup_rs_sys::crypt_activate_no_write_workqueue;
40+
const NO_WRITE_WORKQUEUE = libcryptsetup_rs_sys::CRYPT_ACTIVATE_NO_WRITE_WORKQUEUE;
4141
#[cfg(cryptsetup24supported)]
42-
const RECALCULATE_RESET = libcryptsetup_rs_sys::crypt_activate_recalculate_reset;
42+
const RECALCULATE_RESET = libcryptsetup_rs_sys::CRYPT_ACTIVATE_RECALCULATE_RESET;
4343
}
4444
}
4545

4646
bitflags! {
4747
/// Flags for crypt deactivate operations
4848
pub struct CryptDeactivate: u32 {
49-
const DEFERRED = libcryptsetup_rs_sys::crypt_deactivate_deferred;
50-
const FORCE = libcryptsetup_rs_sys::crypt_deactivate_force;
49+
const DEFERRED = libcryptsetup_rs_sys::CRYPT_DEACTIVATE_DEFERRED;
50+
const FORCE = libcryptsetup_rs_sys::CRYPT_DEACTIVATE_FORCE;
5151
}
5252
}
5353

5454
bitflags! {
5555
/// Verity format flags
5656
pub struct CryptVerity: u32 {
57-
const NO_HEADER = libcryptsetup_rs_sys::crypt_verity_no_header;
58-
const CHECK_HASH = libcryptsetup_rs_sys::crypt_verity_check_hash;
59-
const CREATE_HASH = libcryptsetup_rs_sys::crypt_verity_create_hash;
57+
const NO_HEADER = libcryptsetup_rs_sys::CRYPT_VERITY_NO_HEADER;
58+
const CHECK_HASH = libcryptsetup_rs_sys::CRYPT_VERITY_CHECK_HASH;
59+
const CREATE_HASH = libcryptsetup_rs_sys::CRYPT_VERITY_CREATE_HASH;
6060
}
6161
}
6262

6363
bitflags! {
6464
/// tcrypt format flags
6565
pub struct CryptTcrypt: u32 {
66-
const LEGACY_MODES = libcryptsetup_rs_sys::crypt_tcrypt_legacy_modes;
67-
const HIDDEN_HEADER = libcryptsetup_rs_sys::crypt_tcrypt_hidden_header;
68-
const BACKUP_HEADER = libcryptsetup_rs_sys::crypt_tcrypt_backup_header;
69-
const SYSTEM_HEADER = libcryptsetup_rs_sys::crypt_tcrypt_system_header;
70-
const VERA_MODES = libcryptsetup_rs_sys::crypt_tcrypt_vera_modes;
66+
const LEGACY_MODES = libcryptsetup_rs_sys::CRYPT_TCRYPT_LEGACY_MODES;
67+
const HIDDEN_HEADER = libcryptsetup_rs_sys::CRYPT_TCRYPT_HIDDEN_HEADER;
68+
const BACKUP_HEADER = libcryptsetup_rs_sys::CRYPT_TCRYPT_BACKUP_HEADER;
69+
const SYSTEM_HEADER = libcryptsetup_rs_sys::CRYPT_TCRYPT_SYSTEM_HEADER;
70+
const VERA_MODES = libcryptsetup_rs_sys::CRYPT_TCRYPT_VERA_MODES;
7171
}
7272
}
7373

7474
bitflags! {
7575
/// Flags for reading keyfiles
7676
pub struct CryptKeyfile: u32 {
77-
const STOP_EOL = libcryptsetup_rs_sys::crypt_keyfile_stop_eol;
77+
const STOP_EOL = libcryptsetup_rs_sys::CRYPT_KEYFILE_STOP_EOL;
7878
}
7979
}
8080

8181
bitflags! {
8282
/// Flags for tunable options when operating with volume keys
8383
pub struct CryptVolumeKey: u32 {
84-
const NO_SEGMENT = libcryptsetup_rs_sys::crypt_volume_key_no_segment;
85-
const SET = libcryptsetup_rs_sys::crypt_volume_key_set;
86-
const DIGEST_REUSE = libcryptsetup_rs_sys::crypt_volume_key_digest_reuse;
84+
const NO_SEGMENT = libcryptsetup_rs_sys::CRYPT_VOLUME_KEY_NO_SEGMENT;
85+
const SET = libcryptsetup_rs_sys::CRYPT_VOLUME_KEY_SET;
86+
const DIGEST_REUSE = libcryptsetup_rs_sys::CRYPT_VOLUME_KEY_DIGEST_REUSE;
8787
}
8888
}
8989

9090
bitflags! {
9191
/// Requirement flags
9292
pub struct CryptRequirement: u32 {
93-
const OFFLINE_REENCRYPT = libcryptsetup_rs_sys::crypt_requirement_offline_reencrypt;
94-
const ONLINE_REENCRYPT = libcryptsetup_rs_sys::crypt_requirement_online_reencrypt;
95-
const UNKNOWN = libcryptsetup_rs_sys::crypt_requirement_unknown;
93+
const OFFLINE_REENCRYPT = libcryptsetup_rs_sys::CRYPT_REQUIREMENT_OFFLINE_REENCRYPT;
94+
const ONLINE_REENCRYPT = libcryptsetup_rs_sys::CRYPT_REQUIREMENT_ONLINE_REENCRYPT;
95+
const UNKNOWN = libcryptsetup_rs_sys::CRYPT_REQUIREMENT_UNKNOWN;
9696
}
9797
}
9898

9999
bitflags! {
100100
/// Reencryption flags
101101
pub struct CryptReencrypt: u32 {
102-
const INITIALIZE_ONLY = libcryptsetup_rs_sys::crypt_reencrypt_initialize_only;
103-
const MOVE_FIRST_SEGMENT = libcryptsetup_rs_sys::crypt_reencrypt_move_first_segment;
104-
const RESUME_ONLY = libcryptsetup_rs_sys::crypt_reencrypt_resume_only;
105-
const RECOVERY = libcryptsetup_rs_sys::crypt_reencrypt_recovery;
102+
const INITIALIZE_ONLY = libcryptsetup_rs_sys::CRYPT_REENCRYPT_INITIALIZE_ONLY;
103+
const MOVE_FIRST_SEGMENT = libcryptsetup_rs_sys::CRYPT_REENCRYPT_MOVE_FIRST_SEGMENT;
104+
const RESUME_ONLY = libcryptsetup_rs_sys::CRYPT_REENCRYPT_RESUME_ONLY;
105+
const RECOVERY = libcryptsetup_rs_sys::CRYPT_REENCRYPT_RECOVERY;
106106
}
107107
}
108108

109109
bitflags! {
110110
/// PBKDF flags
111111
pub struct CryptPbkdf: u32 {
112-
const ITER_TIME_SET = libcryptsetup_rs_sys::crypt_pbkdf_iter_time_set;
113-
const NO_BENCHMARK = libcryptsetup_rs_sys::crypt_pbkdf_no_benchmark;
112+
const ITER_TIME_SET = libcryptsetup_rs_sys::CRYPT_PBKDF_ITER_TIME_SET;
113+
const NO_BENCHMARK = libcryptsetup_rs_sys::CRYPT_PBKDF_NO_BENCHMARK;
114114
}
115115
}
116116

117117
bitflags! {
118118
/// Flags for crypt wipe operations
119119
pub struct CryptWipe: u32 {
120-
const NO_DIRECT_IO = libcryptsetup_rs_sys::crypt_wipe_no_direct_io;
120+
const NO_DIRECT_IO = libcryptsetup_rs_sys::CRYPT_WIPE_NO_DIRECT_IO;
121121
}
122122
}

0 commit comments

Comments
 (0)