aboutsummaryrefslogtreecommitdiff
path: root/embassy-macros/src
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2021-02-26 01:55:27 +0100
committerDario Nieuwenhuis <[email protected]>2021-02-26 01:55:27 +0100
commit11be9170ec018dcc9284b413c5313ce7bb07159f (patch)
treeb9a1663a24af2dc0a1c860667d2db00f03d391a7 /embassy-macros/src
parent90476ef9005e391e9a9c9e5c4f0d82ceccdf7c11 (diff)
Cleanup interrupt package naming. Fixes #40
The `interrupt` package previously tried to be drop-in compatible with the `interrupt` package from PACs. THis meant that there was both a PAC-style enum value `UARTE0` and an embassy-style owned `UARTE0Interrupt` type. This made things VERY confusing. This drops compatibility with the PAC, improving the names for embassy interrupts.
Diffstat (limited to 'embassy-macros/src')
-rw-r--r--embassy-macros/src/lib.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/embassy-macros/src/lib.rs b/embassy-macros/src/lib.rs
index e77cd9bc2..8276f0bbc 100644
--- a/embassy-macros/src/lib.rs
+++ b/embassy-macros/src/lib.rs
@@ -114,17 +114,17 @@ pub fn task(args: TokenStream, item: TokenStream) -> TokenStream {
114pub fn interrupt_declare(item: TokenStream) -> TokenStream { 114pub fn interrupt_declare(item: TokenStream) -> TokenStream {
115 let name = syn::parse_macro_input!(item as syn::Ident); 115 let name = syn::parse_macro_input!(item as syn::Ident);
116 let name = format_ident!("{}", name); 116 let name = format_ident!("{}", name);
117 let name_interrupt = format_ident!("{}Interrupt", name); 117 let name_interrupt = format_ident!("{}", name);
118 let name_handler = format!("__EMBASSY_{}_HANDLER", name); 118 let name_handler = format!("__EMBASSY_{}_HANDLER", name);
119 119
120 let result = quote! { 120 let result = quote! {
121 #[allow(non_camel_case_types)] 121 #[allow(non_camel_case_types)]
122 pub struct #name_interrupt(()); 122 pub struct #name_interrupt(());
123 unsafe impl OwnedInterrupt for #name_interrupt { 123 unsafe impl Interrupt for #name_interrupt {
124 type Priority = Priority; 124 type Priority = crate::interrupt::Priority;
125 fn number(&self) -> u16 { 125 fn number(&self) -> u16 {
126 use cortex_m::interrupt::InterruptNumber; 126 use cortex_m::interrupt::InterruptNumber;
127 let irq = Interrupt::#name; 127 let irq = crate::pac::interrupt::#name;
128 irq.number() as u16 128 irq.number() as u16
129 } 129 }
130 unsafe fn steal() -> Self { 130 unsafe fn steal() -> Self {
@@ -144,7 +144,7 @@ pub fn interrupt_declare(item: TokenStream) -> TokenStream {
144pub fn interrupt_take(item: TokenStream) -> TokenStream { 144pub fn interrupt_take(item: TokenStream) -> TokenStream {
145 let name = syn::parse_macro_input!(item as syn::Ident); 145 let name = syn::parse_macro_input!(item as syn::Ident);
146 let name = format!("{}", name); 146 let name = format!("{}", name);
147 let name_interrupt = format_ident!("{}Interrupt", name); 147 let name_interrupt = format_ident!("{}", name);
148 let name_handler = format!("__EMBASSY_{}_HANDLER", name); 148 let name_handler = format!("__EMBASSY_{}_HANDLER", name);
149 149
150 let result = quote! { 150 let result = quote! {