mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
xdrgen: XDR width for struct types
The XDR width of a struct type is the sum of the widths of each of the struct's fields. Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
2852c92ba1
commit
f4bc1e996a
|
@ -350,9 +350,25 @@ class _XdrStruct(_XdrAst):
|
|||
name: str
|
||||
fields: List[_XdrDeclaration]
|
||||
|
||||
def max_width(self) -> int:
|
||||
"""Return width of type in XDR_UNITS"""
|
||||
width = 0
|
||||
for field in self.fields:
|
||||
width += field.max_width()
|
||||
return width
|
||||
|
||||
def symbolic_width(self) -> List:
|
||||
"""Return list containing XDR width of type's components"""
|
||||
widths = []
|
||||
for field in self.fields:
|
||||
widths += field.symbolic_width()
|
||||
return widths
|
||||
|
||||
def __post_init__(self):
|
||||
structs.add(self.name)
|
||||
pass_by_reference.add(self.name)
|
||||
max_widths[self.name] = self.max_width()
|
||||
symbolic_widths[self.name] = self.symbolic_width()
|
||||
|
||||
|
||||
@dataclass
|
||||
|
|
Loading…
Reference in New Issue
Block a user