| 1566 | |
| 1567 | |
| 1568 | def Print(self, p): |
| 1569 | length = self.Length() |
| 1570 | array = self.array |
| 1571 | |
| 1572 | p.Print("Descriptors(%08x, length=%d)" % (array.address, length)) |
| 1573 | p.Print("[et] %s" % (array.Get(1))) |
| 1574 | |
| 1575 | for di in range(length): |
| 1576 | i = 2 + di * 3 |
| 1577 | p.Print("0x%x" % (array.address + array.MemberOffset(i))) |
| 1578 | p.Print("[%i] name: %s" % (di, array.Get(i + 0))) |
| 1579 | p.Print("[%i] details: %s %s field-index %i pointer %i" % \ |
| 1580 | self.Details(di, array.Get(i + 1))) |
| 1581 | p.Print("[%i] value: %s" % (di, array.Get(i + 2))) |
| 1582 | |
| 1583 | end = self.array.length // 3 |
| 1584 | if length != end: |
| 1585 | p.Print("[%i-%i] slack descriptors" % (length, end)) |
| 1586 | |
| 1587 | |
| 1588 | class TransitionArray(object): |