From ccfe53376ac579c2874000a939ea8be331c626aa Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 14 Jan 2020 15:27:05 +0100 Subject: [PATCH 01/10] Introduce SourceBinder --- crates/ra_hir/src/lib.rs | 3 +- crates/ra_hir/src/source_analyzer.rs | 140 ++++++------------- crates/ra_hir/src/source_binder.rs | 171 +++++++++++++++++++++++ crates/ra_hir_def/src/lib.rs | 2 +- crates/ra_ide/src/syntax_highlighting.rs | 2 +- 5 files changed, 217 insertions(+), 101 deletions(-) create mode 100644 crates/ra_hir/src/source_binder.rs diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs index a1cf89010f..a953eabc77 100644 --- a/crates/ra_hir/src/lib.rs +++ b/crates/ra_hir/src/lib.rs @@ -8,7 +8,7 @@ #![recursion_limit = "512"] macro_rules! impl_froms { - ($e:ident: $($v:ident $(($($sv:ident),*))?),*) => { + ($e:ident: $($v:ident $(($($sv:ident),*))?),*$(,)?) => { $( impl From<$v> for $e { fn from(it: $v) -> $e { @@ -28,6 +28,7 @@ macro_rules! impl_froms { pub mod db; pub mod source_analyzer; +pub mod source_binder; pub mod diagnostics; diff --git a/crates/ra_hir/src/source_analyzer.rs b/crates/ra_hir/src/source_analyzer.rs index 76e0bff347..90bc939996 100644 --- a/crates/ra_hir/src/source_analyzer.rs +++ b/crates/ra_hir/src/source_analyzer.rs @@ -14,30 +14,26 @@ use hir_def::{ BodySourceMap, }, expr::{ExprId, PatId}, - nameres::ModuleSource, - resolver::{self, resolver_for_scope, HasResolver, Resolver, TypeNs, ValueNs}, + resolver::{self, resolver_for_scope, Resolver, TypeNs, ValueNs}, DefWithBodyId, TraitId, }; use hir_expand::{ hygiene::Hygiene, name::AsName, AstId, HirFileId, InFile, MacroCallId, MacroCallKind, }; use hir_ty::{InEnvironment, InferenceResult, TraitEnvironment}; -use ra_prof::profile; use ra_syntax::{ ast::{self, AstNode}, - match_ast, AstPtr, - SyntaxKind::*, - SyntaxNode, SyntaxNodePtr, SyntaxToken, TextRange, TextUnit, + AstPtr, SyntaxNode, SyntaxNodePtr, SyntaxToken, TextRange, TextUnit, }; use rustc_hash::FxHashSet; use crate::{ - db::HirDatabase, Adt, Const, DefWithBody, Enum, EnumVariant, FromSource, Function, ImplBlock, - Local, MacroDef, Name, Path, ScopeDef, Static, Struct, Trait, Type, TypeAlias, TypeParam, + db::HirDatabase, Adt, Const, DefWithBody, EnumVariant, Function, Local, MacroDef, Name, Path, + ScopeDef, Static, Struct, Trait, Type, TypeAlias, TypeParam, }; /// `SourceAnalyzer` is a convenience wrapper which exposes HIR API in terms of -/// original source files. It should not be used inside the HIR itself. +/// original source files. It should not be used pinside the HIR itself. #[derive(Debug)] pub struct SourceAnalyzer { file_id: HirFileId, @@ -109,37 +105,43 @@ impl SourceAnalyzer { node: InFile<&SyntaxNode>, offset: Option, ) -> SourceAnalyzer { - let _p = profile("SourceAnalyzer::new"); - let def_with_body = def_with_body_from_child_node(db, node); - if let Some(def) = def_with_body { - let (_body, source_map) = db.body_with_source_map(def.into()); - let scopes = db.expr_scopes(def.into()); - let scope = match offset { - None => scope_for(&scopes, &source_map, node), - Some(offset) => scope_for_offset(&scopes, &source_map, node.with_value(offset)), - }; - let resolver = resolver_for_scope(db, def.into(), scope); - SourceAnalyzer { - resolver, - body_owner: Some(def), - body_source_map: Some(source_map), - infer: Some(db.infer(def.into())), - scopes: Some(scopes), - file_id: node.file_id, - } - } else { - SourceAnalyzer { - resolver: node - .value - .ancestors() - .find_map(|it| try_get_resolver_for_node(db, node.with_value(&it))) - .unwrap_or_default(), - body_owner: None, - body_source_map: None, - infer: None, - scopes: None, - file_id: node.file_id, - } + crate::source_binder::SourceBinder::default().analyze(db, node, offset) + } + + pub(crate) fn new_for_body( + db: &impl HirDatabase, + def: DefWithBodyId, + node: InFile<&SyntaxNode>, + offset: Option, + ) -> SourceAnalyzer { + let (_body, source_map) = db.body_with_source_map(def); + let scopes = db.expr_scopes(def); + let scope = match offset { + None => scope_for(&scopes, &source_map, node), + Some(offset) => scope_for_offset(&scopes, &source_map, node.with_value(offset)), + }; + let resolver = resolver_for_scope(db, def, scope); + SourceAnalyzer { + resolver, + body_owner: Some(def.into()), + body_source_map: Some(source_map), + infer: Some(db.infer(def)), + scopes: Some(scopes), + file_id: node.file_id, + } + } + + pub(crate) fn new_for_resolver( + resolver: Resolver, + node: InFile<&SyntaxNode>, + ) -> SourceAnalyzer { + SourceAnalyzer { + resolver, + body_owner: None, + body_source_map: None, + infer: None, + scopes: None, + file_id: node.file_id, } } @@ -366,64 +368,6 @@ impl SourceAnalyzer { } } -fn try_get_resolver_for_node(db: &impl HirDatabase, node: InFile<&SyntaxNode>) -> Option { - match_ast! { - match (node.value) { - ast::Module(it) => { - let src = node.with_value(it); - Some(crate::Module::from_declaration(db, src)?.id.resolver(db)) - }, - ast::SourceFile(it) => { - let src = node.with_value(ModuleSource::SourceFile(it)); - Some(crate::Module::from_definition(db, src)?.id.resolver(db)) - }, - ast::StructDef(it) => { - let src = node.with_value(it); - Some(Struct::from_source(db, src)?.id.resolver(db)) - }, - ast::EnumDef(it) => { - let src = node.with_value(it); - Some(Enum::from_source(db, src)?.id.resolver(db)) - }, - ast::ImplBlock(it) => { - let src = node.with_value(it); - Some(ImplBlock::from_source(db, src)?.id.resolver(db)) - }, - ast::TraitDef(it) => { - let src = node.with_value(it); - Some(Trait::from_source(db, src)?.id.resolver(db)) - }, - _ => match node.value.kind() { - FN_DEF | CONST_DEF | STATIC_DEF => { - let def = def_with_body_from_child_node(db, node)?; - let def = DefWithBodyId::from(def); - Some(def.resolver(db)) - } - // FIXME add missing cases - _ => None - } - } - } -} - -fn def_with_body_from_child_node( - db: &impl HirDatabase, - child: InFile<&SyntaxNode>, -) -> Option { - let _p = profile("def_with_body_from_child_node"); - child.cloned().ancestors_with_macros(db).find_map(|node| { - let n = &node.value; - match_ast! { - match n { - ast::FnDef(def) => { return Function::from_source(db, node.with_value(def)).map(DefWithBody::from); }, - ast::ConstDef(def) => { return Const::from_source(db, node.with_value(def)).map(DefWithBody::from); }, - ast::StaticDef(def) => { return Static::from_source(db, node.with_value(def)).map(DefWithBody::from); }, - _ => { None }, - } - } - }) -} - fn scope_for( scopes: &ExprScopes, source_map: &BodySourceMap, diff --git a/crates/ra_hir/src/source_binder.rs b/crates/ra_hir/src/source_binder.rs new file mode 100644 index 0000000000..cec3f8c2c9 --- /dev/null +++ b/crates/ra_hir/src/source_binder.rs @@ -0,0 +1,171 @@ +//! `SourceBinder` should be the main entry point for getting info about source code. +//! It's main task is to map source syntax trees to hir-level IDs. +//! +//! It is intended to subsume `FromSource` and `SourceAnalyzer`. + +use hir_def::{ + child_by_source::ChildBySource, + dyn_map::DynMap, + keys::{self, Key}, + resolver::{HasResolver, Resolver}, + ConstId, DefWithBodyId, EnumId, FunctionId, ImplId, ModuleId, StaticId, StructId, TraitId, + UnionId, VariantId, +}; +use hir_expand::InFile; +use ra_prof::profile; +use ra_syntax::{ast, match_ast, AstNode, SyntaxNode, TextUnit}; +use rustc_hash::FxHashMap; + +use crate::{db::HirDatabase, ModuleSource, SourceAnalyzer}; + +#[derive(Default)] +pub struct SourceBinder { + child_by_source_cache: FxHashMap, +} + +impl SourceBinder { + pub fn analyze( + &mut self, + db: &impl HirDatabase, + src: InFile<&SyntaxNode>, + offset: Option, + ) -> SourceAnalyzer { + let _p = profile("SourceBinder::analyzer"); + let container = match self.find_container(db, src) { + Some(it) => it, + None => return SourceAnalyzer::new_for_resolver(Resolver::default(), src), + }; + + let resolver = match container { + ChildContainer::DefWithBodyId(def) => { + return SourceAnalyzer::new_for_body(db, def, src, offset) + } + ChildContainer::TraitId(it) => it.resolver(db), + ChildContainer::ImplId(it) => it.resolver(db), + ChildContainer::ModuleId(it) => it.resolver(db), + ChildContainer::EnumId(it) => it.resolver(db), + ChildContainer::VariantId(it) => it.resolver(db), + }; + SourceAnalyzer::new_for_resolver(resolver, src) + } + + pub fn to_def(&mut self, db: &impl HirDatabase, src: InFile) -> Option + where + D: From, + ID: ToId, + { + let id: ID = self.to_id(db, src)?; + Some(id.into()) + } + + fn to_id(&mut self, db: &impl HirDatabase, src: InFile) -> Option { + let container = self.find_container(db, src.as_ref().map(|it| it.syntax()))?; + let dyn_map = + &*self.child_by_source_cache.entry(container).or_insert_with(|| match container { + ChildContainer::DefWithBodyId(it) => it.child_by_source(db), + ChildContainer::ModuleId(it) => it.child_by_source(db), + ChildContainer::TraitId(it) => it.child_by_source(db), + ChildContainer::ImplId(it) => it.child_by_source(db), + ChildContainer::EnumId(it) => it.child_by_source(db), + ChildContainer::VariantId(it) => it.child_by_source(db), + }); + dyn_map[D::KEY].get(&src).copied() + } + + fn find_container( + &mut self, + db: &impl HirDatabase, + src: InFile<&SyntaxNode>, + ) -> Option { + for container in src.cloned().ancestors_with_macros(db).skip(1) { + let res: ChildContainer = match_ast! { + match (container.value) { + ast::TraitDef(it) => { + let def: TraitId = self.to_id(db, container.with_value(it))?; + def.into() + }, + ast::ImplBlock(it) => { + let def: ImplId = self.to_id(db, container.with_value(it))?; + def.into() + }, + ast::FnDef(it) => { + let def: FunctionId = self.to_id(db, container.with_value(it))?; + DefWithBodyId::from(def).into() + }, + ast::StaticDef(it) => { + let def: StaticId = self.to_id(db, container.with_value(it))?; + DefWithBodyId::from(def).into() + }, + ast::ConstDef(it) => { + let def: ConstId = self.to_id(db, container.with_value(it))?; + DefWithBodyId::from(def).into() + }, + ast::EnumDef(it) => { + let def: EnumId = self.to_id(db, container.with_value(it))?; + def.into() + }, + ast::StructDef(it) => { + let def: StructId = self.to_id(db, container.with_value(it))?; + VariantId::from(def).into() + }, + ast::UnionDef(it) => { + let def: UnionId = self.to_id(db, container.with_value(it))?; + VariantId::from(def).into() + }, + // FIXME: handle out-of-line modules here + _ => { continue }, + } + }; + return Some(res); + } + + let module_source = ModuleSource::from_child_node(db, src); + let c = crate::Module::from_definition(db, src.with_value(module_source))?; + Some(c.id.into()) + } +} + +#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)] +enum ChildContainer { + DefWithBodyId(DefWithBodyId), + ModuleId(ModuleId), + TraitId(TraitId), + ImplId(ImplId), + EnumId(EnumId), + VariantId(VariantId), +} +impl_froms! { + ChildContainer: + DefWithBodyId, + ModuleId, + TraitId, + ImplId, + EnumId, + VariantId, +} + +pub trait ToId: Sized + Copy + 'static { + type Ast: AstNode + 'static; + const KEY: Key; +} + +macro_rules! to_id_impls { + ($(($id:ident, $ast:path, $key:path)),* ,) => {$( + impl ToId for $id { + type Ast = $ast; + const KEY: Key = $key; + } + )*} +} + +to_id_impls![ + (StructId, ast::StructDef, keys::STRUCT), + (UnionId, ast::UnionDef, keys::UNION), + (EnumId, ast::EnumDef, keys::ENUM), + (TraitId, ast::TraitDef, keys::TRAIT), + (FunctionId, ast::FnDef, keys::FUNCTION), + (StaticId, ast::StaticDef, keys::STATIC), + (ConstId, ast::ConstDef, keys::CONST), + // (TypeAlias, TypeAliasId, ast::TypeAliasDef, keys::TYPE_ALIAS), + (ImplId, ast::ImplBlock, keys::IMPL), +]; diff --git a/crates/ra_hir_def/src/lib.rs b/crates/ra_hir_def/src/lib.rs index ebc12e891d..feb3a300d5 100644 --- a/crates/ra_hir_def/src/lib.rs +++ b/crates/ra_hir_def/src/lib.rs @@ -332,7 +332,7 @@ pub enum VariantId { StructId(StructId), UnionId(UnionId), } -impl_froms!(VariantId: EnumVariantId, StructId); +impl_froms!(VariantId: EnumVariantId, StructId, UnionId); trait Intern { type ID; diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index 56a36f5873..f06a8933ea 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -312,7 +312,7 @@ mod tests { use test_utils::{assert_eq_text, project_dir, read_text}; #[test] - fn test_highlighting() { + fn te3st_highlighting() { let (analysis, file_id) = single_file( r#" #[derive(Clone, Debug)] From a71bb70f0a933ca5e78ca02a205fd4cb94ece48e Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 14 Jan 2020 16:55:35 +0100 Subject: [PATCH 02/10] Store DB in SourceBinder --- crates/ra_hir/src/lib.rs | 1 + crates/ra_hir/src/source_analyzer.rs | 2 +- crates/ra_hir/src/source_binder.rs | 62 ++++++++++++++-------------- 3 files changed, 33 insertions(+), 32 deletions(-) diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs index a953eabc77..a2350573c7 100644 --- a/crates/ra_hir/src/lib.rs +++ b/crates/ra_hir/src/lib.rs @@ -48,6 +48,7 @@ pub use crate::{ from_source::FromSource, has_source::HasSource, source_analyzer::{PathResolution, ScopeEntryWithSyntax, SourceAnalyzer}, + source_binder::SourceBinder, }; pub use hir_def::{ diff --git a/crates/ra_hir/src/source_analyzer.rs b/crates/ra_hir/src/source_analyzer.rs index 90bc939996..186dd2411f 100644 --- a/crates/ra_hir/src/source_analyzer.rs +++ b/crates/ra_hir/src/source_analyzer.rs @@ -105,7 +105,7 @@ impl SourceAnalyzer { node: InFile<&SyntaxNode>, offset: Option, ) -> SourceAnalyzer { - crate::source_binder::SourceBinder::default().analyze(db, node, offset) + crate::source_binder::SourceBinder::new(db).analyze(node, offset) } pub(crate) fn new_for_body( diff --git a/crates/ra_hir/src/source_binder.rs b/crates/ra_hir/src/source_binder.rs index cec3f8c2c9..8f002d2ee2 100644 --- a/crates/ra_hir/src/source_binder.rs +++ b/crates/ra_hir/src/source_binder.rs @@ -18,48 +18,52 @@ use rustc_hash::FxHashMap; use crate::{db::HirDatabase, ModuleSource, SourceAnalyzer}; -#[derive(Default)] -pub struct SourceBinder { +pub struct SourceBinder<'a, DB> { + pub db: &'a DB, child_by_source_cache: FxHashMap, } -impl SourceBinder { +impl SourceBinder<'_, DB> { + pub fn new(db: &DB) -> SourceBinder { + SourceBinder { db, child_by_source_cache: FxHashMap::default() } + } + pub fn analyze( &mut self, - db: &impl HirDatabase, src: InFile<&SyntaxNode>, offset: Option, ) -> SourceAnalyzer { let _p = profile("SourceBinder::analyzer"); - let container = match self.find_container(db, src) { + let container = match self.find_container(src) { Some(it) => it, None => return SourceAnalyzer::new_for_resolver(Resolver::default(), src), }; let resolver = match container { ChildContainer::DefWithBodyId(def) => { - return SourceAnalyzer::new_for_body(db, def, src, offset) + return SourceAnalyzer::new_for_body(self.db, def, src, offset) } - ChildContainer::TraitId(it) => it.resolver(db), - ChildContainer::ImplId(it) => it.resolver(db), - ChildContainer::ModuleId(it) => it.resolver(db), - ChildContainer::EnumId(it) => it.resolver(db), - ChildContainer::VariantId(it) => it.resolver(db), + ChildContainer::TraitId(it) => it.resolver(self.db), + ChildContainer::ImplId(it) => it.resolver(self.db), + ChildContainer::ModuleId(it) => it.resolver(self.db), + ChildContainer::EnumId(it) => it.resolver(self.db), + ChildContainer::VariantId(it) => it.resolver(self.db), }; SourceAnalyzer::new_for_resolver(resolver, src) } - pub fn to_def(&mut self, db: &impl HirDatabase, src: InFile) -> Option + pub fn to_def(&mut self, src: InFile) -> Option where D: From, ID: ToId, { - let id: ID = self.to_id(db, src)?; + let id: ID = self.to_id(src)?; Some(id.into()) } - fn to_id(&mut self, db: &impl HirDatabase, src: InFile) -> Option { - let container = self.find_container(db, src.as_ref().map(|it| it.syntax()))?; + fn to_id(&mut self, src: InFile) -> Option { + let container = self.find_container(src.as_ref().map(|it| it.syntax()))?; + let db = self.db; let dyn_map = &*self.child_by_source_cache.entry(container).or_insert_with(|| match container { ChildContainer::DefWithBodyId(it) => it.child_by_source(db), @@ -72,44 +76,40 @@ impl SourceBinder { dyn_map[D::KEY].get(&src).copied() } - fn find_container( - &mut self, - db: &impl HirDatabase, - src: InFile<&SyntaxNode>, - ) -> Option { - for container in src.cloned().ancestors_with_macros(db).skip(1) { + fn find_container(&mut self, src: InFile<&SyntaxNode>) -> Option { + for container in src.cloned().ancestors_with_macros(self.db).skip(1) { let res: ChildContainer = match_ast! { match (container.value) { ast::TraitDef(it) => { - let def: TraitId = self.to_id(db, container.with_value(it))?; + let def: TraitId = self.to_id(container.with_value(it))?; def.into() }, ast::ImplBlock(it) => { - let def: ImplId = self.to_id(db, container.with_value(it))?; + let def: ImplId = self.to_id(container.with_value(it))?; def.into() }, ast::FnDef(it) => { - let def: FunctionId = self.to_id(db, container.with_value(it))?; + let def: FunctionId = self.to_id(container.with_value(it))?; DefWithBodyId::from(def).into() }, ast::StaticDef(it) => { - let def: StaticId = self.to_id(db, container.with_value(it))?; + let def: StaticId = self.to_id(container.with_value(it))?; DefWithBodyId::from(def).into() }, ast::ConstDef(it) => { - let def: ConstId = self.to_id(db, container.with_value(it))?; + let def: ConstId = self.to_id(container.with_value(it))?; DefWithBodyId::from(def).into() }, ast::EnumDef(it) => { - let def: EnumId = self.to_id(db, container.with_value(it))?; + let def: EnumId = self.to_id(container.with_value(it))?; def.into() }, ast::StructDef(it) => { - let def: StructId = self.to_id(db, container.with_value(it))?; + let def: StructId = self.to_id(container.with_value(it))?; VariantId::from(def).into() }, ast::UnionDef(it) => { - let def: UnionId = self.to_id(db, container.with_value(it))?; + let def: UnionId = self.to_id(container.with_value(it))?; VariantId::from(def).into() }, // FIXME: handle out-of-line modules here @@ -119,8 +119,8 @@ impl SourceBinder { return Some(res); } - let module_source = ModuleSource::from_child_node(db, src); - let c = crate::Module::from_definition(db, src.with_value(module_source))?; + let module_source = ModuleSource::from_child_node(self.db, src); + let c = crate::Module::from_definition(self.db, src.with_value(module_source))?; Some(c.id.into()) } } From 7e70fc22a79ad2eb4deeb6465799f03e7580fee1 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 14 Jan 2020 17:11:47 +0100 Subject: [PATCH 03/10] Flip generics --- crates/ra_hir/src/source_binder.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/crates/ra_hir/src/source_binder.rs b/crates/ra_hir/src/source_binder.rs index 8f002d2ee2..ca003576ae 100644 --- a/crates/ra_hir/src/source_binder.rs +++ b/crates/ra_hir/src/source_binder.rs @@ -52,16 +52,16 @@ impl SourceBinder<'_, DB> { SourceAnalyzer::new_for_resolver(resolver, src) } - pub fn to_def(&mut self, src: InFile) -> Option + pub fn to_def(&mut self, src: InFile) -> Option where - D: From, - ID: ToId, + D: From, + T: ToId, { - let id: ID = self.to_id(src)?; + let id: T::ID = self.to_id(src)?; Some(id.into()) } - fn to_id(&mut self, src: InFile) -> Option { + fn to_id(&mut self, src: InFile) -> Option { let container = self.find_container(src.as_ref().map(|it| it.syntax()))?; let db = self.db; let dyn_map = @@ -73,7 +73,7 @@ impl SourceBinder<'_, DB> { ChildContainer::EnumId(it) => it.child_by_source(db), ChildContainer::VariantId(it) => it.child_by_source(db), }); - dyn_map[D::KEY].get(&src).copied() + dyn_map[T::KEY].get(&src).copied() } fn find_container(&mut self, src: InFile<&SyntaxNode>) -> Option { @@ -144,16 +144,16 @@ impl_froms! { VariantId, } -pub trait ToId: Sized + Copy + 'static { - type Ast: AstNode + 'static; - const KEY: Key; +pub trait ToId: Sized + AstNode + 'static { + type ID: Sized + Copy + 'static; + const KEY: Key; } macro_rules! to_id_impls { ($(($id:ident, $ast:path, $key:path)),* ,) => {$( - impl ToId for $id { - type Ast = $ast; - const KEY: Key = $key; + impl ToId for $ast { + type ID = $id; + const KEY: Key = $key; } )*} } From c640c2ea114f21bc6e4913dac38cdc451c41ceae Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 14 Jan 2020 17:24:00 +0100 Subject: [PATCH 04/10] Make syntax highlighting linear --- crates/ra_hir/src/source_binder.rs | 8 +- crates/ra_ide/src/references.rs | 6 +- crates/ra_ide/src/references/classify.rs | 109 +++++++++++++---------- crates/ra_ide/src/syntax_highlighting.rs | 12 +-- 4 files changed, 78 insertions(+), 57 deletions(-) diff --git a/crates/ra_hir/src/source_binder.rs b/crates/ra_hir/src/source_binder.rs index ca003576ae..00541dbe12 100644 --- a/crates/ra_hir/src/source_binder.rs +++ b/crates/ra_hir/src/source_binder.rs @@ -8,8 +8,8 @@ use hir_def::{ dyn_map::DynMap, keys::{self, Key}, resolver::{HasResolver, Resolver}, - ConstId, DefWithBodyId, EnumId, FunctionId, ImplId, ModuleId, StaticId, StructId, TraitId, - UnionId, VariantId, + ConstId, DefWithBodyId, EnumId, EnumVariantId, FunctionId, ImplId, ModuleId, StaticId, + StructFieldId, StructId, TraitId, TypeAliasId, UnionId, VariantId, }; use hir_expand::InFile; use ra_prof::profile; @@ -166,6 +166,8 @@ to_id_impls![ (FunctionId, ast::FnDef, keys::FUNCTION), (StaticId, ast::StaticDef, keys::STATIC), (ConstId, ast::ConstDef, keys::CONST), - // (TypeAlias, TypeAliasId, ast::TypeAliasDef, keys::TYPE_ALIAS), + (TypeAliasId, ast::TypeAliasDef, keys::TYPE_ALIAS), (ImplId, ast::ImplBlock, keys::IMPL), + (StructFieldId, ast::RecordFieldDef, keys::RECORD_FIELD), + (EnumVariantId, ast::EnumVariant, keys::ENUM_VARIANT), ]; diff --git a/crates/ra_ide/src/references.rs b/crates/ra_ide/src/references.rs index 2c753dade2..2b74d76538 100644 --- a/crates/ra_ide/src/references.rs +++ b/crates/ra_ide/src/references.rs @@ -29,7 +29,7 @@ use crate::{ }; pub(crate) use self::{ - classify::{classify_name, classify_name_ref}, + classify::{classify_name, classify_name2, classify_name_ref, classify_name_ref2}, name_definition::{NameDefinition, NameKind}, rename::rename, }; @@ -309,7 +309,7 @@ mod tests { } impl Foo { fn f() -> i32 { 42 } - } + } fn main() { let f: Foo; f = Foo {a: Foo::f()}; @@ -319,7 +319,7 @@ mod tests { check_result( refs, "Foo STRUCT_DEF FileId(1) [5; 39) [12; 15) Other", - &["FileId(1) [142; 145) StructLiteral"], + &["FileId(1) [138; 141) StructLiteral"], ); } diff --git a/crates/ra_ide/src/references/classify.rs b/crates/ra_ide/src/references/classify.rs index 3483a7176c..9778ca5365 100644 --- a/crates/ra_ide/src/references/classify.rs +++ b/crates/ra_ide/src/references/classify.rs @@ -1,6 +1,6 @@ //! Functions that are used to classify an element from its definition or reference. -use hir::{FromSource, InFile, Module, ModuleSource, PathResolution, SourceAnalyzer}; +use hir::{FromSource, InFile, Module, ModuleSource, PathResolution, SourceBinder}; use ra_prof::profile; use ra_syntax::{ast, match_ast, AstNode}; use test_utils::tested_by; @@ -12,6 +12,14 @@ use super::{ use crate::db::RootDatabase; pub(crate) fn classify_name(db: &RootDatabase, name: InFile<&ast::Name>) -> Option { + let mut sb = SourceBinder::new(db); + classify_name2(&mut sb, name) +} + +pub(crate) fn classify_name2( + sb: &mut SourceBinder, + name: InFile<&ast::Name>, +) -> Option { let _p = profile("classify_name"); let parent = name.value.syntax().parent()?; @@ -19,90 +27,89 @@ pub(crate) fn classify_name(db: &RootDatabase, name: InFile<&ast::Name>) -> Opti match parent { ast::BindPat(it) => { let src = name.with_value(it); - let local = hir::Local::from_source(db, src)?; + let local = hir::Local::from_source(sb.db, src)?; Some(NameDefinition { visibility: None, - container: local.module(db), + container: local.module(sb.db), kind: NameKind::Local(local), }) }, ast::RecordFieldDef(it) => { - let ast = hir::FieldSource::Named(it); - let src = name.with_value(ast); - let field = hir::StructField::from_source(db, src)?; - Some(from_struct_field(db, field)) + let src = name.with_value(it); + let field: hir::StructField = sb.to_def(src)?; + Some(from_struct_field(sb.db, field)) }, ast::Module(it) => { let def = { if !it.has_semi() { let ast = hir::ModuleSource::Module(it); let src = name.with_value(ast); - hir::Module::from_definition(db, src) + hir::Module::from_definition(sb.db, src) } else { let src = name.with_value(it); - hir::Module::from_declaration(db, src) + hir::Module::from_declaration(sb.db, src) } }?; - Some(from_module_def(db, def.into(), None)) + Some(from_module_def(sb.db, def.into(), None)) }, ast::StructDef(it) => { let src = name.with_value(it); - let def = hir::Struct::from_source(db, src)?; - Some(from_module_def(db, def.into(), None)) + let def: hir::Struct = sb.to_def(src)?; + Some(from_module_def(sb.db, def.into(), None)) }, ast::EnumDef(it) => { let src = name.with_value(it); - let def = hir::Enum::from_source(db, src)?; - Some(from_module_def(db, def.into(), None)) + let def: hir::Enum = sb.to_def(src)?; + Some(from_module_def(sb.db, def.into(), None)) }, ast::TraitDef(it) => { let src = name.with_value(it); - let def = hir::Trait::from_source(db, src)?; - Some(from_module_def(db, def.into(), None)) + let def: hir::Trait = sb.to_def(src)?; + Some(from_module_def(sb.db, def.into(), None)) }, ast::StaticDef(it) => { let src = name.with_value(it); - let def = hir::Static::from_source(db, src)?; - Some(from_module_def(db, def.into(), None)) + let def: hir::Static = sb.to_def(src)?; + Some(from_module_def(sb.db, def.into(), None)) }, ast::EnumVariant(it) => { let src = name.with_value(it); - let def = hir::EnumVariant::from_source(db, src)?; - Some(from_module_def(db, def.into(), None)) + let def: hir::EnumVariant = sb.to_def(src)?; + Some(from_module_def(sb.db, def.into(), None)) }, ast::FnDef(it) => { let src = name.with_value(it); - let def = hir::Function::from_source(db, src)?; + let def: hir::Function = sb.to_def(src)?; if parent.parent().and_then(ast::ItemList::cast).is_some() { - Some(from_assoc_item(db, def.into())) + Some(from_assoc_item(sb.db, def.into())) } else { - Some(from_module_def(db, def.into(), None)) + Some(from_module_def(sb.db, def.into(), None)) } }, ast::ConstDef(it) => { let src = name.with_value(it); - let def = hir::Const::from_source(db, src)?; + let def: hir::Const = sb.to_def(src)?; if parent.parent().and_then(ast::ItemList::cast).is_some() { - Some(from_assoc_item(db, def.into())) + Some(from_assoc_item(sb.db, def.into())) } else { - Some(from_module_def(db, def.into(), None)) + Some(from_module_def(sb.db, def.into(), None)) } }, ast::TypeAliasDef(it) => { let src = name.with_value(it); - let def = hir::TypeAlias::from_source(db, src)?; + let def: hir::TypeAlias = sb.to_def(src)?; if parent.parent().and_then(ast::ItemList::cast).is_some() { - Some(from_assoc_item(db, def.into())) + Some(from_assoc_item(sb.db, def.into())) } else { - Some(from_module_def(db, def.into(), None)) + Some(from_module_def(sb.db, def.into(), None)) } }, ast::MacroCall(it) => { let src = name.with_value(it); - let def = hir::MacroDef::from_source(db, src.clone())?; + let def = hir::MacroDef::from_source(sb.db, src.clone())?; - let module_src = ModuleSource::from_child_node(db, src.as_ref().map(|it| it.syntax())); - let module = Module::from_definition(db, src.with_value(module_src))?; + let module_src = ModuleSource::from_child_node(sb.db, src.as_ref().map(|it| it.syntax())); + let module = Module::from_definition(sb.db, src.with_value(module_src))?; Some(NameDefinition { visibility: None, @@ -112,10 +119,10 @@ pub(crate) fn classify_name(db: &RootDatabase, name: InFile<&ast::Name>) -> Opti }, ast::TypeParam(it) => { let src = name.with_value(it); - let def = hir::TypeParam::from_source(db, src)?; + let def = hir::TypeParam::from_source(sb.db, src)?; Some(NameDefinition { visibility: None, - container: def.module(db), + container: def.module(sb.db), kind: NameKind::TypeParam(def), }) }, @@ -127,23 +134,31 @@ pub(crate) fn classify_name(db: &RootDatabase, name: InFile<&ast::Name>) -> Opti pub(crate) fn classify_name_ref( db: &RootDatabase, name_ref: InFile<&ast::NameRef>, +) -> Option { + let mut sb = SourceBinder::new(db); + classify_name_ref2(&mut sb, name_ref) +} + +pub(crate) fn classify_name_ref2( + sb: &mut SourceBinder, + name_ref: InFile<&ast::NameRef>, ) -> Option { let _p = profile("classify_name_ref"); let parent = name_ref.value.syntax().parent()?; - let analyzer = SourceAnalyzer::new(db, name_ref.map(|it| it.syntax()), None); + let analyzer = sb.analyze(name_ref.map(|it| it.syntax()), None); if let Some(method_call) = ast::MethodCallExpr::cast(parent.clone()) { tested_by!(goto_def_for_methods); if let Some(func) = analyzer.resolve_method_call(&method_call) { - return Some(from_assoc_item(db, func.into())); + return Some(from_assoc_item(sb.db, func.into())); } } if let Some(field_expr) = ast::FieldExpr::cast(parent.clone()) { tested_by!(goto_def_for_fields); if let Some(field) = analyzer.resolve_field(&field_expr) { - return Some(from_struct_field(db, field)); + return Some(from_struct_field(sb.db, field)); } } @@ -151,30 +166,32 @@ pub(crate) fn classify_name_ref( tested_by!(goto_def_for_record_fields); tested_by!(goto_def_for_field_init_shorthand); if let Some(field_def) = analyzer.resolve_record_field(&record_field) { - return Some(from_struct_field(db, field_def)); + return Some(from_struct_field(sb.db, field_def)); } } - let ast = ModuleSource::from_child_node(db, name_ref.with_value(&parent)); + let ast = ModuleSource::from_child_node(sb.db, name_ref.with_value(&parent)); // FIXME: find correct container and visibility for each case - let container = Module::from_definition(db, name_ref.with_value(ast))?; + let container = Module::from_definition(sb.db, name_ref.with_value(ast))?; let visibility = None; if let Some(macro_call) = parent.ancestors().find_map(ast::MacroCall::cast) { tested_by!(goto_def_for_macros); - if let Some(macro_def) = analyzer.resolve_macro_call(db, name_ref.with_value(¯o_call)) { + if let Some(macro_def) = + analyzer.resolve_macro_call(sb.db, name_ref.with_value(¯o_call)) + { let kind = NameKind::Macro(macro_def); return Some(NameDefinition { kind, container, visibility }); } } let path = name_ref.value.syntax().ancestors().find_map(ast::Path::cast)?; - let resolved = analyzer.resolve_path(db, &path)?; + let resolved = analyzer.resolve_path(sb.db, &path)?; match resolved { - PathResolution::Def(def) => Some(from_module_def(db, def, Some(container))), - PathResolution::AssocItem(item) => Some(from_assoc_item(db, item)), + PathResolution::Def(def) => Some(from_module_def(sb.db, def, Some(container))), + PathResolution::AssocItem(item) => Some(from_assoc_item(sb.db, item)), PathResolution::Local(local) => { - let container = local.module(db); + let container = local.module(sb.db); let kind = NameKind::Local(local); Some(NameDefinition { kind, container, visibility: None }) } @@ -188,7 +205,7 @@ pub(crate) fn classify_name_ref( } PathResolution::SelfType(impl_block) => { let kind = NameKind::SelfType(impl_block); - let container = impl_block.module(db); + let container = impl_block.module(sb.db); Some(NameDefinition { kind, container, visibility }) } } diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index f06a8933ea..fd422d07cc 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -2,7 +2,7 @@ use rustc_hash::{FxHashMap, FxHashSet}; -use hir::{InFile, Name}; +use hir::{InFile, Name, SourceBinder}; use ra_db::SourceDatabase; use ra_prof::profile; use ra_syntax::{ast, AstNode, Direction, SyntaxElement, SyntaxKind, SyntaxKind::*, TextRange, T}; @@ -10,7 +10,7 @@ use ra_syntax::{ast, AstNode, Direction, SyntaxElement, SyntaxKind, SyntaxKind:: use crate::{ db::RootDatabase, references::{ - classify_name, classify_name_ref, + classify_name2, classify_name_ref2, NameKind::{self, *}, }, FileId, @@ -84,6 +84,8 @@ pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Vec = FxHashSet::default(); @@ -108,8 +110,8 @@ pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Vec continue, NAME_REF => { let name_ref = node.as_node().cloned().and_then(ast::NameRef::cast).unwrap(); - let name_kind = - classify_name_ref(db, InFile::new(file_id.into(), &name_ref)).map(|d| d.kind); + let name_kind = classify_name_ref2(&mut sb, InFile::new(file_id.into(), &name_ref)) + .map(|d| d.kind); match name_kind { Some(name_kind) => { if let Local(local) = &name_kind { @@ -129,7 +131,7 @@ pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Vec { let name = node.as_node().cloned().and_then(ast::Name::cast).unwrap(); let name_kind = - classify_name(db, InFile::new(file_id.into(), &name)).map(|d| d.kind); + classify_name2(&mut sb, InFile::new(file_id.into(), &name)).map(|d| d.kind); if let Some(Local(local)) = &name_kind { if let Some(name) = local.name(db) { From 35bfeaf4af4bcccf355f1e0e1a38547a2982a251 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 14 Jan 2020 12:16:48 +0100 Subject: [PATCH 05/10] Add a test --- crates/ra_ide/src/syntax_highlighting.rs | 23 +- .../test_data/accidentally_quadratic | 3980 +++++++++++++++++ 2 files changed, 4000 insertions(+), 3 deletions(-) create mode 100644 crates/ra_syntax/test_data/accidentally_quadratic diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index fd422d07cc..0cacc58d45 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -310,9 +310,12 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd #[cfg(test)] mod tests { - use crate::mock_analysis::single_file; + use std::fs; + use test_utils::{assert_eq_text, project_dir, read_text}; + use crate::mock_analysis::{single_file, MockAnalysis}; + #[test] fn te3st_highlighting() { let (analysis, file_id) = single_file( @@ -359,7 +362,7 @@ impl E { let dst_file = project_dir().join("crates/ra_ide/src/snapshots/highlighting.html"); let actual_html = &analysis.highlight_as_html(file_id, false).unwrap(); let expected_html = &read_text(&dst_file); - std::fs::write(dst_file, &actual_html).unwrap(); + fs::write(dst_file, &actual_html).unwrap(); assert_eq_text!(expected_html, actual_html); } @@ -385,7 +388,21 @@ fn bar() { let dst_file = project_dir().join("crates/ra_ide/src/snapshots/rainbow_highlighting.html"); let actual_html = &analysis.highlight_as_html(file_id, true).unwrap(); let expected_html = &read_text(&dst_file); - std::fs::write(dst_file, &actual_html).unwrap(); + fs::write(dst_file, &actual_html).unwrap(); assert_eq_text!(expected_html, actual_html); } + + #[test] + fn accidentally_quadratic() { + let file = project_dir().join("crates/ra_syntax/test_data/accidentally_quadratic"); + let src = fs::read_to_string(file).unwrap(); + + let mut mock = MockAnalysis::new(); + let file_id = mock.add_file("/main.rs", &src); + let host = mock.analysis_host(); + + // let t = std::time::Instant::now(); + let _ = host.analysis().highlight(file_id).unwrap(); + // eprintln!("elapsed: {:?}", t.elapsed()); + } } diff --git a/crates/ra_syntax/test_data/accidentally_quadratic b/crates/ra_syntax/test_data/accidentally_quadratic new file mode 100644 index 0000000000..428f83a627 --- /dev/null +++ b/crates/ra_syntax/test_data/accidentally_quadratic @@ -0,0 +1,3980 @@ +#[doc = r" Register block"] +#[repr(C)] +pub struct RegisterBlock { + #[doc = "0x00 - Control Register"] + pub cr: CR, + #[doc = "0x04 - Error Status Register"] + pub es: ES, + _reserved0: [u8; 4usize], + #[doc = "0x0c - Enable Request Register"] + pub erq: ERQ, + _reserved1: [u8; 4usize], + #[doc = "0x14 - Enable Error Interrupt Register"] + pub eei: EEI, + #[doc = "0x18 - Clear Enable Error Interrupt Register"] + pub ceei: CEEI, + #[doc = "0x19 - Set Enable Error Interrupt Register"] + pub seei: SEEI, + #[doc = "0x1a - Clear Enable Request Register"] + pub cerq: CERQ, + #[doc = "0x1b - Set Enable Request Register"] + pub serq: SERQ, + #[doc = "0x1c - Clear DONE Status Bit Register"] + pub cdne: CDNE, + #[doc = "0x1d - Set START Bit Register"] + pub ssrt: SSRT, + #[doc = "0x1e - Clear Error Register"] + pub cerr: CERR, + #[doc = "0x1f - Clear Interrupt Request Register"] + pub cint: CINT, + _reserved2: [u8; 4usize], + #[doc = "0x24 - Interrupt Request Register"] + pub int: INT, + _reserved3: [u8; 4usize], + #[doc = "0x2c - Error Register"] + pub err: ERR, + _reserved4: [u8; 4usize], + #[doc = "0x34 - Hardware Request Status Register"] + pub hrs: HRS, + _reserved5: [u8; 12usize], + #[doc = "0x44 - Enable Asynchronous Request in Stop Register"] + pub ears: EARS, + _reserved6: [u8; 184usize], + #[doc = "0x100 - Channel n Priority Register"] + pub dchpri3: DCHPRI3, + #[doc = "0x101 - Channel n Priority Register"] + pub dchpri2: DCHPRI2, + #[doc = "0x102 - Channel n Priority Register"] + pub dchpri1: DCHPRI1, + #[doc = "0x103 - Channel n Priority Register"] + pub dchpri0: DCHPRI0, + #[doc = "0x104 - Channel n Priority Register"] + pub dchpri7: DCHPRI7, + #[doc = "0x105 - Channel n Priority Register"] + pub dchpri6: DCHPRI6, + #[doc = "0x106 - Channel n Priority Register"] + pub dchpri5: DCHPRI5, + #[doc = "0x107 - Channel n Priority Register"] + pub dchpri4: DCHPRI4, + #[doc = "0x108 - Channel n Priority Register"] + pub dchpri11: DCHPRI11, + #[doc = "0x109 - Channel n Priority Register"] + pub dchpri10: DCHPRI10, + #[doc = "0x10a - Channel n Priority Register"] + pub dchpri9: DCHPRI9, + #[doc = "0x10b - Channel n Priority Register"] + pub dchpri8: DCHPRI8, + #[doc = "0x10c - Channel n Priority Register"] + pub dchpri15: DCHPRI15, + #[doc = "0x10d - Channel n Priority Register"] + pub dchpri14: DCHPRI14, + #[doc = "0x10e - Channel n Priority Register"] + pub dchpri13: DCHPRI13, + #[doc = "0x10f - Channel n Priority Register"] + pub dchpri12: DCHPRI12, + #[doc = "0x110 - Channel n Priority Register"] + pub dchpri19: DCHPRI19, + #[doc = "0x111 - Channel n Priority Register"] + pub dchpri18: DCHPRI18, + #[doc = "0x112 - Channel n Priority Register"] + pub dchpri17: DCHPRI17, + #[doc = "0x113 - Channel n Priority Register"] + pub dchpri16: DCHPRI16, + #[doc = "0x114 - Channel n Priority Register"] + pub dchpri23: DCHPRI23, + #[doc = "0x115 - Channel n Priority Register"] + pub dchpri22: DCHPRI22, + #[doc = "0x116 - Channel n Priority Register"] + pub dchpri21: DCHPRI21, + #[doc = "0x117 - Channel n Priority Register"] + pub dchpri20: DCHPRI20, + #[doc = "0x118 - Channel n Priority Register"] + pub dchpri27: DCHPRI27, + #[doc = "0x119 - Channel n Priority Register"] + pub dchpri26: DCHPRI26, + #[doc = "0x11a - Channel n Priority Register"] + pub dchpri25: DCHPRI25, + #[doc = "0x11b - Channel n Priority Register"] + pub dchpri24: DCHPRI24, + #[doc = "0x11c - Channel n Priority Register"] + pub dchpri31: DCHPRI31, + #[doc = "0x11d - Channel n Priority Register"] + pub dchpri30: DCHPRI30, + #[doc = "0x11e - Channel n Priority Register"] + pub dchpri29: DCHPRI29, + #[doc = "0x11f - Channel n Priority Register"] + pub dchpri28: DCHPRI28, + _reserved7: [u8; 3808usize], + #[doc = "0x1000 - TCD Source Address"] + pub tcd0_saddr: TCD0_SADDR, + #[doc = "0x1004 - TCD Signed Source Address Offset"] + pub tcd0_soff: TCD0_SOFF, + #[doc = "0x1006 - TCD Transfer Attributes"] + pub tcd0_attr: TCD0_ATTR, + #[doc = "0x1008 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd0_nbytes_mlno: TCD0_NBYTES_MLNO, + #[doc = "0x100c - TCD Last Source Address Adjustment"] + pub tcd0_slast: TCD0_SLAST, + #[doc = "0x1010 - TCD Destination Address"] + pub tcd0_daddr: TCD0_DADDR, + #[doc = "0x1014 - TCD Signed Destination Address Offset"] + pub tcd0_doff: TCD0_DOFF, + #[doc = "0x1016 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd0_citer_elinkno: TCD0_CITER_ELINKNO, + #[doc = "0x1018 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd0_dlastsga: TCD0_DLASTSGA, + #[doc = "0x101c - TCD Control and Status"] + pub tcd0_csr: TCD0_CSR, + #[doc = "0x101e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd0_biter_elinkno: TCD0_BITER_ELINKNO, + #[doc = "0x1020 - TCD Source Address"] + pub tcd1_saddr: TCD1_SADDR, + #[doc = "0x1024 - TCD Signed Source Address Offset"] + pub tcd1_soff: TCD1_SOFF, + #[doc = "0x1026 - TCD Transfer Attributes"] + pub tcd1_attr: TCD1_ATTR, + #[doc = "0x1028 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd1_nbytes_mlno: TCD1_NBYTES_MLNO, + #[doc = "0x102c - TCD Last Source Address Adjustment"] + pub tcd1_slast: TCD1_SLAST, + #[doc = "0x1030 - TCD Destination Address"] + pub tcd1_daddr: TCD1_DADDR, + #[doc = "0x1034 - TCD Signed Destination Address Offset"] + pub tcd1_doff: TCD1_DOFF, + #[doc = "0x1036 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd1_citer_elinkno: TCD1_CITER_ELINKNO, + #[doc = "0x1038 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd1_dlastsga: TCD1_DLASTSGA, + #[doc = "0x103c - TCD Control and Status"] + pub tcd1_csr: TCD1_CSR, + #[doc = "0x103e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd1_biter_elinkno: TCD1_BITER_ELINKNO, + #[doc = "0x1040 - TCD Source Address"] + pub tcd2_saddr: TCD2_SADDR, + #[doc = "0x1044 - TCD Signed Source Address Offset"] + pub tcd2_soff: TCD2_SOFF, + #[doc = "0x1046 - TCD Transfer Attributes"] + pub tcd2_attr: TCD2_ATTR, + #[doc = "0x1048 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd2_nbytes_mlno: TCD2_NBYTES_MLNO, + #[doc = "0x104c - TCD Last Source Address Adjustment"] + pub tcd2_slast: TCD2_SLAST, + #[doc = "0x1050 - TCD Destination Address"] + pub tcd2_daddr: TCD2_DADDR, + #[doc = "0x1054 - TCD Signed Destination Address Offset"] + pub tcd2_doff: TCD2_DOFF, + #[doc = "0x1056 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd2_citer_elinkno: TCD2_CITER_ELINKNO, + #[doc = "0x1058 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd2_dlastsga: TCD2_DLASTSGA, + #[doc = "0x105c - TCD Control and Status"] + pub tcd2_csr: TCD2_CSR, + #[doc = "0x105e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd2_biter_elinkno: TCD2_BITER_ELINKNO, + #[doc = "0x1060 - TCD Source Address"] + pub tcd3_saddr: TCD3_SADDR, + #[doc = "0x1064 - TCD Signed Source Address Offset"] + pub tcd3_soff: TCD3_SOFF, + #[doc = "0x1066 - TCD Transfer Attributes"] + pub tcd3_attr: TCD3_ATTR, + #[doc = "0x1068 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd3_nbytes_mlno: TCD3_NBYTES_MLNO, + #[doc = "0x106c - TCD Last Source Address Adjustment"] + pub tcd3_slast: TCD3_SLAST, + #[doc = "0x1070 - TCD Destination Address"] + pub tcd3_daddr: TCD3_DADDR, + #[doc = "0x1074 - TCD Signed Destination Address Offset"] + pub tcd3_doff: TCD3_DOFF, + #[doc = "0x1076 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd3_citer_elinkno: TCD3_CITER_ELINKNO, + #[doc = "0x1078 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd3_dlastsga: TCD3_DLASTSGA, + #[doc = "0x107c - TCD Control and Status"] + pub tcd3_csr: TCD3_CSR, + #[doc = "0x107e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd3_biter_elinkno: TCD3_BITER_ELINKNO, + #[doc = "0x1080 - TCD Source Address"] + pub tcd4_saddr: TCD4_SADDR, + #[doc = "0x1084 - TCD Signed Source Address Offset"] + pub tcd4_soff: TCD4_SOFF, + #[doc = "0x1086 - TCD Transfer Attributes"] + pub tcd4_attr: TCD4_ATTR, + #[doc = "0x1088 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd4_nbytes_mlno: TCD4_NBYTES_MLNO, + #[doc = "0x108c - TCD Last Source Address Adjustment"] + pub tcd4_slast: TCD4_SLAST, + #[doc = "0x1090 - TCD Destination Address"] + pub tcd4_daddr: TCD4_DADDR, + #[doc = "0x1094 - TCD Signed Destination Address Offset"] + pub tcd4_doff: TCD4_DOFF, + #[doc = "0x1096 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd4_citer_elinkno: TCD4_CITER_ELINKNO, + #[doc = "0x1098 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd4_dlastsga: TCD4_DLASTSGA, + #[doc = "0x109c - TCD Control and Status"] + pub tcd4_csr: TCD4_CSR, + #[doc = "0x109e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd4_biter_elinkno: TCD4_BITER_ELINKNO, + #[doc = "0x10a0 - TCD Source Address"] + pub tcd5_saddr: TCD5_SADDR, + #[doc = "0x10a4 - TCD Signed Source Address Offset"] + pub tcd5_soff: TCD5_SOFF, + #[doc = "0x10a6 - TCD Transfer Attributes"] + pub tcd5_attr: TCD5_ATTR, + #[doc = "0x10a8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd5_nbytes_mlno: TCD5_NBYTES_MLNO, + #[doc = "0x10ac - TCD Last Source Address Adjustment"] + pub tcd5_slast: TCD5_SLAST, + #[doc = "0x10b0 - TCD Destination Address"] + pub tcd5_daddr: TCD5_DADDR, + #[doc = "0x10b4 - TCD Signed Destination Address Offset"] + pub tcd5_doff: TCD5_DOFF, + #[doc = "0x10b6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd5_citer_elinkno: TCD5_CITER_ELINKNO, + #[doc = "0x10b8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd5_dlastsga: TCD5_DLASTSGA, + #[doc = "0x10bc - TCD Control and Status"] + pub tcd5_csr: TCD5_CSR, + #[doc = "0x10be - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd5_biter_elinkno: TCD5_BITER_ELINKNO, + #[doc = "0x10c0 - TCD Source Address"] + pub tcd6_saddr: TCD6_SADDR, + #[doc = "0x10c4 - TCD Signed Source Address Offset"] + pub tcd6_soff: TCD6_SOFF, + #[doc = "0x10c6 - TCD Transfer Attributes"] + pub tcd6_attr: TCD6_ATTR, + #[doc = "0x10c8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd6_nbytes_mlno: TCD6_NBYTES_MLNO, + #[doc = "0x10cc - TCD Last Source Address Adjustment"] + pub tcd6_slast: TCD6_SLAST, + #[doc = "0x10d0 - TCD Destination Address"] + pub tcd6_daddr: TCD6_DADDR, + #[doc = "0x10d4 - TCD Signed Destination Address Offset"] + pub tcd6_doff: TCD6_DOFF, + #[doc = "0x10d6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd6_citer_elinkno: TCD6_CITER_ELINKNO, + #[doc = "0x10d8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd6_dlastsga: TCD6_DLASTSGA, + #[doc = "0x10dc - TCD Control and Status"] + pub tcd6_csr: TCD6_CSR, + #[doc = "0x10de - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd6_biter_elinkno: TCD6_BITER_ELINKNO, + #[doc = "0x10e0 - TCD Source Address"] + pub tcd7_saddr: TCD7_SADDR, + #[doc = "0x10e4 - TCD Signed Source Address Offset"] + pub tcd7_soff: TCD7_SOFF, + #[doc = "0x10e6 - TCD Transfer Attributes"] + pub tcd7_attr: TCD7_ATTR, + #[doc = "0x10e8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd7_nbytes_mlno: TCD7_NBYTES_MLNO, + #[doc = "0x10ec - TCD Last Source Address Adjustment"] + pub tcd7_slast: TCD7_SLAST, + #[doc = "0x10f0 - TCD Destination Address"] + pub tcd7_daddr: TCD7_DADDR, + #[doc = "0x10f4 - TCD Signed Destination Address Offset"] + pub tcd7_doff: TCD7_DOFF, + #[doc = "0x10f6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd7_citer_elinkno: TCD7_CITER_ELINKNO, + #[doc = "0x10f8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd7_dlastsga: TCD7_DLASTSGA, + #[doc = "0x10fc - TCD Control and Status"] + pub tcd7_csr: TCD7_CSR, + #[doc = "0x10fe - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd7_biter_elinkno: TCD7_BITER_ELINKNO, + #[doc = "0x1100 - TCD Source Address"] + pub tcd8_saddr: TCD8_SADDR, + #[doc = "0x1104 - TCD Signed Source Address Offset"] + pub tcd8_soff: TCD8_SOFF, + #[doc = "0x1106 - TCD Transfer Attributes"] + pub tcd8_attr: TCD8_ATTR, + #[doc = "0x1108 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd8_nbytes_mlno: TCD8_NBYTES_MLNO, + #[doc = "0x110c - TCD Last Source Address Adjustment"] + pub tcd8_slast: TCD8_SLAST, + #[doc = "0x1110 - TCD Destination Address"] + pub tcd8_daddr: TCD8_DADDR, + #[doc = "0x1114 - TCD Signed Destination Address Offset"] + pub tcd8_doff: TCD8_DOFF, + #[doc = "0x1116 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd8_citer_elinkno: TCD8_CITER_ELINKNO, + #[doc = "0x1118 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd8_dlastsga: TCD8_DLASTSGA, + #[doc = "0x111c - TCD Control and Status"] + pub tcd8_csr: TCD8_CSR, + #[doc = "0x111e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd8_biter_elinkno: TCD8_BITER_ELINKNO, + #[doc = "0x1120 - TCD Source Address"] + pub tcd9_saddr: TCD9_SADDR, + #[doc = "0x1124 - TCD Signed Source Address Offset"] + pub tcd9_soff: TCD9_SOFF, + #[doc = "0x1126 - TCD Transfer Attributes"] + pub tcd9_attr: TCD9_ATTR, + #[doc = "0x1128 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd9_nbytes_mlno: TCD9_NBYTES_MLNO, + #[doc = "0x112c - TCD Last Source Address Adjustment"] + pub tcd9_slast: TCD9_SLAST, + #[doc = "0x1130 - TCD Destination Address"] + pub tcd9_daddr: TCD9_DADDR, + #[doc = "0x1134 - TCD Signed Destination Address Offset"] + pub tcd9_doff: TCD9_DOFF, + #[doc = "0x1136 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd9_citer_elinkno: TCD9_CITER_ELINKNO, + #[doc = "0x1138 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd9_dlastsga: TCD9_DLASTSGA, + #[doc = "0x113c - TCD Control and Status"] + pub tcd9_csr: TCD9_CSR, + #[doc = "0x113e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd9_biter_elinkno: TCD9_BITER_ELINKNO, + #[doc = "0x1140 - TCD Source Address"] + pub tcd10_saddr: TCD10_SADDR, + #[doc = "0x1144 - TCD Signed Source Address Offset"] + pub tcd10_soff: TCD10_SOFF, + #[doc = "0x1146 - TCD Transfer Attributes"] + pub tcd10_attr: TCD10_ATTR, + #[doc = "0x1148 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd10_nbytes_mlno: TCD10_NBYTES_MLNO, + #[doc = "0x114c - TCD Last Source Address Adjustment"] + pub tcd10_slast: TCD10_SLAST, + #[doc = "0x1150 - TCD Destination Address"] + pub tcd10_daddr: TCD10_DADDR, + #[doc = "0x1154 - TCD Signed Destination Address Offset"] + pub tcd10_doff: TCD10_DOFF, + #[doc = "0x1156 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd10_citer_elinkno: TCD10_CITER_ELINKNO, + #[doc = "0x1158 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd10_dlastsga: TCD10_DLASTSGA, + #[doc = "0x115c - TCD Control and Status"] + pub tcd10_csr: TCD10_CSR, + #[doc = "0x115e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd10_biter_elinkno: TCD10_BITER_ELINKNO, + #[doc = "0x1160 - TCD Source Address"] + pub tcd11_saddr: TCD11_SADDR, + #[doc = "0x1164 - TCD Signed Source Address Offset"] + pub tcd11_soff: TCD11_SOFF, + #[doc = "0x1166 - TCD Transfer Attributes"] + pub tcd11_attr: TCD11_ATTR, + #[doc = "0x1168 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd11_nbytes_mlno: TCD11_NBYTES_MLNO, + #[doc = "0x116c - TCD Last Source Address Adjustment"] + pub tcd11_slast: TCD11_SLAST, + #[doc = "0x1170 - TCD Destination Address"] + pub tcd11_daddr: TCD11_DADDR, + #[doc = "0x1174 - TCD Signed Destination Address Offset"] + pub tcd11_doff: TCD11_DOFF, + #[doc = "0x1176 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd11_citer_elinkno: TCD11_CITER_ELINKNO, + #[doc = "0x1178 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd11_dlastsga: TCD11_DLASTSGA, + #[doc = "0x117c - TCD Control and Status"] + pub tcd11_csr: TCD11_CSR, + #[doc = "0x117e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd11_biter_elinkno: TCD11_BITER_ELINKNO, + #[doc = "0x1180 - TCD Source Address"] + pub tcd12_saddr: TCD12_SADDR, + #[doc = "0x1184 - TCD Signed Source Address Offset"] + pub tcd12_soff: TCD12_SOFF, + #[doc = "0x1186 - TCD Transfer Attributes"] + pub tcd12_attr: TCD12_ATTR, + #[doc = "0x1188 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd12_nbytes_mlno: TCD12_NBYTES_MLNO, + #[doc = "0x118c - TCD Last Source Address Adjustment"] + pub tcd12_slast: TCD12_SLAST, + #[doc = "0x1190 - TCD Destination Address"] + pub tcd12_daddr: TCD12_DADDR, + #[doc = "0x1194 - TCD Signed Destination Address Offset"] + pub tcd12_doff: TCD12_DOFF, + #[doc = "0x1196 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd12_citer_elinkno: TCD12_CITER_ELINKNO, + #[doc = "0x1198 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd12_dlastsga: TCD12_DLASTSGA, + #[doc = "0x119c - TCD Control and Status"] + pub tcd12_csr: TCD12_CSR, + #[doc = "0x119e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd12_biter_elinkno: TCD12_BITER_ELINKNO, + #[doc = "0x11a0 - TCD Source Address"] + pub tcd13_saddr: TCD13_SADDR, + #[doc = "0x11a4 - TCD Signed Source Address Offset"] + pub tcd13_soff: TCD13_SOFF, + #[doc = "0x11a6 - TCD Transfer Attributes"] + pub tcd13_attr: TCD13_ATTR, + #[doc = "0x11a8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd13_nbytes_mlno: TCD13_NBYTES_MLNO, + #[doc = "0x11ac - TCD Last Source Address Adjustment"] + pub tcd13_slast: TCD13_SLAST, + #[doc = "0x11b0 - TCD Destination Address"] + pub tcd13_daddr: TCD13_DADDR, + #[doc = "0x11b4 - TCD Signed Destination Address Offset"] + pub tcd13_doff: TCD13_DOFF, + #[doc = "0x11b6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd13_citer_elinkno: TCD13_CITER_ELINKNO, + #[doc = "0x11b8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd13_dlastsga: TCD13_DLASTSGA, + #[doc = "0x11bc - TCD Control and Status"] + pub tcd13_csr: TCD13_CSR, + #[doc = "0x11be - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd13_biter_elinkno: TCD13_BITER_ELINKNO, + #[doc = "0x11c0 - TCD Source Address"] + pub tcd14_saddr: TCD14_SADDR, + #[doc = "0x11c4 - TCD Signed Source Address Offset"] + pub tcd14_soff: TCD14_SOFF, + #[doc = "0x11c6 - TCD Transfer Attributes"] + pub tcd14_attr: TCD14_ATTR, + #[doc = "0x11c8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd14_nbytes_mlno: TCD14_NBYTES_MLNO, + #[doc = "0x11cc - TCD Last Source Address Adjustment"] + pub tcd14_slast: TCD14_SLAST, + #[doc = "0x11d0 - TCD Destination Address"] + pub tcd14_daddr: TCD14_DADDR, + #[doc = "0x11d4 - TCD Signed Destination Address Offset"] + pub tcd14_doff: TCD14_DOFF, + #[doc = "0x11d6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd14_citer_elinkno: TCD14_CITER_ELINKNO, + #[doc = "0x11d8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd14_dlastsga: TCD14_DLASTSGA, + #[doc = "0x11dc - TCD Control and Status"] + pub tcd14_csr: TCD14_CSR, + #[doc = "0x11de - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd14_biter_elinkno: TCD14_BITER_ELINKNO, + #[doc = "0x11e0 - TCD Source Address"] + pub tcd15_saddr: TCD15_SADDR, + #[doc = "0x11e4 - TCD Signed Source Address Offset"] + pub tcd15_soff: TCD15_SOFF, + #[doc = "0x11e6 - TCD Transfer Attributes"] + pub tcd15_attr: TCD15_ATTR, + #[doc = "0x11e8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd15_nbytes_mlno: TCD15_NBYTES_MLNO, + #[doc = "0x11ec - TCD Last Source Address Adjustment"] + pub tcd15_slast: TCD15_SLAST, + #[doc = "0x11f0 - TCD Destination Address"] + pub tcd15_daddr: TCD15_DADDR, + #[doc = "0x11f4 - TCD Signed Destination Address Offset"] + pub tcd15_doff: TCD15_DOFF, + #[doc = "0x11f6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd15_citer_elinkno: TCD15_CITER_ELINKNO, + #[doc = "0x11f8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd15_dlastsga: TCD15_DLASTSGA, + #[doc = "0x11fc - TCD Control and Status"] + pub tcd15_csr: TCD15_CSR, + #[doc = "0x11fe - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd15_biter_elinkno: TCD15_BITER_ELINKNO, + #[doc = "0x1200 - TCD Source Address"] + pub tcd16_saddr: TCD16_SADDR, + #[doc = "0x1204 - TCD Signed Source Address Offset"] + pub tcd16_soff: TCD16_SOFF, + #[doc = "0x1206 - TCD Transfer Attributes"] + pub tcd16_attr: TCD16_ATTR, + #[doc = "0x1208 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd16_nbytes_mlno: TCD16_NBYTES_MLNO, + #[doc = "0x120c - TCD Last Source Address Adjustment"] + pub tcd16_slast: TCD16_SLAST, + #[doc = "0x1210 - TCD Destination Address"] + pub tcd16_daddr: TCD16_DADDR, + #[doc = "0x1214 - TCD Signed Destination Address Offset"] + pub tcd16_doff: TCD16_DOFF, + #[doc = "0x1216 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd16_citer_elinkno: TCD16_CITER_ELINKNO, + #[doc = "0x1218 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd16_dlastsga: TCD16_DLASTSGA, + #[doc = "0x121c - TCD Control and Status"] + pub tcd16_csr: TCD16_CSR, + #[doc = "0x121e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd16_biter_elinkno: TCD16_BITER_ELINKNO, + #[doc = "0x1220 - TCD Source Address"] + pub tcd17_saddr: TCD17_SADDR, + #[doc = "0x1224 - TCD Signed Source Address Offset"] + pub tcd17_soff: TCD17_SOFF, + #[doc = "0x1226 - TCD Transfer Attributes"] + pub tcd17_attr: TCD17_ATTR, + #[doc = "0x1228 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd17_nbytes_mlno: TCD17_NBYTES_MLNO, + #[doc = "0x122c - TCD Last Source Address Adjustment"] + pub tcd17_slast: TCD17_SLAST, + #[doc = "0x1230 - TCD Destination Address"] + pub tcd17_daddr: TCD17_DADDR, + #[doc = "0x1234 - TCD Signed Destination Address Offset"] + pub tcd17_doff: TCD17_DOFF, + #[doc = "0x1236 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd17_citer_elinkno: TCD17_CITER_ELINKNO, + #[doc = "0x1238 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd17_dlastsga: TCD17_DLASTSGA, + #[doc = "0x123c - TCD Control and Status"] + pub tcd17_csr: TCD17_CSR, + #[doc = "0x123e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd17_biter_elinkno: TCD17_BITER_ELINKNO, + #[doc = "0x1240 - TCD Source Address"] + pub tcd18_saddr: TCD18_SADDR, + #[doc = "0x1244 - TCD Signed Source Address Offset"] + pub tcd18_soff: TCD18_SOFF, + #[doc = "0x1246 - TCD Transfer Attributes"] + pub tcd18_attr: TCD18_ATTR, + #[doc = "0x1248 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd18_nbytes_mlno: TCD18_NBYTES_MLNO, + #[doc = "0x124c - TCD Last Source Address Adjustment"] + pub tcd18_slast: TCD18_SLAST, + #[doc = "0x1250 - TCD Destination Address"] + pub tcd18_daddr: TCD18_DADDR, + #[doc = "0x1254 - TCD Signed Destination Address Offset"] + pub tcd18_doff: TCD18_DOFF, + #[doc = "0x1256 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd18_citer_elinkno: TCD18_CITER_ELINKNO, + #[doc = "0x1258 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd18_dlastsga: TCD18_DLASTSGA, + #[doc = "0x125c - TCD Control and Status"] + pub tcd18_csr: TCD18_CSR, + #[doc = "0x125e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd18_biter_elinkno: TCD18_BITER_ELINKNO, + #[doc = "0x1260 - TCD Source Address"] + pub tcd19_saddr: TCD19_SADDR, + #[doc = "0x1264 - TCD Signed Source Address Offset"] + pub tcd19_soff: TCD19_SOFF, + #[doc = "0x1266 - TCD Transfer Attributes"] + pub tcd19_attr: TCD19_ATTR, + #[doc = "0x1268 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd19_nbytes_mlno: TCD19_NBYTES_MLNO, + #[doc = "0x126c - TCD Last Source Address Adjustment"] + pub tcd19_slast: TCD19_SLAST, + #[doc = "0x1270 - TCD Destination Address"] + pub tcd19_daddr: TCD19_DADDR, + #[doc = "0x1274 - TCD Signed Destination Address Offset"] + pub tcd19_doff: TCD19_DOFF, + #[doc = "0x1276 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd19_citer_elinkno: TCD19_CITER_ELINKNO, + #[doc = "0x1278 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd19_dlastsga: TCD19_DLASTSGA, + #[doc = "0x127c - TCD Control and Status"] + pub tcd19_csr: TCD19_CSR, + #[doc = "0x127e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd19_biter_elinkno: TCD19_BITER_ELINKNO, + #[doc = "0x1280 - TCD Source Address"] + pub tcd20_saddr: TCD20_SADDR, + #[doc = "0x1284 - TCD Signed Source Address Offset"] + pub tcd20_soff: TCD20_SOFF, + #[doc = "0x1286 - TCD Transfer Attributes"] + pub tcd20_attr: TCD20_ATTR, + #[doc = "0x1288 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd20_nbytes_mlno: TCD20_NBYTES_MLNO, + #[doc = "0x128c - TCD Last Source Address Adjustment"] + pub tcd20_slast: TCD20_SLAST, + #[doc = "0x1290 - TCD Destination Address"] + pub tcd20_daddr: TCD20_DADDR, + #[doc = "0x1294 - TCD Signed Destination Address Offset"] + pub tcd20_doff: TCD20_DOFF, + #[doc = "0x1296 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd20_citer_elinkno: TCD20_CITER_ELINKNO, + #[doc = "0x1298 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd20_dlastsga: TCD20_DLASTSGA, + #[doc = "0x129c - TCD Control and Status"] + pub tcd20_csr: TCD20_CSR, + #[doc = "0x129e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd20_biter_elinkno: TCD20_BITER_ELINKNO, + #[doc = "0x12a0 - TCD Source Address"] + pub tcd21_saddr: TCD21_SADDR, + #[doc = "0x12a4 - TCD Signed Source Address Offset"] + pub tcd21_soff: TCD21_SOFF, + #[doc = "0x12a6 - TCD Transfer Attributes"] + pub tcd21_attr: TCD21_ATTR, + #[doc = "0x12a8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd21_nbytes_mlno: TCD21_NBYTES_MLNO, + #[doc = "0x12ac - TCD Last Source Address Adjustment"] + pub tcd21_slast: TCD21_SLAST, + #[doc = "0x12b0 - TCD Destination Address"] + pub tcd21_daddr: TCD21_DADDR, + #[doc = "0x12b4 - TCD Signed Destination Address Offset"] + pub tcd21_doff: TCD21_DOFF, + #[doc = "0x12b6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd21_citer_elinkno: TCD21_CITER_ELINKNO, + #[doc = "0x12b8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd21_dlastsga: TCD21_DLASTSGA, + #[doc = "0x12bc - TCD Control and Status"] + pub tcd21_csr: TCD21_CSR, + #[doc = "0x12be - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd21_biter_elinkno: TCD21_BITER_ELINKNO, + #[doc = "0x12c0 - TCD Source Address"] + pub tcd22_saddr: TCD22_SADDR, + #[doc = "0x12c4 - TCD Signed Source Address Offset"] + pub tcd22_soff: TCD22_SOFF, + #[doc = "0x12c6 - TCD Transfer Attributes"] + pub tcd22_attr: TCD22_ATTR, + #[doc = "0x12c8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd22_nbytes_mlno: TCD22_NBYTES_MLNO, + #[doc = "0x12cc - TCD Last Source Address Adjustment"] + pub tcd22_slast: TCD22_SLAST, + #[doc = "0x12d0 - TCD Destination Address"] + pub tcd22_daddr: TCD22_DADDR, + #[doc = "0x12d4 - TCD Signed Destination Address Offset"] + pub tcd22_doff: TCD22_DOFF, + #[doc = "0x12d6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd22_citer_elinkno: TCD22_CITER_ELINKNO, + #[doc = "0x12d8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd22_dlastsga: TCD22_DLASTSGA, + #[doc = "0x12dc - TCD Control and Status"] + pub tcd22_csr: TCD22_CSR, + #[doc = "0x12de - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd22_biter_elinkno: TCD22_BITER_ELINKNO, + #[doc = "0x12e0 - TCD Source Address"] + pub tcd23_saddr: TCD23_SADDR, + #[doc = "0x12e4 - TCD Signed Source Address Offset"] + pub tcd23_soff: TCD23_SOFF, + #[doc = "0x12e6 - TCD Transfer Attributes"] + pub tcd23_attr: TCD23_ATTR, + #[doc = "0x12e8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd23_nbytes_mlno: TCD23_NBYTES_MLNO, + #[doc = "0x12ec - TCD Last Source Address Adjustment"] + pub tcd23_slast: TCD23_SLAST, + #[doc = "0x12f0 - TCD Destination Address"] + pub tcd23_daddr: TCD23_DADDR, + #[doc = "0x12f4 - TCD Signed Destination Address Offset"] + pub tcd23_doff: TCD23_DOFF, + #[doc = "0x12f6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd23_citer_elinkno: TCD23_CITER_ELINKNO, + #[doc = "0x12f8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd23_dlastsga: TCD23_DLASTSGA, + #[doc = "0x12fc - TCD Control and Status"] + pub tcd23_csr: TCD23_CSR, + #[doc = "0x12fe - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd23_biter_elinkno: TCD23_BITER_ELINKNO, + #[doc = "0x1300 - TCD Source Address"] + pub tcd24_saddr: TCD24_SADDR, + #[doc = "0x1304 - TCD Signed Source Address Offset"] + pub tcd24_soff: TCD24_SOFF, + #[doc = "0x1306 - TCD Transfer Attributes"] + pub tcd24_attr: TCD24_ATTR, + #[doc = "0x1308 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd24_nbytes_mlno: TCD24_NBYTES_MLNO, + #[doc = "0x130c - TCD Last Source Address Adjustment"] + pub tcd24_slast: TCD24_SLAST, + #[doc = "0x1310 - TCD Destination Address"] + pub tcd24_daddr: TCD24_DADDR, + #[doc = "0x1314 - TCD Signed Destination Address Offset"] + pub tcd24_doff: TCD24_DOFF, + #[doc = "0x1316 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd24_citer_elinkno: TCD24_CITER_ELINKNO, + #[doc = "0x1318 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd24_dlastsga: TCD24_DLASTSGA, + #[doc = "0x131c - TCD Control and Status"] + pub tcd24_csr: TCD24_CSR, + #[doc = "0x131e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd24_biter_elinkno: TCD24_BITER_ELINKNO, + #[doc = "0x1320 - TCD Source Address"] + pub tcd25_saddr: TCD25_SADDR, + #[doc = "0x1324 - TCD Signed Source Address Offset"] + pub tcd25_soff: TCD25_SOFF, + #[doc = "0x1326 - TCD Transfer Attributes"] + pub tcd25_attr: TCD25_ATTR, + #[doc = "0x1328 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd25_nbytes_mlno: TCD25_NBYTES_MLNO, + #[doc = "0x132c - TCD Last Source Address Adjustment"] + pub tcd25_slast: TCD25_SLAST, + #[doc = "0x1330 - TCD Destination Address"] + pub tcd25_daddr: TCD25_DADDR, + #[doc = "0x1334 - TCD Signed Destination Address Offset"] + pub tcd25_doff: TCD25_DOFF, + #[doc = "0x1336 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd25_citer_elinkno: TCD25_CITER_ELINKNO, + #[doc = "0x1338 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd25_dlastsga: TCD25_DLASTSGA, + #[doc = "0x133c - TCD Control and Status"] + pub tcd25_csr: TCD25_CSR, + #[doc = "0x133e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd25_biter_elinkno: TCD25_BITER_ELINKNO, + #[doc = "0x1340 - TCD Source Address"] + pub tcd26_saddr: TCD26_SADDR, + #[doc = "0x1344 - TCD Signed Source Address Offset"] + pub tcd26_soff: TCD26_SOFF, + #[doc = "0x1346 - TCD Transfer Attributes"] + pub tcd26_attr: TCD26_ATTR, + #[doc = "0x1348 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd26_nbytes_mlno: TCD26_NBYTES_MLNO, + #[doc = "0x134c - TCD Last Source Address Adjustment"] + pub tcd26_slast: TCD26_SLAST, + #[doc = "0x1350 - TCD Destination Address"] + pub tcd26_daddr: TCD26_DADDR, + #[doc = "0x1354 - TCD Signed Destination Address Offset"] + pub tcd26_doff: TCD26_DOFF, + #[doc = "0x1356 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd26_citer_elinkno: TCD26_CITER_ELINKNO, + #[doc = "0x1358 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd26_dlastsga: TCD26_DLASTSGA, + #[doc = "0x135c - TCD Control and Status"] + pub tcd26_csr: TCD26_CSR, + #[doc = "0x135e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd26_biter_elinkno: TCD26_BITER_ELINKNO, + #[doc = "0x1360 - TCD Source Address"] + pub tcd27_saddr: TCD27_SADDR, + #[doc = "0x1364 - TCD Signed Source Address Offset"] + pub tcd27_soff: TCD27_SOFF, + #[doc = "0x1366 - TCD Transfer Attributes"] + pub tcd27_attr: TCD27_ATTR, + #[doc = "0x1368 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd27_nbytes_mlno: TCD27_NBYTES_MLNO, + #[doc = "0x136c - TCD Last Source Address Adjustment"] + pub tcd27_slast: TCD27_SLAST, + #[doc = "0x1370 - TCD Destination Address"] + pub tcd27_daddr: TCD27_DADDR, + #[doc = "0x1374 - TCD Signed Destination Address Offset"] + pub tcd27_doff: TCD27_DOFF, + #[doc = "0x1376 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd27_citer_elinkno: TCD27_CITER_ELINKNO, + #[doc = "0x1378 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd27_dlastsga: TCD27_DLASTSGA, + #[doc = "0x137c - TCD Control and Status"] + pub tcd27_csr: TCD27_CSR, + #[doc = "0x137e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd27_biter_elinkno: TCD27_BITER_ELINKNO, + #[doc = "0x1380 - TCD Source Address"] + pub tcd28_saddr: TCD28_SADDR, + #[doc = "0x1384 - TCD Signed Source Address Offset"] + pub tcd28_soff: TCD28_SOFF, + #[doc = "0x1386 - TCD Transfer Attributes"] + pub tcd28_attr: TCD28_ATTR, + #[doc = "0x1388 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd28_nbytes_mlno: TCD28_NBYTES_MLNO, + #[doc = "0x138c - TCD Last Source Address Adjustment"] + pub tcd28_slast: TCD28_SLAST, + #[doc = "0x1390 - TCD Destination Address"] + pub tcd28_daddr: TCD28_DADDR, + #[doc = "0x1394 - TCD Signed Destination Address Offset"] + pub tcd28_doff: TCD28_DOFF, + #[doc = "0x1396 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd28_citer_elinkno: TCD28_CITER_ELINKNO, + #[doc = "0x1398 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd28_dlastsga: TCD28_DLASTSGA, + #[doc = "0x139c - TCD Control and Status"] + pub tcd28_csr: TCD28_CSR, + #[doc = "0x139e - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd28_biter_elinkno: TCD28_BITER_ELINKNO, + #[doc = "0x13a0 - TCD Source Address"] + pub tcd29_saddr: TCD29_SADDR, + #[doc = "0x13a4 - TCD Signed Source Address Offset"] + pub tcd29_soff: TCD29_SOFF, + #[doc = "0x13a6 - TCD Transfer Attributes"] + pub tcd29_attr: TCD29_ATTR, + #[doc = "0x13a8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd29_nbytes_mlno: TCD29_NBYTES_MLNO, + #[doc = "0x13ac - TCD Last Source Address Adjustment"] + pub tcd29_slast: TCD29_SLAST, + #[doc = "0x13b0 - TCD Destination Address"] + pub tcd29_daddr: TCD29_DADDR, + #[doc = "0x13b4 - TCD Signed Destination Address Offset"] + pub tcd29_doff: TCD29_DOFF, + #[doc = "0x13b6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd29_citer_elinkno: TCD29_CITER_ELINKNO, + #[doc = "0x13b8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd29_dlastsga: TCD29_DLASTSGA, + #[doc = "0x13bc - TCD Control and Status"] + pub tcd29_csr: TCD29_CSR, + #[doc = "0x13be - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd29_biter_elinkno: TCD29_BITER_ELINKNO, + #[doc = "0x13c0 - TCD Source Address"] + pub tcd30_saddr: TCD30_SADDR, + #[doc = "0x13c4 - TCD Signed Source Address Offset"] + pub tcd30_soff: TCD30_SOFF, + #[doc = "0x13c6 - TCD Transfer Attributes"] + pub tcd30_attr: TCD30_ATTR, + #[doc = "0x13c8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd30_nbytes_mlno: TCD30_NBYTES_MLNO, + #[doc = "0x13cc - TCD Last Source Address Adjustment"] + pub tcd30_slast: TCD30_SLAST, + #[doc = "0x13d0 - TCD Destination Address"] + pub tcd30_daddr: TCD30_DADDR, + #[doc = "0x13d4 - TCD Signed Destination Address Offset"] + pub tcd30_doff: TCD30_DOFF, + #[doc = "0x13d6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd30_citer_elinkno: TCD30_CITER_ELINKNO, + #[doc = "0x13d8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd30_dlastsga: TCD30_DLASTSGA, + #[doc = "0x13dc - TCD Control and Status"] + pub tcd30_csr: TCD30_CSR, + #[doc = "0x13de - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd30_biter_elinkno: TCD30_BITER_ELINKNO, + #[doc = "0x13e0 - TCD Source Address"] + pub tcd31_saddr: TCD31_SADDR, + #[doc = "0x13e4 - TCD Signed Source Address Offset"] + pub tcd31_soff: TCD31_SOFF, + #[doc = "0x13e6 - TCD Transfer Attributes"] + pub tcd31_attr: TCD31_ATTR, + #[doc = "0x13e8 - TCD Minor Byte Count (Minor Loop Mapping Disabled)"] + pub tcd31_nbytes_mlno: TCD31_NBYTES_MLNO, + #[doc = "0x13ec - TCD Last Source Address Adjustment"] + pub tcd31_slast: TCD31_SLAST, + #[doc = "0x13f0 - TCD Destination Address"] + pub tcd31_daddr: TCD31_DADDR, + #[doc = "0x13f4 - TCD Signed Destination Address Offset"] + pub tcd31_doff: TCD31_DOFF, + #[doc = "0x13f6 - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd31_citer_elinkno: TCD31_CITER_ELINKNO, + #[doc = "0x13f8 - TCD Last Destination Address Adjustment/Scatter Gather Address"] + pub tcd31_dlastsga: TCD31_DLASTSGA, + #[doc = "0x13fc - TCD Control and Status"] + pub tcd31_csr: TCD31_CSR, + #[doc = "0x13fe - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] + pub tcd31_biter_elinkno: TCD31_BITER_ELINKNO, +} +#[doc = "Control Register"] +pub struct CR { + register: VolatileCell, +} +#[doc = "Control Register"] +pub mod cr; +#[doc = "Error Status Register"] +pub struct ES { + register: VolatileCell, +} +#[doc = "Error Status Register"] +pub mod es; +#[doc = "Enable Request Register"] +pub struct ERQ { + register: VolatileCell, +} +#[doc = "Enable Request Register"] +pub mod erq; +#[doc = "Enable Error Interrupt Register"] +pub struct EEI { + register: VolatileCell, +} +#[doc = "Enable Error Interrupt Register"] +pub mod eei; +#[doc = "Clear Enable Error Interrupt Register"] +pub struct CEEI { + register: VolatileCell, +} +#[doc = "Clear Enable Error Interrupt Register"] +pub mod ceei; +#[doc = "Set Enable Error Interrupt Register"] +pub struct SEEI { + register: VolatileCell, +} +#[doc = "Set Enable Error Interrupt Register"] +pub mod seei; +#[doc = "Clear Enable Request Register"] +pub struct CERQ { + register: VolatileCell, +} +#[doc = "Clear Enable Request Register"] +pub mod cerq; +#[doc = "Set Enable Request Register"] +pub struct SERQ { + register: VolatileCell, +} +#[doc = "Set Enable Request Register"] +pub mod serq; +#[doc = "Clear DONE Status Bit Register"] +pub struct CDNE { + register: VolatileCell, +} +#[doc = "Clear DONE Status Bit Register"] +pub mod cdne; +#[doc = "Set START Bit Register"] +pub struct SSRT { + register: VolatileCell, +} +#[doc = "Set START Bit Register"] +pub mod ssrt; +#[doc = "Clear Error Register"] +pub struct CERR { + register: VolatileCell, +} +#[doc = "Clear Error Register"] +pub mod cerr; +#[doc = "Clear Interrupt Request Register"] +pub struct CINT { + register: VolatileCell, +} +#[doc = "Clear Interrupt Request Register"] +pub mod cint; +#[doc = "Interrupt Request Register"] +pub struct INT { + register: VolatileCell, +} +#[doc = "Interrupt Request Register"] +pub mod int; +#[doc = "Error Register"] +pub struct ERR { + register: VolatileCell, +} +#[doc = "Error Register"] +pub mod err; +#[doc = "Hardware Request Status Register"] +pub struct HRS { + register: VolatileCell, +} +#[doc = "Hardware Request Status Register"] +pub mod hrs; +#[doc = "Enable Asynchronous Request in Stop Register"] +pub struct EARS { + register: VolatileCell, +} +#[doc = "Enable Asynchronous Request in Stop Register"] +pub mod ears; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI3 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri3; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI2 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri2; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI1 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri1; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI0 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri0; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI7 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri7; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI6 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri6; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI5 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri5; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI4 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri4; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI11 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri11; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI10 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri10; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI9 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri9; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI8 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri8; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI15 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri15; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI14 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri14; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI13 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri13; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI12 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri12; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI19 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri19; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI18 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri18; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI17 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri17; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI16 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri16; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI23 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri23; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI22 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri22; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI21 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri21; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI20 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri20; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI27 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri27; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI26 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri26; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI25 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri25; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI24 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri24; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI31 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri31; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI30 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri30; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI29 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri29; +#[doc = "Channel n Priority Register"] +pub struct DCHPRI28 { + register: VolatileCell, +} +#[doc = "Channel n Priority Register"] +pub mod dchpri28; +#[doc = "TCD Source Address"] +pub struct TCD0_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd0_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD0_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd0_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD0_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd0_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD0_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd0_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD0_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd0_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD0_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd0_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD0_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd0_slast; +#[doc = "TCD Destination Address"] +pub struct TCD0_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd0_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD0_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd0_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD0_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd0_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD0_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd0_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD0_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd0_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD0_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd0_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD0_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd0_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD0_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd0_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD1_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd1_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD1_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd1_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD1_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd1_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD1_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd1_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD1_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd1_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD1_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd1_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD1_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd1_slast; +#[doc = "TCD Destination Address"] +pub struct TCD1_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd1_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD1_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd1_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD1_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd1_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD1_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd1_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD1_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd1_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD1_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd1_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD1_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd1_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD1_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd1_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD2_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd2_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD2_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd2_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD2_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd2_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD2_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd2_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD2_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd2_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD2_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd2_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD2_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd2_slast; +#[doc = "TCD Destination Address"] +pub struct TCD2_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd2_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD2_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd2_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD2_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd2_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD2_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd2_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD2_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd2_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD2_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd2_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD2_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd2_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD2_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd2_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD3_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd3_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD3_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd3_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD3_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd3_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD3_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd3_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD3_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd3_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD3_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd3_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD3_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd3_slast; +#[doc = "TCD Destination Address"] +pub struct TCD3_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd3_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD3_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd3_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD3_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd3_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD3_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd3_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD3_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd3_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD3_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd3_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD3_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd3_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD3_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd3_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD4_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd4_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD4_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd4_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD4_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd4_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD4_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd4_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD4_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd4_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD4_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd4_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD4_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd4_slast; +#[doc = "TCD Destination Address"] +pub struct TCD4_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd4_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD4_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd4_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD4_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd4_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD4_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd4_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD4_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd4_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD4_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd4_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD4_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd4_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD4_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd4_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD5_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd5_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD5_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd5_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD5_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd5_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD5_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd5_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD5_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd5_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD5_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd5_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD5_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd5_slast; +#[doc = "TCD Destination Address"] +pub struct TCD5_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd5_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD5_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd5_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD5_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd5_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD5_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd5_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD5_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd5_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD5_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd5_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD5_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd5_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD5_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd5_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD6_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd6_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD6_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd6_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD6_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd6_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD6_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd6_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD6_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd6_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD6_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd6_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD6_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd6_slast; +#[doc = "TCD Destination Address"] +pub struct TCD6_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd6_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD6_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd6_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD6_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd6_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD6_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd6_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD6_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd6_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD6_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd6_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD6_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd6_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD6_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd6_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD7_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd7_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD7_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd7_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD7_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd7_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD7_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd7_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD7_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd7_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD7_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd7_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD7_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd7_slast; +#[doc = "TCD Destination Address"] +pub struct TCD7_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd7_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD7_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd7_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD7_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd7_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD7_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd7_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD7_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd7_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD7_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd7_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD7_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd7_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD7_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd7_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD8_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd8_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD8_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd8_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD8_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd8_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD8_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd8_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD8_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd8_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD8_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd8_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD8_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd8_slast; +#[doc = "TCD Destination Address"] +pub struct TCD8_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd8_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD8_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd8_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD8_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd8_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD8_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd8_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD8_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd8_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD8_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd8_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD8_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd8_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD8_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd8_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD9_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd9_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD9_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd9_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD9_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd9_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD9_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd9_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD9_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd9_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD9_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd9_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD9_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd9_slast; +#[doc = "TCD Destination Address"] +pub struct TCD9_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd9_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD9_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd9_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD9_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd9_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD9_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd9_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD9_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd9_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD9_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd9_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD9_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd9_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD9_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd9_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD10_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd10_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD10_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd10_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD10_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd10_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD10_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd10_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD10_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd10_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD10_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd10_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD10_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd10_slast; +#[doc = "TCD Destination Address"] +pub struct TCD10_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd10_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD10_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd10_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD10_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd10_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD10_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd10_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD10_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd10_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD10_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd10_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD10_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd10_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD10_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd10_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD11_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd11_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD11_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd11_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD11_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd11_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD11_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd11_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD11_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd11_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD11_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd11_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD11_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd11_slast; +#[doc = "TCD Destination Address"] +pub struct TCD11_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd11_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD11_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd11_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD11_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd11_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD11_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd11_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD11_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd11_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD11_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd11_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD11_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd11_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD11_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd11_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD12_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd12_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD12_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd12_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD12_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd12_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD12_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd12_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD12_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd12_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD12_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd12_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD12_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd12_slast; +#[doc = "TCD Destination Address"] +pub struct TCD12_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd12_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD12_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd12_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD12_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd12_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD12_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd12_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD12_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd12_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD12_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd12_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD12_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd12_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD12_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd12_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD13_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd13_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD13_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd13_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD13_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd13_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD13_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd13_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD13_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd13_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD13_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd13_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD13_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd13_slast; +#[doc = "TCD Destination Address"] +pub struct TCD13_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd13_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD13_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd13_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD13_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd13_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD13_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd13_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD13_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd13_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD13_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd13_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD13_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd13_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD13_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd13_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD14_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd14_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD14_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd14_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD14_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd14_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD14_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd14_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD14_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd14_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD14_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd14_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD14_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd14_slast; +#[doc = "TCD Destination Address"] +pub struct TCD14_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd14_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD14_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd14_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD14_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd14_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD14_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd14_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD14_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd14_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD14_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd14_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD14_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd14_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD14_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd14_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD15_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd15_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD15_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd15_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD15_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd15_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD15_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd15_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD15_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd15_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD15_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd15_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD15_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd15_slast; +#[doc = "TCD Destination Address"] +pub struct TCD15_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd15_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD15_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd15_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD15_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd15_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD15_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd15_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD15_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd15_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD15_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd15_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD15_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd15_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD15_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd15_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD16_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd16_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD16_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd16_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD16_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd16_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD16_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd16_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD16_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd16_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD16_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd16_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD16_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd16_slast; +#[doc = "TCD Destination Address"] +pub struct TCD16_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd16_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD16_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd16_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD16_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd16_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD16_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd16_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD16_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd16_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD16_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd16_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD16_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd16_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD16_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd16_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD17_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd17_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD17_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd17_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD17_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd17_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD17_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd17_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD17_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd17_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD17_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd17_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD17_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd17_slast; +#[doc = "TCD Destination Address"] +pub struct TCD17_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd17_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD17_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd17_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD17_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd17_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD17_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd17_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD17_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd17_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD17_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd17_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD17_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd17_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD17_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd17_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD18_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd18_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD18_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd18_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD18_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd18_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD18_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd18_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD18_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd18_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD18_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd18_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD18_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd18_slast; +#[doc = "TCD Destination Address"] +pub struct TCD18_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd18_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD18_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd18_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD18_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd18_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD18_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd18_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD18_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd18_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD18_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd18_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD18_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd18_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD18_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd18_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD19_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd19_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD19_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd19_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD19_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd19_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD19_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd19_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD19_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd19_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD19_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd19_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD19_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd19_slast; +#[doc = "TCD Destination Address"] +pub struct TCD19_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd19_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD19_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd19_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD19_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd19_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD19_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd19_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD19_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd19_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD19_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd19_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD19_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd19_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD19_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd19_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD20_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd20_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD20_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd20_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD20_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd20_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD20_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd20_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD20_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd20_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD20_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd20_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD20_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd20_slast; +#[doc = "TCD Destination Address"] +pub struct TCD20_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd20_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD20_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd20_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD20_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd20_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD20_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd20_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD20_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd20_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD20_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd20_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD20_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd20_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD20_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd20_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD21_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd21_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD21_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd21_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD21_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd21_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD21_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd21_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD21_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd21_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD21_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd21_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD21_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd21_slast; +#[doc = "TCD Destination Address"] +pub struct TCD21_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd21_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD21_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd21_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD21_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd21_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD21_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd21_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD21_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd21_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD21_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd21_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD21_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd21_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD21_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd21_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD22_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd22_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD22_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd22_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD22_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd22_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD22_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd22_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD22_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd22_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD22_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd22_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD22_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd22_slast; +#[doc = "TCD Destination Address"] +pub struct TCD22_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd22_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD22_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd22_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD22_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd22_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD22_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd22_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD22_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd22_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD22_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd22_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD22_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd22_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD22_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd22_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD23_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd23_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD23_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd23_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD23_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd23_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD23_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd23_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD23_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd23_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD23_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd23_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD23_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd23_slast; +#[doc = "TCD Destination Address"] +pub struct TCD23_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd23_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD23_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd23_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD23_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd23_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD23_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd23_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD23_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd23_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD23_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd23_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD23_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd23_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD23_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd23_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD24_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd24_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD24_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd24_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD24_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd24_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD24_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd24_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD24_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd24_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD24_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd24_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD24_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd24_slast; +#[doc = "TCD Destination Address"] +pub struct TCD24_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd24_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD24_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd24_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD24_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd24_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD24_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd24_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD24_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd24_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD24_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd24_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD24_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd24_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD24_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd24_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD25_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd25_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD25_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd25_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD25_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd25_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD25_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd25_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD25_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd25_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD25_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd25_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD25_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd25_slast; +#[doc = "TCD Destination Address"] +pub struct TCD25_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd25_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD25_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd25_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD25_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd25_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD25_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd25_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD25_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd25_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD25_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd25_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD25_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd25_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD25_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd25_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD26_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd26_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD26_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd26_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD26_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd26_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD26_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd26_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD26_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd26_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD26_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd26_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD26_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd26_slast; +#[doc = "TCD Destination Address"] +pub struct TCD26_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd26_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD26_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd26_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD26_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd26_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD26_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd26_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD26_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd26_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD26_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd26_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD26_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd26_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD26_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd26_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD27_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd27_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD27_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd27_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD27_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd27_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD27_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd27_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD27_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd27_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD27_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd27_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD27_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd27_slast; +#[doc = "TCD Destination Address"] +pub struct TCD27_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd27_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD27_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd27_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD27_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd27_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD27_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd27_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD27_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd27_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD27_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd27_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD27_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd27_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD27_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd27_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD28_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd28_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD28_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd28_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD28_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd28_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD28_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd28_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD28_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd28_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD28_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd28_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD28_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd28_slast; +#[doc = "TCD Destination Address"] +pub struct TCD28_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd28_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD28_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd28_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD28_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd28_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD28_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd28_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD28_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd28_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD28_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd28_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD28_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd28_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD28_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd28_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD29_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd29_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD29_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd29_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD29_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd29_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD29_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd29_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD29_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd29_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD29_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd29_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD29_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd29_slast; +#[doc = "TCD Destination Address"] +pub struct TCD29_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd29_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD29_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd29_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD29_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd29_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD29_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd29_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD29_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd29_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD29_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd29_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD29_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd29_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD29_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd29_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD30_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd30_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD30_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd30_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD30_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd30_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD30_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd30_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD30_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd30_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD30_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd30_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD30_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd30_slast; +#[doc = "TCD Destination Address"] +pub struct TCD30_DADDR { + register: VolatileCellz, +} +#[doc = "TCD Destination Address"] +pub mod tcd30_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD30_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd30_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD30_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd30_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD30_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd30_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD30_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd30_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD30_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd30_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD30_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd30_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD30_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd30_biter_elinkyes; +#[doc = "TCD Source Address"] +pub struct TCD31_SADDR { + register: VolatileCell, +} +#[doc = "TCD Source Address"] +pub mod tcd31_saddr; +#[doc = "TCD Signed Source Address Offset"] +pub struct TCD31_SOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Source Address Offset"] +pub mod tcd31_soff; +#[doc = "TCD Transfer Attributes"] +pub struct TCD31_ATTR { + register: VolatileCell, +} +#[doc = "TCD Transfer Attributes"] +pub mod tcd31_attr; +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub struct TCD31_NBYTES_MLNO { + register: VolatileCell, +} +#[doc = "TCD Minor Byte Count (Minor Loop Mapping Disabled)"] +pub mod tcd31_nbytes_mlno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub struct TCD31_NBYTES_MLOFFNO { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled)"] +pub mod tcd31_nbytes_mloffno; +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub struct TCD31_NBYTES_MLOFFYES { + register: VolatileCell, +} +#[doc = "TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled)"] +pub mod tcd31_nbytes_mloffyes; +#[doc = "TCD Last Source Address Adjustment"] +pub struct TCD31_SLAST { + register: VolatileCell, +} +#[doc = "TCD Last Source Address Adjustment"] +pub mod tcd31_slast; +#[doc = "TCD Destination Address"] +pub struct TCD31_DADDR { + register: VolatileCell, +} +#[doc = "TCD Destination Address"] +pub mod tcd31_daddr; +#[doc = "TCD Signed Destination Address Offset"] +pub struct TCD31_DOFF { + register: VolatileCell, +} +#[doc = "TCD Signed Destination Address Offset"] +pub mod tcd31_doff; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD31_CITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd31_citer_elinkno; +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD31_CITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd31_citer_elinkyes; +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub struct TCD31_DLASTSGA { + register: VolatileCell, +} +#[doc = "TCD Last Destination Address Adjustment/Scatter Gather Address"] +pub mod tcd31_dlastsga; +#[doc = "TCD Control and Status"] +pub struct TCD31_CSR { + register: VolatileCell, +} +#[doc = "TCD Control and Status"] +pub mod tcd31_csr; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub struct TCD31_BITER_ELINKNO { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled)"] +pub mod tcd31_biter_elinkno; +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub struct TCD31_BITER_ELINKYES { + register: VolatileCell, +} +#[doc = "TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled)"] +pub mod tcd31_biter_elinkyes; From 11d6b9daddfa9275c507a5e246541c28a78023ab Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 14 Jan 2020 17:39:28 +0100 Subject: [PATCH 06/10] Only new-style classification --- crates/ra_ide/src/goto_definition.rs | 5 +++-- crates/ra_ide/src/hover.rs | 9 +++++---- crates/ra_ide/src/references.rs | 14 +++++++++----- crates/ra_ide/src/references/classify.rs | 15 +-------------- crates/ra_ide/src/syntax_highlighting.rs | 6 +++--- 5 files changed, 21 insertions(+), 28 deletions(-) diff --git a/crates/ra_ide/src/goto_definition.rs b/crates/ra_ide/src/goto_definition.rs index 79d332e8ce..f2b5af3214 100644 --- a/crates/ra_ide/src/goto_definition.rs +++ b/crates/ra_ide/src/goto_definition.rs @@ -1,6 +1,6 @@ //! FIXME: write short doc here -use hir::{db::AstDatabase, InFile}; +use hir::{db::AstDatabase, InFile, SourceBinder}; use ra_syntax::{ ast::{self, DocCommentsOwner}, match_ast, AstNode, @@ -72,7 +72,8 @@ pub(crate) fn reference_definition( ) -> ReferenceResult { use self::ReferenceResult::*; - let name_kind = classify_name_ref(db, name_ref).map(|d| d.kind); + let mut sb = SourceBinder::new(db); + let name_kind = classify_name_ref(&mut sb, name_ref).map(|d| d.kind); match name_kind { Some(Macro(it)) => return Exact(it.to_nav(db)), Some(Field(it)) => return Exact(it.to_nav(db)), diff --git a/crates/ra_ide/src/hover.rs b/crates/ra_ide/src/hover.rs index 5548681f17..6661e5cb22 100644 --- a/crates/ra_ide/src/hover.rs +++ b/crates/ra_ide/src/hover.rs @@ -1,6 +1,6 @@ //! FIXME: write short doc here -use hir::{db::AstDatabase, Adt, HasSource, HirDisplay}; +use hir::{db::AstDatabase, Adt, HasSource, HirDisplay, SourceBinder}; use ra_db::SourceDatabase; use ra_syntax::{ algo::find_covering_element, @@ -152,13 +152,14 @@ pub(crate) fn hover(db: &RootDatabase, position: FilePosition) -> Option { - classify_name_ref(db, token.with_value(&name_ref)).map(|d| (name_ref.syntax().text_range(), d.kind)) + classify_name_ref(&mut sb, token.with_value(&name_ref)).map(|d| (name_ref.syntax().text_range(), d.kind)) }, ast::Name(name) => { - classify_name(db, token.with_value(&name)).map(|d| (name.syntax().text_range(), d.kind)) + classify_name(&mut sb, token.with_value(&name)).map(|d| (name.syntax().text_range(), d.kind)) }, _ => None, } @@ -742,7 +743,7 @@ fn func(foo: i32) { if true { <|>foo; }; } } fn foo(bar:u32) { let a = id!(ba<|>r); - } + } ", &["u32"], ); diff --git a/crates/ra_ide/src/references.rs b/crates/ra_ide/src/references.rs index 2b74d76538..b0e5fddccc 100644 --- a/crates/ra_ide/src/references.rs +++ b/crates/ra_ide/src/references.rs @@ -14,7 +14,7 @@ mod name_definition; mod rename; mod search_scope; -use hir::InFile; +use hir::{InFile, SourceBinder}; use once_cell::unsync::Lazy; use ra_db::{SourceDatabase, SourceDatabaseExt}; use ra_prof::profile; @@ -29,7 +29,7 @@ use crate::{ }; pub(crate) use self::{ - classify::{classify_name, classify_name2, classify_name_ref, classify_name_ref2}, + classify::{classify_name, classify_name_ref}, name_definition::{NameDefinition, NameKind}, rename::rename, }; @@ -171,13 +171,14 @@ fn find_name( syntax: &SyntaxNode, position: FilePosition, ) -> Option> { + let mut sb = SourceBinder::new(db); if let Some(name) = find_node_at_offset::(&syntax, position.offset) { - let def = classify_name(db, InFile::new(position.file_id.into(), &name))?; + let def = classify_name(&mut sb, InFile::new(position.file_id.into(), &name))?; let range = name.syntax().text_range(); return Some(RangeInfo::new(range, (name.text().to_string(), def))); } let name_ref = find_node_at_offset::(&syntax, position.offset)?; - let def = classify_name_ref(db, InFile::new(position.file_id.into(), &name_ref))?; + let def = classify_name_ref(&mut sb, InFile::new(position.file_id.into(), &name_ref))?; let range = name_ref.syntax().text_range(); Some(RangeInfo::new(range, (name_ref.text().to_string(), def))) } @@ -209,7 +210,10 @@ fn process_definition( continue; } } - if let Some(d) = classify_name_ref(db, InFile::new(file_id.into(), &name_ref)) { + // FIXME: reuse sb + let mut sb = SourceBinder::new(db); + if let Some(d) = classify_name_ref(&mut sb, InFile::new(file_id.into(), &name_ref)) + { if d == def { let kind = if name_ref .syntax() diff --git a/crates/ra_ide/src/references/classify.rs b/crates/ra_ide/src/references/classify.rs index 9778ca5365..4a6e11e27e 100644 --- a/crates/ra_ide/src/references/classify.rs +++ b/crates/ra_ide/src/references/classify.rs @@ -11,12 +11,7 @@ use super::{ }; use crate::db::RootDatabase; -pub(crate) fn classify_name(db: &RootDatabase, name: InFile<&ast::Name>) -> Option { - let mut sb = SourceBinder::new(db); - classify_name2(&mut sb, name) -} - -pub(crate) fn classify_name2( +pub(crate) fn classify_name( sb: &mut SourceBinder, name: InFile<&ast::Name>, ) -> Option { @@ -132,14 +127,6 @@ pub(crate) fn classify_name2( } pub(crate) fn classify_name_ref( - db: &RootDatabase, - name_ref: InFile<&ast::NameRef>, -) -> Option { - let mut sb = SourceBinder::new(db); - classify_name_ref2(&mut sb, name_ref) -} - -pub(crate) fn classify_name_ref2( sb: &mut SourceBinder, name_ref: InFile<&ast::NameRef>, ) -> Option { diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index 0cacc58d45..e514f9a2c1 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -10,7 +10,7 @@ use ra_syntax::{ast, AstNode, Direction, SyntaxElement, SyntaxKind, SyntaxKind:: use crate::{ db::RootDatabase, references::{ - classify_name2, classify_name_ref2, + classify_name, classify_name_ref, NameKind::{self, *}, }, FileId, @@ -110,7 +110,7 @@ pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Vec continue, NAME_REF => { let name_ref = node.as_node().cloned().and_then(ast::NameRef::cast).unwrap(); - let name_kind = classify_name_ref2(&mut sb, InFile::new(file_id.into(), &name_ref)) + let name_kind = classify_name_ref(&mut sb, InFile::new(file_id.into(), &name_ref)) .map(|d| d.kind); match name_kind { Some(name_kind) => { @@ -131,7 +131,7 @@ pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Vec { let name = node.as_node().cloned().and_then(ast::Name::cast).unwrap(); let name_kind = - classify_name2(&mut sb, InFile::new(file_id.into(), &name)).map(|d| d.kind); + classify_name(&mut sb, InFile::new(file_id.into(), &name)).map(|d| d.kind); if let Some(Local(local)) = &name_kind { if let Some(name) = local.name(db) { From 4194e5c88c61879bd63db488167b1460437f3e76 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 14 Jan 2020 17:45:52 +0100 Subject: [PATCH 07/10] Optimize inlay hints --- crates/ra_ide/src/inlay_hints.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/crates/ra_ide/src/inlay_hints.rs b/crates/ra_ide/src/inlay_hints.rs index 8cb0c70ddd..e2da96129d 100644 --- a/crates/ra_ide/src/inlay_hints.rs +++ b/crates/ra_ide/src/inlay_hints.rs @@ -1,6 +1,6 @@ //! FIXME: write short doc here -use hir::{HirDisplay, SourceAnalyzer}; +use hir::{HirDisplay, SourceAnalyzer, SourceBinder}; use once_cell::unsync::Lazy; use ra_prof::profile; use ra_syntax::{ @@ -29,22 +29,23 @@ pub(crate) fn inlay_hints( file: &SourceFile, max_inlay_hint_length: Option, ) -> Vec { + let mut sb = SourceBinder::new(db); file.syntax() .descendants() - .flat_map(|node| get_inlay_hints(db, file_id, &node, max_inlay_hint_length)) + .flat_map(|node| get_inlay_hints(&mut sb, file_id, &node, max_inlay_hint_length)) .flatten() .collect() } fn get_inlay_hints( - db: &RootDatabase, + sb: &mut SourceBinder, file_id: FileId, node: &SyntaxNode, max_inlay_hint_length: Option, ) -> Option> { let _p = profile("get_inlay_hints"); - let analyzer = - Lazy::new(|| SourceAnalyzer::new(db, hir::InFile::new(file_id.into(), node), None)); + let db = sb.db; + let analyzer = Lazy::new(move || sb.analyze(hir::InFile::new(file_id.into(), node), None)); match_ast! { match node { ast::LetStmt(it) => { From 787d1aba633c1d56594464ce3ed4630185b08091 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 14 Jan 2020 17:52:42 +0100 Subject: [PATCH 08/10] Add comment --- crates/ra_ide/src/references.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/ra_ide/src/references.rs b/crates/ra_ide/src/references.rs index b0e5fddccc..b995913af4 100644 --- a/crates/ra_ide/src/references.rs +++ b/crates/ra_ide/src/references.rs @@ -211,6 +211,7 @@ fn process_definition( } } // FIXME: reuse sb + // See https://github.com/rust-lang/rust/pull/68198#issuecomment-574269098 let mut sb = SourceBinder::new(db); if let Some(d) = classify_name_ref(&mut sb, InFile::new(file_id.into(), &name_ref)) { From 5b255b4e6b879d5a04d8fac97c0acdc917e32b68 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 14 Jan 2020 18:47:02 +0100 Subject: [PATCH 09/10] :arrow_up: once_cell --- Cargo.lock | 12 ++++++------ crates/ra_ide/src/references.rs | 4 +++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a0444e97ab..0904546587 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -739,7 +739,7 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -981,7 +981,7 @@ dependencies = [ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "insta 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "ra_arena 0.1.0", "ra_cfg 0.1.0", "ra_db 0.1.0", @@ -1043,7 +1043,7 @@ dependencies = [ "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "proptest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)", "ra_assists 0.1.0", "ra_cfg 0.1.0", @@ -1117,7 +1117,7 @@ dependencies = [ "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", "jemalloc-ctl 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "jemallocator 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1140,7 +1140,7 @@ version = "0.1.0" dependencies = [ "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "ra_parser 0.1.0", "ra_text_edit 0.1.0", "rowan 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1863,7 +1863,7 @@ dependencies = [ "checksum notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)" = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd" "checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" "checksum num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72" -"checksum once_cell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "891f486f630e5c5a4916c7e16c4b24a53e78c860b646e9f8e005e4f16847bfed" +"checksum once_cell 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5941ec2d5ee5916c709580d71553b81a633df245bcc73c04dcbd62152ceefc4" "checksum ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" "checksum parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "92e98c49ab0b7ce5b222f2cc9193fc4efe11c6d0bd4f648e374684a6857b1cfc" "checksum parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7582838484df45743c8434fbff785e8edf260c28748353d44bc0da32e0ceabf1" diff --git a/crates/ra_ide/src/references.rs b/crates/ra_ide/src/references.rs index b995913af4..5e2fe1905a 100644 --- a/crates/ra_ide/src/references.rs +++ b/crates/ra_ide/src/references.rs @@ -196,7 +196,9 @@ fn process_definition( for (file_id, search_range) in scope { let text = db.file_text(file_id); + let parse = Lazy::new(|| SourceFile::parse(&text)); + let mut sb = Lazy::new(|| SourceBinder::new(db)); for (idx, _) in text.match_indices(pat) { let offset = TextUnit::from_usize(idx); @@ -212,7 +214,7 @@ fn process_definition( } // FIXME: reuse sb // See https://github.com/rust-lang/rust/pull/68198#issuecomment-574269098 - let mut sb = SourceBinder::new(db); + if let Some(d) = classify_name_ref(&mut sb, InFile::new(file_id.into(), &name_ref)) { if d == def { From aaef88db0e2602e010f78e26a80d974be12c1f71 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 15 Jan 2020 16:53:01 +0100 Subject: [PATCH 10/10] Typos --- crates/ra_hir/src/source_analyzer.rs | 2 +- crates/ra_ide/src/syntax_highlighting.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/ra_hir/src/source_analyzer.rs b/crates/ra_hir/src/source_analyzer.rs index 186dd2411f..4f8fc96020 100644 --- a/crates/ra_hir/src/source_analyzer.rs +++ b/crates/ra_hir/src/source_analyzer.rs @@ -33,7 +33,7 @@ use crate::{ }; /// `SourceAnalyzer` is a convenience wrapper which exposes HIR API in terms of -/// original source files. It should not be used pinside the HIR itself. +/// original source files. It should not be used inside the HIR itself. #[derive(Debug)] pub struct SourceAnalyzer { file_id: HirFileId, diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index e514f9a2c1..0411977b9e 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -317,7 +317,7 @@ mod tests { use crate::mock_analysis::{single_file, MockAnalysis}; #[test] - fn te3st_highlighting() { + fn test_highlighting() { let (analysis, file_id) = single_file( r#" #[derive(Clone, Debug)]