class FFSFileHeader(FieldSet): static_size = 24*8 def createFields(self): yield EfiGuid(self, "name", "Name") yield UInt16(self, "integrity_check", "IntegrityCheck") yield UInt8(self, "type", "Type") yield UInt8(self, "attributes", "Attributes") self.size = size= UInt24(self, "size", "Size") yield size yield UInt8(self, "state", "State") class FFSFile(FieldSet): def createFields(self): header = FFSFileHeader(self, "file_header", "FileHeader") yield header size = header.size yield Bytes(self, "file_content", size, "Content") padding = paddingSize(size, 8) if padding: yield Bytes(self, "padding", padding, "Padding")