Add packed struct overlay for external register bitfields. #84
This commit is contained in:
@@ -41,18 +41,26 @@ class _AnonymousStruct(_StructBase):
|
||||
|
||||
|
||||
class _TypedefStruct(_StructBase):
|
||||
def __init__(self, type_name: str, inst_name: Optional[str] = None, array_dimensions: Optional[List[int]] = None):
|
||||
def __init__(self, type_name: str, inst_name: Optional[str] = None, array_dimensions: Optional[List[int]] = None, packed: bool = False):
|
||||
super().__init__()
|
||||
self.type_name = type_name
|
||||
self.inst_name = inst_name
|
||||
self.array_dimensions = array_dimensions
|
||||
self.packed = packed
|
||||
|
||||
def __str__(self) -> str:
|
||||
return (
|
||||
"typedef struct {\n"
|
||||
+ super().__str__()
|
||||
+ f"\n}} {self.type_name};"
|
||||
)
|
||||
if self.packed:
|
||||
return (
|
||||
"typedef struct packed {\n"
|
||||
+ super().__str__()
|
||||
+ f"\n}} {self.type_name};"
|
||||
)
|
||||
else:
|
||||
return (
|
||||
"typedef struct {\n"
|
||||
+ super().__str__()
|
||||
+ f"\n}} {self.type_name};"
|
||||
)
|
||||
|
||||
@property
|
||||
def instantiation(self) -> str:
|
||||
@@ -167,8 +175,8 @@ class FlatStructGenerator(StructGenerator):
|
||||
super().__init__()
|
||||
self.typedefs = OrderedDict() # type: OrderedDict[str, _TypedefStruct]
|
||||
|
||||
def push_struct(self, type_name: str, inst_name: str, array_dimensions: Optional[List[int]] = None) -> None: # type: ignore # pylint: disable=arguments-renamed
|
||||
s = _TypedefStruct(type_name, inst_name, array_dimensions)
|
||||
def push_struct(self, type_name: str, inst_name: str, array_dimensions: Optional[List[int]] = None, packed = False) -> None: # type: ignore # pylint: disable=arguments-renamed
|
||||
s = _TypedefStruct(type_name, inst_name, array_dimensions, packed)
|
||||
self._struct_stack.append(s)
|
||||
|
||||
def pop_struct(self) -> None:
|
||||
|
||||
Reference in New Issue
Block a user