@@ -32,6 +32,8 @@ pub(crate) trait PeripheralExt: InterruptExt + RegisterBlockExt {
3232 "_copy" ,
3333 "_strip" ,
3434 "_strip_end" ,
35+ "_prefix" ,
36+ "_suffix" ,
3537 "_modify" ,
3638 "_clear_fields" ,
3739 "_add" ,
@@ -57,6 +59,8 @@ pub(crate) trait ClusterExt: RegisterBlockExt {
5759 "_copy" ,
5860 "_strip" ,
5961 "_strip_end" ,
62+ "_prefix" ,
63+ "_suffix" ,
6064 "_modify" ,
6165 "_clear_fields" ,
6266 "_add" ,
@@ -568,6 +572,34 @@ pub(crate) trait RegisterBlockExt: Name {
568572 Ok ( ( ) )
569573 }
570574
575+ /// Add prefix at the beginning of register names inside ptag
576+ fn add_prefix ( & mut self , prefix : & str ) -> PatchResult {
577+ for rtag in self . regs_mut ( ) {
578+ rtag. name . insert_str ( 0 , prefix) ;
579+ if let Some ( dname) = rtag. display_name . as_mut ( ) {
580+ dname. insert_str ( 0 , prefix) ;
581+ }
582+ if let Some ( name) = rtag. alternate_register . as_mut ( ) {
583+ name. insert_str ( 0 , prefix) ;
584+ }
585+ }
586+ Ok ( ( ) )
587+ }
588+
589+ /// Add suffix at the ending of register names inside ptag
590+ fn add_suffix ( & mut self , suffix : & str ) -> PatchResult {
591+ for rtag in self . regs_mut ( ) {
592+ rtag. name . push_str ( suffix) ;
593+ if let Some ( dname) = rtag. display_name . as_mut ( ) {
594+ dname. push_str ( suffix) ;
595+ }
596+ if let Some ( name) = rtag. alternate_register . as_mut ( ) {
597+ name. push_str ( suffix) ;
598+ }
599+ }
600+ Ok ( ( ) )
601+ }
602+
571603 /// Collect same registers in peripheral into register array
572604 fn collect_in_array (
573605 & mut self ,
@@ -1078,6 +1110,15 @@ impl PeripheralExt for Peripheral {
10781110 . with_context ( || format ! ( "Stripping suffix `{suffix}` from register names" ) ) ?;
10791111 }
10801112
1113+ if let Some ( prefix) = pmod. get_str ( "_prefix" ) ? {
1114+ self . add_prefix ( prefix)
1115+ . with_context ( || format ! ( "Adding prefix `{prefix}` to register names" ) ) ?;
1116+ }
1117+ if let Some ( suffix) = pmod. get_str ( "_suffix" ) ? {
1118+ self . add_suffix ( suffix)
1119+ . with_context ( || format ! ( "Adding suffix `{suffix}` to register names" ) ) ?;
1120+ }
1121+
10811122 // Handle modifications
10821123 for ( rspec, rmod) in pmod. hash_iter ( "_modify" ) {
10831124 let rmod = rmod. hash ( ) ?;
@@ -1386,6 +1427,15 @@ impl ClusterExt for Cluster {
13861427 . with_context ( || format ! ( "Stripping suffix `{suffix}` from register names" ) ) ?;
13871428 }
13881429
1430+ if let Some ( prefix) = cmod. get_str ( "_prefix" ) ? {
1431+ self . add_prefix ( prefix)
1432+ . with_context ( || format ! ( "Adding prefix `{prefix}` to register names" ) ) ?;
1433+ }
1434+ if let Some ( suffix) = cmod. get_str ( "_suffix" ) ? {
1435+ self . add_suffix ( suffix)
1436+ . with_context ( || format ! ( "Adding suffix `{suffix}` to register names" ) ) ?;
1437+ }
1438+
13891439 // Handle modifications
13901440 for ( rspec, rmod) in cmod. hash_iter ( "_modify" ) {
13911441 let rmod = rmod. hash ( ) ?;
0 commit comments