584 r=m.ProcessMessageData(a1); |
583 r=m.ProcessMessageData(a1); |
585 __TRACE_TIMING(1); |
584 __TRACE_TIMING(1); |
586 if (r==KErrNone) |
585 if (r==KErrNone) |
587 { |
586 { |
588 __TRACE_TIMING(2); |
587 __TRACE_TIMING(2); |
589 OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ, "ERead iDriveNumber=%d; length=0x%x; position=0x%x; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) m.Length(), (TUint) m.Pos(), (TUint) &m); |
588 OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ, "ERead iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m); |
|
589 OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ2, "ERead length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); |
590 r=iDrive->Request(m); |
590 r=iDrive->Request(m); |
591 __TRACE_TIMING(3); |
591 __TRACE_TIMING(3); |
592 OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ_RETURN, "ERead Return iDriveNumber=%d; length=0x%x; position=0x%x; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) m.Length(), (TUint) m.Pos(), (TUint) &m ); |
592 OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ_RETURN, "ERead Return iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m ); |
|
593 OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ_RETURN2, "ERead Return length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); |
593 } |
594 } |
594 m.CloseRemoteThread(); |
595 m.CloseRemoteThread(); |
595 break; |
596 break; |
596 } |
597 } |
597 case RLocalDrive::EControlWrite: |
598 case RLocalDrive::EControlWrite: |
598 { |
599 { |
599 m.Id()=EWrite; |
600 m.Id()=EWrite; |
600 r=m.ProcessMessageData(a1); |
601 r=m.ProcessMessageData(a1); |
601 if (r==KErrNone) |
602 if (r==KErrNone) |
602 { |
603 { |
603 OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE, "EWrite iDriveNumber=%d; length=0x%x; position=0x%x; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) m.Length(), (TUint) m.Pos(), (TUint) &m ); |
604 OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE, "EWrite iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m ); |
|
605 OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE2, "EWrite length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); |
604 r=iDrive->Request(m); |
606 r=iDrive->Request(m); |
605 OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE_RETURN, "EWrite Return iDriveNumber=%d; length=0x%x; position=0x%x; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) m.Length(), (TUint) m.Pos(), (TUint) &m ); |
607 OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE_RETURN, "EWrite Return iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m ); |
|
608 OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE_RETURN2, "EWrite Return length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); |
606 } |
609 } |
607 m.CloseRemoteThread(); |
610 m.CloseRemoteThread(); |
608 break; |
611 break; |
609 } |
612 } |
610 case RLocalDrive::EControlCaps: |
613 case RLocalDrive::EControlCaps: |
1555 EXPORT_C TInt TLocDrvRequest::CheckAndAdjustForPartition() |
1558 EXPORT_C TInt TLocDrvRequest::CheckAndAdjustForPartition() |
1556 { |
1559 { |
1557 OstTraceFunctionEntry1( TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION_ENTRY, this ); |
1560 OstTraceFunctionEntry1( TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION_ENTRY, this ); |
1558 TLocDrv& d=*Drive(); |
1561 TLocDrv& d=*Drive(); |
1559 __KTRACE_OPT(KLOCDRV,Kern::Printf("CheckAndAdjustForPartition drive %d partition len %lx",d.iDriveNumber,d.iPartitionLen)); |
1562 __KTRACE_OPT(KLOCDRV,Kern::Printf("CheckAndAdjustForPartition drive %d partition len %lx",d.iDriveNumber,d.iPartitionLen)); |
1560 OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION1, "iDriveNumber=%d; partition length=0x%lx", d.iDriveNumber, (TInt) d.iPartitionLen ); |
1563 OstTraceExt3( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION1, "iDriveNumber=%d; partition length=%x:%x", d.iDriveNumber, (TInt) I64HIGH (d.iPartitionLen), (TInt) I64LOW (d.iPartitionLen)); |
1561 Flags() |= EAdjusted; |
1564 Flags() |= EAdjusted; |
1562 TInt r; |
1565 TInt r; |
1563 switch (Id()) |
1566 switch (Id()) |
1564 { |
1567 { |
1565 case DLocalDrive::ECaps: |
1568 case DLocalDrive::ECaps: |
1576 r = KErrNone; |
1579 r = KErrNone; |
1577 break; |
1580 break; |
1578 } |
1581 } |
1579 case DLocalDrive::EEnlarge: |
1582 case DLocalDrive::EEnlarge: |
1580 __KTRACE_OPT(KLOCDRV,Kern::Printf("Enlarge request %lx",Length())); |
1583 __KTRACE_OPT(KLOCDRV,Kern::Printf("Enlarge request %lx",Length())); |
1581 OstTrace1( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION2, "Enlarge request=0x%lx", Length() ); |
1584 OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION2, "Enlarge request=%x:%x", (TInt) I64HIGH(Length()), (TInt) I64LOW(Length()) ); |
1582 if (Length()>KMaxTInt) |
1585 if (Length()>KMaxTInt) |
1583 r = KErrArgument; |
1586 r = KErrArgument; |
1584 else |
1587 else |
1585 r = KErrNone; |
1588 r = KErrNone; |
1586 break; |
1589 break; |
1587 case DLocalDrive::EReduce: |
1590 case DLocalDrive::EReduce: |
1588 __KTRACE_OPT(KLOCDRV,Kern::Printf("Reduce request %lx@%lx",Length(),Pos())); |
1591 __KTRACE_OPT(KLOCDRV,Kern::Printf("Reduce request %lx@%lx",Length(),Pos())); |
1589 OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION3, "Reduce request length=0x%lx; position=0x%lx", (TUint) Length(), (TUint) Pos() ); |
1592 OstTraceExt4( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION3, "Reduce request length=%x:%x; position=%x:%x", (TUint) I64HIGH(Length()), (TUint) I64LOW(Length()), (TUint) I64HIGH (Pos()), (TUint) I64LOW (Pos()) ); |
1590 if (Pos()+Length()>d.iPartitionLen) |
1593 if (Pos()+Length()>d.iPartitionLen) |
1591 r = KErrArgument; |
1594 r = KErrArgument; |
1592 else |
1595 else |
1593 r = KErrNone; |
1596 r = KErrNone; |
1594 break; |
1597 break; |
1595 case DLocalDrive::EFormat: |
1598 case DLocalDrive::EFormat: |
1596 __KTRACE_OPT(KLOCDRV,Kern::Printf("Format request %lx@%lx",Length(),Pos())); |
1599 __KTRACE_OPT(KLOCDRV,Kern::Printf("Format request %lx@%lx",Length(),Pos())); |
1597 OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION4, "Format request length=0x%lx; position=0x%lx", (TUint) Length(), (TUint) Pos() ); |
1600 OstTraceExt4( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION4, "Format request length=%x:%x; position=%x:%x", (TUint) I64HIGH(Length()),(TUint) I64LOW(Length()), (TUint) I64HIGH (Pos()), (TUint) I64LOW (Pos()) ); |
1598 if (!(DriverFlags() & RLocalDrive::ELocDrvWholeMedia)) |
1601 if (!(DriverFlags() & RLocalDrive::ELocDrvWholeMedia)) |
1599 { |
1602 { |
1600 if (Pos()>d.iPartitionLen) |
1603 if (Pos()>d.iPartitionLen) |
1601 { |
1604 { |
1602 Length()=0; |
1605 Length()=0; |
1620 case DMediaPagingDevice::ERomPageInRequest: |
1623 case DMediaPagingDevice::ERomPageInRequest: |
1621 // if the ROM was reported to LOCM then it will also need to be adjusted.... |
1624 // if the ROM was reported to LOCM then it will also need to be adjusted.... |
1622 // Otherwise the media driver adjust it internally |
1625 // Otherwise the media driver adjust it internally |
1623 case DMediaPagingDevice::ECodePageInRequest: |
1626 case DMediaPagingDevice::ECodePageInRequest: |
1624 __KTRACE_OPT(KLOCDPAGING,Kern::Printf("Adjusted Paging read request %lx@%lx",Length(),Pos())); |
1627 __KTRACE_OPT(KLOCDPAGING,Kern::Printf("Adjusted Paging read request %lx@%lx",Length(),Pos())); |
1625 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, TLOCDRVREQUESTCHECKANDADJUSTFORPARTITION5, "Adjusted Paging read request length=0x%lx; position=0x%lx", (TUint) Length(), (TUint) Pos()); |
1628 OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, TLOCDRVREQUESTCHECKANDADJUSTFORPARTITION5, "Adjusted Paging read request length=%x:%x; position=%x%:%x", (TUint) I64HIGH(Length()), (TUint) I64LOW(Length()), (TUint) I64HIGH (Pos()), (TUint) I64LOW (Pos())); |
1626 if (Pos()+Length()>d.iPartitionLen) |
1629 if (Pos()+Length()>d.iPartitionLen) |
1627 { |
1630 { |
1628 r = KErrArgument; |
1631 r = KErrArgument; |
1629 break; |
1632 break; |
1630 } |
1633 } |
1633 break; |
1636 break; |
1634 #endif |
1637 #endif |
1635 |
1638 |
1636 default: // read or write or fragment |
1639 default: // read or write or fragment |
1637 __KTRACE_OPT(KLOCDRV,Kern::Printf("R/W request %lx@%lx",Length(),Pos())); |
1640 __KTRACE_OPT(KLOCDRV,Kern::Printf("R/W request %lx@%lx",Length(),Pos())); |
1638 OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION6, "Read/Write request length=0x%x; position=0x%x", (TUint) Length(), (TUint) Pos() ); |
1641 OstTraceExt4( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION6, "Read/Write request length=%x:%x; position=%x:%x", (TUint)I64HIGH (Length()), (TUint)I64LOW (Length()), (TUint) I64HIGH (Pos()), (TUint) I64LOW (Pos())); |
1639 if (DriverFlags() & RLocalDrive::ELocDrvWholeMedia) |
1642 if (DriverFlags() & RLocalDrive::ELocDrvWholeMedia) |
1640 { |
1643 { |
1641 if (d.iMedia && d.iMedia->iDriver && Pos()+Length() > d.iMedia->iPartitionInfo.iMediaSizeInBytes) |
1644 if (d.iMedia && d.iMedia->iDriver && Pos()+Length() > d.iMedia->iPartitionInfo.iMediaSizeInBytes) |
1642 { |
1645 { |
1643 r = KErrArgument; |
1646 r = KErrArgument; |
2019 OstTraceFunctionEntry1( DPRIMARYMEDIABASE_REQUEST_ENTRY, this ); |
2022 OstTraceFunctionEntry1( DPRIMARYMEDIABASE_REQUEST_ENTRY, this ); |
2020 |
2023 |
2021 __KTRACE_OPT(KLOCDRV,Kern::Printf("DPrimaryMediaBase(%d)::Request(%08x)",iMediaId,&aReq)); |
2024 __KTRACE_OPT(KLOCDRV,Kern::Printf("DPrimaryMediaBase(%d)::Request(%08x)",iMediaId,&aReq)); |
2022 __KTRACE_OPT(KLOCDRV,Kern::Printf("this=%x, ReqId=%d, Pos=%lx, Len=%lx, remote thread %O",this,aReq.Id(),aReq.Pos(),aReq.Length(),aReq.RemoteThread())); |
2025 __KTRACE_OPT(KLOCDRV,Kern::Printf("this=%x, ReqId=%d, Pos=%lx, Len=%lx, remote thread %O",this,aReq.Id(),aReq.Pos(),aReq.Length(),aReq.RemoteThread())); |
2023 |
2026 |
2024 OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_REQUEST, "reqId=%d; length=0x%lx; position=0x%lx; remote thread=0x%x", (TInt) aReq.Id(), (TUint) aReq.Length(), (TUint) aReq.Pos(), (TUint) aReq.RemoteThread()); |
2027 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_REQUEST, "reqId=%d; remote thread=0x%x", (TInt) aReq.Id(), (TUint) aReq.RemoteThread()); |
|
2028 OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_REQUEST2, "length=%x:%x; position=%x:%x", (TUint) I64HIGH(aReq.Length()), (TUint) I64LOW(aReq.Length()), (TUint) I64HIGH(aReq.Pos()), (TUint) I64LOW(aReq.Pos())); |
2025 |
2029 |
2026 TInt reqId = aReq.Id(); |
2030 TInt reqId = aReq.Id(); |
2027 |
2031 |
2028 TInt r = HandleMediaNotPresent(aReq); |
2032 TInt r = HandleMediaNotPresent(aReq); |
2029 if (r != KErrNone) |
2033 if (r != KErrNone) |
2307 fragment.RemoteDesOffset() = aReq.RemoteDesOffset() + pos; |
2311 fragment.RemoteDesOffset() = aReq.RemoteDesOffset() + pos; |
2308 fragment.Pos() = aReq.Pos() + pos; |
2312 fragment.Pos() = aReq.Pos() + pos; |
2309 fragment.Flags() = aReq.Flags(); |
2313 fragment.Flags() = aReq.Flags(); |
2310 |
2314 |
2311 __KTRACE_OPT2(KLOCDPAGING,KLOCDRV,Kern::Printf("Send fragment (0x%08x) type(%d), length(0x%x), offset within original req(0x%x), pos in media(0x%lx)",&fragment,fragment.Id(), pinnedLen, pos, fragment.Pos())); |
2315 __KTRACE_OPT2(KLOCDPAGING,KLOCDRV,Kern::Printf("Send fragment (0x%08x) type(%d), length(0x%x), offset within original req(0x%x), pos in media(0x%lx)",&fragment,fragment.Id(), pinnedLen, pos, fragment.Pos())); |
2312 OstTraceDefExt5(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DPRIMARYMEDIABASE_PINFRAGMENTSENDRECEIVE3, "Send fragment 0x%08x; type=%d; length=0x%x; offset within original req=0x%x; position in media=0x%lx", (TUint) &fragment, (TInt) fragment.Id(), (TUint) pinnedLen, (TUint) pos, (TUint) fragment.Pos()); |
2316 OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DPRIMARYMEDIABASE_PINFRAGMENTSENDRECEIVE3, "Send fragment 0x%08x; type=%d; length=0x%x; offset within original req=0x%x", (TUint) &fragment, (TInt) fragment.Id(), (TUint) pinnedLen, (TUint) pos); |
|
2317 OstTraceDefExt3(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DPRIMARYMEDIABASE_PINFRAGMENTSENDRECEIVE4, "Send fragment 0x%08x; position in media=%x:%x",(TUint) &fragment, (TUint) I64HIGH(fragment.Pos()), (TUint) I64LOW(fragment.Pos())); |
2313 |
2318 |
2314 #ifdef BTRACE_PAGING_MEDIA |
2319 #ifdef BTRACE_PAGING_MEDIA |
2315 TInt buf[4]; |
2320 TInt buf[4]; |
2316 buf[0] = pinnedLen; // fragment length |
2321 buf[0] = pinnedLen; // fragment length |
2317 buf[1] = pos; // offset within original request |
2322 buf[1] = pos; // offset within original request |
2746 __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("DPrimaryMediaBase::DoRequest %d",m.Id())); |
2751 __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("DPrimaryMediaBase::DoRequest %d",m.Id())); |
2747 TLocDrv* pL=m.Drive(); |
2752 TLocDrv* pL=m.Drive(); |
2748 DMedia* media=pL->iMedia; |
2753 DMedia* media=pL->iMedia; |
2749 TInt r=KErrNone; |
2754 TInt r=KErrNone; |
2750 |
2755 |
2751 OstTraceDefExt3( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_DOREQUEST, "req Id=%d; length=0x%x; position=0x%x", (TInt) m.Id(), (TInt) m.Length(), (TInt) m.Pos()); |
2756 OstTraceDefExt5( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_DOREQUEST, "req Id=%d; length=%x:%x; position=%x:%x", (TInt) m.Id(), (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos()) ); |
2752 |
2757 |
2753 // re-open this drive's media driver ? |
2758 // re-open this drive's media driver ? |
2754 if (m.iValue == DLocalDrive::EForceMediaChange) |
2759 if (m.iValue == DLocalDrive::EForceMediaChange) |
2755 { |
2760 { |
2756 __ASSERT_DEBUG(((TUint) m.Pos()) == (TUint) KForceMediaChangeReOpenMediaDriver, LOCM_FAULT()); |
2761 __ASSERT_DEBUG(((TUint) m.Pos()) == (TUint) KForceMediaChangeReOpenMediaDriver, LOCM_FAULT()); |
4282 m.Length()=Int64(size); |
4287 m.Length()=Int64(size); |
4283 m.RemoteDes()=(TAny*)aBuffer; |
4288 m.RemoteDes()=(TAny*)aBuffer; |
4284 m.RemoteDesOffset()=0; // pre-aligned |
4289 m.RemoteDesOffset()=0; // pre-aligned |
4285 m.DriverFlags()=0; |
4290 m.DriverFlags()=0; |
4286 __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("ReqId=%d, Pos=0x%lx, Len=0x%lx, remote Des 0x%x",m.Id(),m.Pos(),m.Length(),m.RemoteDes())); |
4291 __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("ReqId=%d, Pos=0x%lx, Len=0x%lx, remote Des 0x%x",m.Id(),m.Pos(),m.Length(),m.RemoteDes())); |
4287 OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_READ2, "reqId=%d; position=0x%lx; length=0x%x; remote Des=0x%x", (TInt) m.Id(), (TUint) m.Pos(), (TUint) m.Length(), (TUint) m.RemoteDes()); |
4292 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_READ2, "reqId=%d; remote Des=0x%x", (TInt) m.Id(), (TUint) m.RemoteDes()); |
|
4293 OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_READ3, "length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); |
4288 |
4294 |
4289 __ASSERT_DEBUG(iPrimaryMedia->iBody, LOCM_FAULT()); |
4295 __ASSERT_DEBUG(iPrimaryMedia->iBody, LOCM_FAULT()); |
4290 TInt mediaChanges = iPrimaryMedia->iBody->iMediaChanges; |
4296 TInt mediaChanges = iPrimaryMedia->iBody->iMediaChanges; |
4291 |
4297 |
4292 SendToMainQueueDfcAndBlock(&m); // queues request, sets and opens client thread, queues dfc and blocks thread until request is completed |
4298 SendToMainQueueDfcAndBlock(&m); // queues request, sets and opens client thread, queues dfc and blocks thread until request is completed |
4400 m.Length()=Int64(size); |
4406 m.Length()=Int64(size); |
4401 m.RemoteDes()=(TAny*)aBuffer; |
4407 m.RemoteDes()=(TAny*)aBuffer; |
4402 m.RemoteDesOffset()=0; // pre-aligned |
4408 m.RemoteDesOffset()=0; // pre-aligned |
4403 m.DriverFlags()=0; |
4409 m.DriverFlags()=0; |
4404 __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("ReqId=%d, Pos=0x%lx, Len=0x%lx, remote Des 0x%x",m.Id(),m.Pos(),m.Length(),m.RemoteDes())); |
4410 __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("ReqId=%d, Pos=0x%lx, Len=0x%lx, remote Des 0x%x",m.Id(),m.Pos(),m.Length(),m.RemoteDes())); |
4405 OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_WRITE2, "reqId=%d; position=0x%lx; length=0x%lx; remote Des=0x%x", (TInt) m.Id(), (TUint) m.Pos(), (TUint) m.Length(), (TUint) m.RemoteDes()); |
4411 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_WRITE2, "reqId=%d; remote Des=0x%x", (TInt) m.Id(), (TUint) m.RemoteDes()); |
|
4412 OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_WRITE3, "length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); |
4406 |
4413 |
4407 __ASSERT_DEBUG(iPrimaryMedia->iBody, LOCM_FAULT()); |
4414 __ASSERT_DEBUG(iPrimaryMedia->iBody, LOCM_FAULT()); |
4408 TInt mediaChanges = iPrimaryMedia->iBody->iMediaChanges; |
4415 TInt mediaChanges = iPrimaryMedia->iBody->iMediaChanges; |
4409 |
4416 |
4410 SendToMainQueueDfcAndBlock(&m); // queues request, sets and opens client thread, queues dfc and blocks thread until request is completed |
4417 SendToMainQueueDfcAndBlock(&m); // queues request, sets and opens client thread, queues dfc and blocks thread until request is completed |
4495 m.Length() = Int64(size); |
4502 m.Length() = Int64(size); |
4496 m.RemoteDes() = NULL; |
4503 m.RemoteDes() = NULL; |
4497 m.RemoteDesOffset() = 0; // pre-aligned |
4504 m.RemoteDesOffset() = 0; // pre-aligned |
4498 m.DriverFlags()=0; |
4505 m.DriverFlags()=0; |
4499 __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("ReqId=%d, Pos=0x%lx, Len=0x%lx, remote Des 0x%x",m.Id(),m.Pos(),m.Length(),m.RemoteDes())); |
4506 __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("ReqId=%d, Pos=0x%lx, Len=0x%lx, remote Des 0x%x",m.Id(),m.Pos(),m.Length(),m.RemoteDes())); |
4500 OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_DELETENOTIFY2 , "reqId=%d; position=0x%lx; length=0x%lx; remote Des=0x%x", m.Id(), m.Pos(), m.Length(), (TUint) m.RemoteDes()); |
4507 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_DELETENOTIFY2 , "reqId=%d; remote Des=0x%x", m.Id(),(TUint) m.RemoteDes()); |
4501 |
4508 OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_DELETENOTIFY3 , "length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); |
4502 // send request aynchronously as we don't particularly care about the result |
4509 // send request aynchronously as we don't particularly care about the result |
4503 // and waiting would slow down the thread taking the page fault |
4510 // and waiting would slow down the thread taking the page fault |
4504 iPrimaryMedia->RequestCountInc(); |
4511 iPrimaryMedia->RequestCountInc(); |
4505 |
4512 |
4506 m.SendReceive(&iMainQ); // send request synchronously |
4513 m.SendReceive(&iMainQ); // send request synchronously |