Skip to content

Commit ddc3d99

Browse files
committed
unstable-riscv feature
1 parent 71b33bf commit ddc3d99

File tree

18 files changed

+37
-87
lines changed

18 files changed

+37
-87
lines changed

svd-encoder/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
88
## Unreleased
99

1010
- Add `riscv` element for configuration parameters related to RISC-V targets.
11+
You must use the `unstable-riscv` feature to enable this exeperimental element.
1112
- Bump MSRV to 1.65.0
1213

1314
## [v0.14.3] - 2023-11-15

svd-encoder/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ rust-version = "1.65.0"
1111
version = "0.14.4"
1212
readme = "README.md"
1313

14+
[features]
15+
unstable-riscv = ["svd-rs/unstable-riscv"]
16+
1417
[dependencies]
1518
convert_case = "0.6.0"
1619
svd-rs = { version = "0.14.7", path = "../svd-rs" }

svd-encoder/src/device.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ impl Encode for Device {
3434
elem.children.push(new_node("licenseText", v.clone()));
3535
}
3636

37-
// TODO not sure if this is the correct position
37+
#[cfg(feature = "unstable-riscv")]
3838
if let Some(v) = &self.riscv {
3939
elem.children
4040
.push(XMLNode::Element(v.encode_with_config(config)?));

svd-encoder/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ mod readaction;
103103
mod register;
104104
mod registercluster;
105105
mod registerproperties;
106+
#[cfg(feature = "unstable-riscv")]
106107
mod riscv;
107108
mod usage;
108109
mod writeconstraint;

svd-encoder/src/riscv.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,6 @@ impl Encode for Riscv {
77
fn encode_with_config(&self, config: &Config) -> Result<Element, EncodeError> {
88
let mut elem = Element::new("riscv");
99

10-
if let Some(clic) = &self.clic {
11-
elem.children.push(new_node("clic", clic.clone()));
12-
}
13-
if let Some(clint) = &self.clint {
14-
elem.children.push(new_node("clint", clint.clone()));
15-
}
16-
if let Some(plic) = &self.plic {
17-
elem.children.push(new_node("plic", plic.clone()));
18-
}
1910
if !self.core_interrupts.is_empty() {
2011
let mut interrupts = Element::new("coreInterrupts");
2112
for interrupt in &self.core_interrupts {

svd-parser/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
88
## Unreleased
99

1010
- Add `riscv` element for configuration parameters related to RISC-V targets.
11+
You must use the `unstable-riscv` feature to enable this exeperimental element.
1112
- Bump MSRV to 1.65.0
1213

1314
## [v0.14.5] - 2024-01-03

svd-parser/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ readme = "README.md"
1717
[features]
1818
derive-from = ["svd-rs/derive-from"]
1919
expand = ["derive-from"]
20+
unstable-riscv = ["svd-rs/unstable-riscv"]
2021

2122
[dependencies]
2223
svd-rs = { version = "0.14.7", path = "../svd-rs" }

svd-parser/src/device.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::*;
2-
use crate::svd::{
3-
cpu::Cpu, peripheral::Peripheral, registerproperties::RegisterProperties, riscv::Riscv,
4-
};
2+
#[cfg(feature = "unstable-riscv")]
3+
use crate::svd::riscv::Riscv;
4+
use crate::svd::{cpu::Cpu, peripheral::Peripheral, registerproperties::RegisterProperties};
55

66
/// Parses a SVD file
77
impl Parse for Device {
@@ -20,7 +20,6 @@ impl Parse for Device {
2020
.name(tree.get_child_text("name")?)
2121
.series(tree.get_child_text_opt("series")?)
2222
.license_text(tree.get_child_text_opt("licenseText")?)
23-
.riscv(optional::<Riscv>("riscv", tree, config)?)
2423
.cpu(optional::<Cpu>("cpu", tree, config)?)
2524
.header_system_filename(tree.get_child_text_opt("headerSystemFilename")?)
2625
.header_definitions_prefix(tree.get_child_text_opt("headerDefinitionsPrefix")?)
@@ -34,6 +33,10 @@ impl Parse for Device {
3433
.collect();
3534
ps?
3635
});
36+
#[cfg(feature = "unstable-riscv")]
37+
if let Some(riscv) = optional::<Riscv>("riscv", tree, config)? {
38+
device = device.riscv(riscv);
39+
}
3740
if let Some(version) = tree.get_child_text_opt("version")? {
3841
device = device.version(version)
3942
}

svd-parser/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ mod readaction;
211211
mod register;
212212
mod registercluster;
213213
mod registerproperties;
214+
#[cfg(feature = "unstable-riscv")]
214215
mod riscv;
215216
mod usage;
216217
mod writeconstraint;

svd-parser/src/riscv.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@ impl Parse for Riscv {
1111
return Err(SVDError::NotExpectedTag("riscv".to_string()).at(tree.id()));
1212
}
1313

14-
let mut builder = Riscv::builder()
15-
.clic(tree.get_child_text("clic").ok())
16-
.clint(tree.get_child_text("clint").ok())
17-
.plic(tree.get_child_text("plic").ok());
14+
let mut builder = Riscv::builder();
1815

1916
if let Some(interrupts) = tree.get_child("coreInterrupts") {
2017
let interrupts: Result<Vec<_>, _> = interrupts

0 commit comments

Comments
 (0)