Artem Kachitchkine wrote:
>
>> (I'm thinking of code that does PIOs into little endian PCI devices,
>> for example. Endian swap of data like audio data is another good
>> example.)
>
> Drivers should use ddi_rep_* functions, which are optimized.
>
> -Artem
OpenGrok shows a number of instances where ddi_swap32 is used. Not all
accesses are necessarily ddi_rep_* appropriate (although big chunks of
PIO certainly seem like they would qualify.)
I'm thinking also of places where lots of swapping is required to deal
with on-disk data structures. For example, the audio mixing logic may
need to swap endianness of audio data streams. I wonder if filesystem
code could use this as well. For example, I see lots of calls to
SWAP_32() (a locally defined macro) in udfs. It wouldn't surprise me to
find this elsewhere as well.
The thing is, taken as a few cycles, it doesn't matter much. But taken
over the sum total of everything that the machine does, these cycles
ultimately consume time and power. Some of this stuff is in critical
paths. We can do better.
-- Garrett
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code