From 83fd13972ac9c43875250decf497ce30151f7157 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 22 Mar 2023 09:27:25 +0100 Subject: interface: Add register set macros Mask the value in the bit field macros. --- rtemsspec/interface.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'rtemsspec/interface.py') 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 -- cgit v1.2.3