Hi, I'm just starting to work on this, wanted to solicit some feedback. I am thinking that the simplest way to implement multiple heads would be:
Add additional QXLRam headers back to back on the vram bar. Add a new flag QXL_RAM_FLAG_MORE_HEADS, set it on all but the last (largest offset into bar) header. Don't add new fields to QXLRom or QXLRam. Update QXLRom.ram_header_offset to point to the first (smallest offset) header. New driver that notices the QXL_RAM_FLAG_MORE_HEADS will count the headers (it cannot be done by looking at the header offset since it may not know about additional future data that will be put at the end of the bar). Old driver will lose sizeof(QXLRam) * (num_heads - 1) bytes from the end of the bar. Visually it would look like this for a two head qxl device: .----------------------------------------------. | ROM BAR | | ... | || ram_header_offset | || ... | || | || | |'----------------------------------------------' | | |.--------------------------------------------------. || VRAM BAR | |.--------------------------------------------------. || Working area | || | v.--------------------------------------------------. | First Header | | magic | | ... | | flags == QXL_RAM_FLAG_MORE_HEADS | | | .--------------------------------------------------. | Second Header | | magic | | ... (identical fields) ... | | flags == 0 | '--------------------------------------------------' Alon _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel