aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/shared_resources_struct.rs
diff options
context:
space:
mode:
authorGravatar bors[bot] <26634292+bors[bot]@users.noreply.github.com> 2023-01-25 20:34:49 +0000
committerGravatar GitHub <noreply@github.com> 2023-01-25 20:34:49 +0000
commitd43c2b64cc726ff093d418d45d89226dd76e4e55 (patch)
treeb525e1eb26b158b2761c17d2ea7af3fe0cf4a79d /macros/src/codegen/shared_resources_struct.rs
parenta601c6e449e7222dcfe73bc2f2c41c95b99b46d7 (diff)
parent800904a1054639a090ef92e9b1e7c884ea9863e0 (diff)
downloadrtic-d43c2b64cc726ff093d418d45d89226dd76e4e55.tar.gz
rtic-d43c2b64cc726ff093d418d45d89226dd76e4e55.tar.zst
rtic-d43c2b64cc726ff093d418d45d89226dd76e4e55.zip
Merge #692
692: CFG: Support HW tasks, cleanup for SW tasks r=korken89 a=AfoHT Fixes #665 Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
Diffstat (limited to 'macros/src/codegen/shared_resources_struct.rs')
-rw-r--r--macros/src/codegen/shared_resources_struct.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/macros/src/codegen/shared_resources_struct.rs b/macros/src/codegen/shared_resources_struct.rs
index 7b6cd20d..df362719 100644
--- a/macros/src/codegen/shared_resources_struct.rs
+++ b/macros/src/codegen/shared_resources_struct.rs
@@ -15,6 +15,19 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2,
Context::SoftwareTask(name) => &app.software_tasks[name].args.shared_resources,
};
+ let v = Vec::new();
+ let task_cfgs = match ctxt {
+ Context::HardwareTask(t) => {
+ &app.hardware_tasks[t].cfgs
+ // ...
+ }
+ Context::SoftwareTask(t) => {
+ &app.software_tasks[t].cfgs
+ // ...
+ }
+ _ => &v,
+ };
+
let mut fields = vec![];
let mut values = vec![];
let mut has_cfgs = false;
@@ -118,6 +131,7 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2,
#[allow(non_snake_case)]
#[allow(non_camel_case_types)]
#[doc = #doc]
+ #(#task_cfgs)*
pub struct #ident<#lt> {
#(#fields,)*
}
@@ -129,6 +143,7 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2,
Some(quote!(priority: &#lt rtic::export::Priority))
};
let constructor = quote!(
+ #(#task_cfgs)*
impl<#lt> #ident<#lt> {
#[doc(hidden)]
#[inline(always)]