summaryrefslogtreecommitdiffstats
path: root/rtemsspec/interface.py
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-03-22 09:27:25 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-06-14 13:58:42 +0200
commit83fd13972ac9c43875250decf497ce30151f7157 (patch)
tree2c299341781b28bb40e552132b2aba3cf369030c /rtemsspec/interface.py
parentspec: Selectively enable GRLIB (diff)
downloadrtems-central-83fd13972ac9c43875250decf497ce30151f7157.tar.bz2
interface: Add register set macros
Mask the value in the bit field macros.
Diffstat (limited to 'rtemsspec/interface.py')
-rw-r--r--rtemsspec/interface.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/rtemsspec/interface.py b/rtemsspec/interface.py
index f67b80e3..ac124a68 100644
--- a/rtemsspec/interface.py
+++ b/rtemsspec/interface.py
@@ -643,9 +643,14 @@ class Node:
f"#define {base}_SHIFT {start}",
f"#define {base}_MASK {mask:#x}{sfx}",
f"#define {base}_GET( _reg ) \\",
- f" ( ( ( _reg ) & {base}_MASK ) >> {base}_SHIFT )",
- f"#define {base}( _val ) \\",
- f" ( ( _val ) << {base}_SHIFT )"
+ f" ( ( ( _reg ) & {base}_MASK ) >> \\",
+ f" {base}_SHIFT )",
+ f"#define {base}_SET( _reg, _val ) \\",
+ f" ( ( ( _reg ) & ~{base}_MASK ) | \\",
+ f" ( ( ( _val ) << {base}_SHIFT ) & \\",
+ f" {base}_MASK ) )", f"#define {base}( _val ) \\",
+ f" ( ( ( _val ) << {base}_SHIFT ) & \\",
+ f" {base}_MASK )"
])
return lines