> On Mar 7, 2016, at 7:48 PM, Ian Munsie <imun...@au1.ibm.com> wrote: > > From: Ian Munsie <imun...@au1.ibm.com> > > This adds an afu_driver_ops structure with event_pending and > deliver_event callbacks. An AFU driver such as cxlflash can fill these > out and associate it with a context to enable passing custom AFU > specific events to userspace. > > The cxl driver will call event_pending() during poll, select, read, etc. > calls to check if an AFU driver specific event is pending, and will call > deliver_event() to deliver that event. This way, the cxl driver takes > care of all the usual locking semantics around these calls and handles > all the generic cxl events, so that the AFU driver only needs to worry > about it's own events. > > The deliver_event() call is passed a struct cxl_event buffer to fill in. > The header will already be filled in for an AFU driver event, and the > AFU driver is expected to expand the header.size as necessary (up to > max_size, defined by struct cxl_event_afu_driver_reserved) and fill out > it's own information. > > Since AFU drivers provide their own means for userspace to obtain the > AFU file descriptor (i.e. cxlflash uses an ioctl on their scsi file > descriptor to obtain the AFU file descriptor) and the generic cxl driver > will never use this event, the ABI of the event is up to each individual > AFU driver. > > Signed-off-by: Ian Munsie <imun...@au1.ibm.com>
Reviewed-by: Matthew R. Ochs <mro...@linux.vnet.ibm.com> _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev