diff options
Diffstat (limited to 'rtemsspec/interface.py')
-rw-r--r-- | rtemsspec/interface.py | 11 |
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 |