private IEnumerable <ElementArray> ProcessTagStructDefinition(ElementArray parent, TagBlockDefinition definition, ref int offset) { var size = Guerilla.CalculateSizeOfFieldSet(definition.LatestFieldSet.Fields); var blockElementArray = new ElementArray() { Name = definition.Name, ElementSize = size, Address = offset, Parent = parent, MaxElementCount = definition.maximum_element_count, Alignment = definition.LatestFieldSet.Alignment, }; var i = 0; ProcessFields(definition.LatestFieldSet.Fields, blockElementArray, ref i, ref offset); return(blockElementArray.Children); }
private ElementArray ProcessTagBlockDefinition(ElementArray parent, TagBlockDefinition tagBlock, ref int offset, bool inline = false, string group_tag = "") { var size = Guerilla.CalculateSizeOfFieldSet(tagBlock.LatestFieldSet.Fields); var blockElementArray = new ElementArray() { Name = tagBlock.Name, ElementSize = size, Address = offset, Parent = parent, MaxElementCount = tagBlock.maximum_element_count, Alignment = tagBlock.LatestFieldSet.Alignment, }; var i = 0; int blockOffset = inline ? offset : 0; ProcessFields(tagBlock.LatestFieldSet.Fields, blockElementArray, ref i, ref blockOffset); if (inline) { offset = blockOffset; } return(blockElementArray); }