[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