Skip to content

Commit f844e66

Browse files
authored
Merge pull request #2276 from hermit-os/cfg_select
refactor: migrate from `cfg_if` to `cfg_select`
2 parents e5acf06 + 10941f8 commit f844e66

18 files changed

Lines changed: 122 additions & 91 deletions

File tree

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,6 @@ async-trait = "0.1.89"
319319
bit_field = "0.10"
320320
bitflags = "2"
321321
build-time = "0.1.3"
322-
cfg-if = "1"
323322
crossbeam-utils = { version = "0.8", default-features = false }
324323
document-features = { version = "0.2", optional = true }
325324
embedded-io = { version = "0.7", features = ["alloc"] }

hermit-macro/src/system.rs

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -174,13 +174,14 @@ fn emit_func(func: ItemFn, sig: &ParsedSig, errno: bool) -> Result<ItemFn> {
174174

175175
#kernel_func
176176

177-
cfg_if::cfg_if! {
178-
if #[cfg(all(
177+
cfg_select! {
178+
all(
179179
feature = "kernel-stack",
180180
not(any(target_arch = "riscv64", feature = "common-os")),
181-
))] {
181+
) => {
182182
unsafe { crate::arch::kernel::kernel_stack::#kernel_function_ident(#(#args,)* #kernel_ident) }
183-
} else {
183+
}
184+
_ => {
184185
#unsafety { #kernel_ident(#(#args),*) }
185186
}
186187
}
@@ -254,13 +255,14 @@ mod tests {
254255
ret
255256
}
256257

257-
cfg_if::cfg_if! {
258-
if #[cfg(all(
258+
cfg_select! {
259+
all(
259260
feature = "kernel-stack",
260261
not(any(target_arch = "riscv64", feature = "common-os")),
261-
))] {
262+
) => {
262263
unsafe { crate::arch::kernel::kernel_stack::kernel_function2(a, b, _sys_test) }
263-
} else {
264+
}
265+
_ => {
264266
{ _sys_test(a, b) }
265267
}
266268
}
@@ -322,13 +324,14 @@ mod tests {
322324
ret
323325
}
324326

325-
cfg_if::cfg_if! {
326-
if #[cfg(all(
327+
cfg_select! {
328+
all(
327329
feature = "kernel-stack",
328330
not(any(target_arch = "riscv64", feature = "common-os")),
329-
))] {
331+
) => {
330332
unsafe { crate::arch::kernel::kernel_stack::kernel_function2(a, b, _sys_test) }
331-
} else {
333+
}
334+
_ => {
332335
unsafe { _sys_test(a, b) }
333336
}
334337
}
@@ -392,13 +395,14 @@ mod tests {
392395
ret
393396
}
394397

395-
cfg_if::cfg_if! {
396-
if #[cfg(all(
398+
cfg_select! {
399+
all(
397400
feature = "kernel-stack",
398401
not(any(target_arch = "riscv64", feature = "common-os")),
399-
))] {
402+
) => {
400403
unsafe { crate::arch::kernel::kernel_stack::kernel_function2(a, b, _sys_test) }
401-
} else {
404+
}
405+
_ => {
402406
{ _sys_test(a, b) }
403407
}
404408
}

