> On Jan 19, 2016, at 8:25 AM, Kenneth D. Merry <k...@freebsd.org> wrote:
>>> In the ada(4) case, we need to add the register to struct ccb_ataio and
>>> add support in one or more of the underlying SATA drivers, e.g. ahci(4).
>> I believe that changes the size of the CCB, so I tried to avoid
>> that since I didn???t want to force a recompile of camcontrol(8).
>> Adding it to the atacmd structure wasn???t so bad, and the CCB size
>> didn???t completely change. The problem was that the atacmd changed
>> size and pushed all the other fields.
> Yes.  In order to do it, we'll need to add it to struct atacmd, and add
> compatibility shims.  I don't see another way to do it unfortunately.

No, I object to changing the structure sizes and contents.  It should be a
new CCB, XPT_ATA_IO_EXT, ccb_ataio_ext.  If you want to add more
future-looking fields than just the AUX register, maybe a way to define
un-typed command and response register objects, that’s fine and probably a
good idea.  The periph drivers can probe for the proper command to send
based on whether the SIM returning CAM_FUNC_NOTAVAIL or via a PIM
flag, or even better, via a KVP capability CCB.  However I’m firmly against
changing the existing data structures; compat shims have been a pain and
are a poor solution.

Warner and I are pounding out a proposal for this, will share a diff shortly.


freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to