docs: def get_iobuf_bytes(self, p, x, y):
          """Read raw bytes ``io_printf``'d into the ``IOBUF`` buffer on a
          specified core.
  
          This may be useful when the data contained in the ``IOBUF`` is not
          UTF-8 encoded text.
  
          See also: :py:meth:`.get_iobuf` which returns a decoded string rather
          than raw bytes.
  
          Returns
          -------
          bytes
              The raw, undecoded string data in the buffer.
          """
          # The IOBUF data is stored in a linked-list of blocks of memory in
          # SDRAM. The size of each block is given in SV
          iobuf_size = self.read_struct_field("sv", "iobuf_size", x, y)
  
          # The first block in the list is given in the core's VCPU field
          address = self.read_vcpu_struct_field("iobuf", x, y, p)
  
          iobuf = b""
  
          while address:
              # The IOBUF data is proceeded by a header which gives the next
              # address and also the length of the string in the current buffer.
              iobuf_data = self.read(address, iobuf_size + 16, x, y)
              address, time, ms, length = struct.unpack("<4I", iobuf_data[:16])
              iobuf += iobuf_data[16:16 + length]
  
          return iobuf