@@ -4,21 +4,14 @@ use quote::{quote, ToTokens};
44use std:: fs:: File ;
55use std:: io:: Write ;
66
7- use crate :: util:: { self , ToSanitizedUpperCase } ;
7+ use crate :: util:: { self , Config , ToSanitizedUpperCase } ;
88use crate :: Target ;
99use anyhow:: Result ;
1010
1111use crate :: generate:: { interrupt, peripheral} ;
1212
1313/// Whole device generation
14- pub fn render (
15- d : & Device ,
16- target : Target ,
17- nightly : bool ,
18- generic_mod : bool ,
19- make_mod : bool ,
20- device_x : & mut String ,
21- ) -> Result < TokenStream > {
14+ pub fn render ( d : & Device , config : & Config , device_x : & mut String ) -> Result < TokenStream > {
2215 let mut out = TokenStream :: new ( ) ;
2316
2417 let commit_info = {
@@ -46,14 +39,14 @@ pub fn render(
4639 commit_info
4740 ) ;
4841
49- if target == Target :: Msp430 {
42+ if config . target == Target :: Msp430 {
5043 out. extend ( quote ! {
5144 #![ feature( abi_msp430_interrupt) ]
5245 } ) ;
5346 }
5447
5548 out. extend ( quote ! { #![ doc = #doc] } ) ;
56- if !make_mod {
49+ if !config . make_mod {
5750 out. extend ( quote ! {
5851 // Deny a subset of warnings
5952 #![ deny( const_err) ]
@@ -109,7 +102,7 @@ pub fn render(
109102
110103 let mut fields = TokenStream :: new ( ) ;
111104 let mut exprs = TokenStream :: new ( ) ;
112- if target == Target :: CortexM {
105+ if config . target == Target :: CortexM {
113106 out. extend ( quote ! {
114107 pub use cortex_m:: peripheral:: Peripherals as CorePeripherals ;
115108 #[ cfg( feature = "rt" ) ]
@@ -133,7 +126,7 @@ pub fn render(
133126 }
134127 }
135128
136- if target == Target :: Msp430 {
129+ if config . target == Target :: Msp430 {
137130 out. extend ( quote ! {
138131 // XXX: Are there any core peripherals, really? Requires bump of msp430 crate.
139132 // pub use msp430::peripheral::Peripherals as CorePeripherals;
@@ -145,10 +138,10 @@ pub fn render(
145138 }
146139
147140 let generic_file = std:: str:: from_utf8 ( include_bytes ! ( "generic.rs" ) ) ?;
148- if generic_mod {
141+ if config . generic_mod {
149142 writeln ! ( File :: create( "generic.rs" ) ?, "{}" , generic_file) ?;
150143
151- if !make_mod {
144+ if !config . make_mod {
152145 out. extend ( quote ! {
153146 #[ allow( unused_imports) ]
154147 use generic:: * ;
@@ -169,10 +162,10 @@ pub fn render(
169162 } ) ;
170163 }
171164
172- out. extend ( interrupt:: render ( target, & d. peripherals , device_x) ?) ;
165+ out. extend ( interrupt:: render ( config . target , & d. peripherals , device_x) ?) ;
173166
174167 for p in & d. peripherals {
175- if target == Target :: CortexM && core_peripherals. contains ( & & * p. name . to_uppercase ( ) ) {
168+ if config . target == Target :: CortexM && core_peripherals. contains ( & & * p. name . to_uppercase ( ) ) {
176169 // Core peripherals are handled above
177170 continue ;
178171 }
@@ -181,7 +174,7 @@ pub fn render(
181174 p,
182175 & d. peripherals ,
183176 & d. default_register_properties ,
184- nightly ,
177+ config ,
185178 ) ?) ;
186179
187180 if p. registers
@@ -206,7 +199,7 @@ pub fn render(
206199 }
207200
208201 let span = Span :: call_site ( ) ;
209- let take = match target {
202+ let take = match config . target {
210203 Target :: CortexM => Some ( Ident :: new ( "cortex_m" , span) ) ,
211204 Target :: Msp430 => Some ( Ident :: new ( "msp430" , span) ) ,
212205 Target :: RISCV => Some ( Ident :: new ( "riscv" , span) ) ,
0 commit comments