[ros-kernel] BusLogic 958 SCSI miniport
Filip Navara
xnavara at volny.cz
Fri Mar 26 20:19:41 CET 2004
Hi Hartmut!
Hartmut Birr wrote:
>Hi,
>
>I've looked a little bit more to scsiport.c. Currently, scsiport can
>only process one srb/irp at the same time. There exist some fields
>within the device extension which used for each irp (CurrentIrp,
>OriginalSrb, InternalSrb, InternalSenseData). But this fields must be
>unique for each irp/srb. I think we should at this fields and some new
>fields (a back pointer to the device extension, a list entry for the
>srb/irp queue...) to the srb extension (after or previous the real srb
>extension).
>
[I'm not much sure that SrbExtension is the best place, because it must
be allocated using HalAllocateCommonBuffer, but there aren't much other
possibilities. :-(]
> There should be allocated a separate extension for each srb,
>like your mail step b). Some functions are currently called with the
>device extension as context. The context of this function must be
>changed to the srb.
>
Sounds good.
>The complete notification routine adds the srb to
>the complete queue and the DpcForIsr function complete all irp/srb from
>this queue or starts some more processing.
>
This is one way it can be done. The native version seems to use an
in-progress queue that contains all srbs currently processed by the
miniport driver, this approach makes implementing of
ScsiPortCompleteRequest a lot easier.
> I can start the
>implementation at the week end, but I can only test with atapi.
>
>
Great, thanks much. I'll help in testing as much as I can.
Regards,
Filip
More information about the Ros-kernel
mailing list