src/arch/aarch64/kernel/processor.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,10 +209,11 @@ pub fn halt() {
209209
pub fn shutdown(error_code: i32) -> ! {
210210
info!("Shutting down system");
211211

212-
cfg_if::cfg_if! {
213-
if #[cfg(feature = "semihosting")] {
212+
cfg_select! {
213+
feature = "semihosting" => {
214214
semihosting::process::exit(error_code)
215-
} else {
215+
}
216+
_ => {
216217
unsafe {
217218
const PSCI_SYSTEM_OFF: u64 = 0x8400_0008;
218219
// call hypervisor to shut down the system

src/arch/mod.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//! Architecture-specific architecture abstraction.
22
3-
cfg_if::cfg_if! {
4-
if #[cfg(target_arch = "aarch64")] {
3+
cfg_select! {
4+
target_arch = "aarch64" => {
55
pub(crate) mod aarch64;
66
pub(crate) use self::aarch64::*;
77

@@ -22,7 +22,8 @@ cfg_if::cfg_if! {
2222
get_processor_count,
2323
};
2424
pub use self::aarch64::mm::paging::{BasePageSize, PageSize};
25-
} else if #[cfg(target_arch = "x86_64")] {
25+
}
26+
target_arch = "x86_64" => {
2627
pub(crate) mod x86_64;
2728
pub(crate) use self::x86_64::*;
2829

@@ -51,7 +52,8 @@ cfg_if::cfg_if! {
5152
pub use self::x86_64::mm::create_new_root_page_table;
5253
#[cfg(feature = "common-os")]
5354
pub use self::x86_64::kernel::{load_application, jump_to_user_land};
54-
} else if #[cfg(target_arch = "riscv64")] {
55+
}
56+
target_arch = "riscv64" => {
5557
pub(crate) mod riscv64;
5658
pub(crate) use self::riscv64::*;
5759

src/arch/riscv64/kernel/processor.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,11 @@ pub fn halt() {
229229
pub fn shutdown(error_code: i32) -> ! {
230230
info!("Shutting down system");
231231

232-
cfg_if::cfg_if! {
233-
if #[cfg(feature = "semihosting")] {
232+
cfg_select! {
233+
feature = "semihosting" => {
234234
semihosting::process::exit(error_code)
235-
} else {
235+
}
236+
_ => {
236237
// use SBI shutdown
237238
match sbi_rt::system_reset(sbi_rt::Shutdown, sbi_rt::NoReason).into_result() {
238239
Ok(_) => unreachable!("System reset shouldn't have returned with success."),

src/drivers/console/mod.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77
88
#![allow(dead_code)]
99

10-
cfg_if::cfg_if! {
11-
if #[cfg(feature = "pci")] {
10+
cfg_select! {
11+
feature = "pci" => {
1212
mod pci;
13-
} else {
13+
}
14+
_ => {
1415
mod mmio;
1516
}
1617
}

src/drivers/fs/mod.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
//!
66
//! [File System Device]: https://docs.oasis-open.org/virtio/virtio/v1.2/cs01/virtio-v1.2-cs01.html#x1-45800011
77
8-
cfg_if::cfg_if! {
9-
if #[cfg(feature = "pci")] {
8+
cfg_select! {
9+
feature = "pci" => {
1010
mod pci;
11-
} else {
11+
}
12+
_ => {
1213
mod mmio;
1314
}
1415
}

src/drivers/net/mod.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,24 +57,26 @@ pub(crate) fn mtu() -> u16 {
5757
u16::from_str(&my_mtu).unwrap()
5858
}
5959

60-
cfg_if::cfg_if! {
61-
if #[cfg(all(
60+
cfg_select! {
61+
all(
6262
not(feature = "pci"),
6363
any(
6464
all(target_arch = "riscv64", feature = "gem-net"),
6565
feature = "virtio-net",
6666
),
67-
))] {
67+
) => {
6868
pub(crate) use crate::arch::kernel::mmio::NetworkDevice;
69-
} else if #[cfg(all(
69+
}
70+
all(
7071
feature = "pci",
7172
any(
7273
feature = "rtl8139",
7374
feature = "virtio-net",
7475
),
75-
))] {
76+
) => {
7677
pub(crate) use crate::drivers::pci::NetworkDevice;
77-
} else {
78+
}
79+
_ => {
7880
pub(crate) use loopback::NetworkDevice;
7981
}
8082
}

src/drivers/net/virtio/mod.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
//!
66
//! [Network Device]: https://docs.oasis-open.org/virtio/virtio/v1.2/cs01/virtio-v1.2-cs01.html#x1-2170001
77
8-
cfg_if::cfg_if! {
9-
if #[cfg(feature = "pci")] {
8+
cfg_select! {
9+
feature = "pci" => {
1010
mod pci;
11-
} else {
11+
}
12+
_ => {
1213
mod mmio;
1314
}
1415
}

0 commit comments

Comments
 (0)