On 8/24/06, Blue Swirl <address@hidden> wrote:
>- A general remark : instead of using SPARC_IOMMU_TRANSLATE, you should use
>new memory helpers to read or write bytes such as
>pcnet_physical_memory_read() and pcnet_physical_memory_write(). The
>rationale is that ultimately pci memory accesses will also use PCI specific
>I/Os to handle the case where the PCI memory is not mapped directly in the
>CPU address space. For the sparc iommu you should define global helpers
>such as sparc_iommu_memory_read() and sparc_iommu_memory_write().
Good, that's much cleaner than the current mechanism.
>- CPU specific #ifdefs (or CPU specific endianness macros) should be
>avoided in device code unless it is really necessary. The rationale is that
>ultimately there will be a single QEMU executable supporting all machines
>and CPUs. In the pcnet case for example, the macro 'SPARC_FIX_DESC' is
>almost surely not necessary because the device seems implicitely little
>endian (the original code lacks correct endianness conversion routines !).
That's what I suspected. I'll try to make an universal version.
Do you want to preserve bitfields in structures? See comments near PACKED_FIELD() decl
--