456 r=m.ProcessMessageData(a1); |
456 r=m.ProcessMessageData(a1); |
457 __TRACE_TIMING(1); |
457 __TRACE_TIMING(1); |
458 if (r==KErrNone) |
458 if (r==KErrNone) |
459 { |
459 { |
460 __TRACE_TIMING(2); |
460 __TRACE_TIMING(2); |
461 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); |
461 OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ, "ERead iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m); |
|
462 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())); |
462 r=iDrive->Request(m); |
463 r=iDrive->Request(m); |
463 __TRACE_TIMING(3); |
464 __TRACE_TIMING(3); |
464 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 ); |
465 OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ_RETURN, "ERead Return iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m ); |
|
466 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())); |
465 } |
467 } |
466 m.CloseRemoteThread(); |
468 m.CloseRemoteThread(); |
467 break; |
469 break; |
468 } |
470 } |
469 case RLocalDrive::EControlWrite: |
471 case RLocalDrive::EControlWrite: |
470 { |
472 { |
471 m.Id()=EWrite; |
473 m.Id()=EWrite; |
472 r=m.ProcessMessageData(a1); |
474 r=m.ProcessMessageData(a1); |
473 if (r==KErrNone) |
475 if (r==KErrNone) |
474 { |
476 { |
475 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 ); |
477 OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE, "EWrite iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m ); |
|
478 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())); |
476 r=iDrive->Request(m); |
479 r=iDrive->Request(m); |
477 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 ); |
480 OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE_RETURN, "EWrite Return iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m ); |
|
481 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())); |
478 } |
482 } |
479 m.CloseRemoteThread(); |
483 m.CloseRemoteThread(); |
480 break; |
484 break; |
481 } |
485 } |
482 case RLocalDrive::EControlCaps: |
486 case RLocalDrive::EControlCaps: |
1410 EXPORT_C TInt TLocDrvRequest::CheckAndAdjustForPartition() |
1414 EXPORT_C TInt TLocDrvRequest::CheckAndAdjustForPartition() |
1411 { |
1415 { |
1412 OstTraceFunctionEntry1( TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION_ENTRY, this ); |
1416 OstTraceFunctionEntry1( TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION_ENTRY, this ); |
1413 TLocDrv& d=*Drive(); |
1417 TLocDrv& d=*Drive(); |
1414 __KTRACE_OPT(KLOCDRV,Kern::Printf("CheckAndAdjustForPartition drive %d partition len %lx",d.iDriveNumber,d.iPartitionLen)); |
1418 __KTRACE_OPT(KLOCDRV,Kern::Printf("CheckAndAdjustForPartition drive %d partition len %lx",d.iDriveNumber,d.iPartitionLen)); |
1415 OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION1, "iDriveNumber=%d; partition length=0x%lx", d.iDriveNumber, (TInt) d.iPartitionLen ); |
1419 OstTraceExt3( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION1, "iDriveNumber=%d; partition length=%x:%x", d.iDriveNumber, (TInt) I64HIGH (d.iPartitionLen), (TInt) I64LOW (d.iPartitionLen)); |
1416 Flags() |= EAdjusted; |
1420 Flags() |= EAdjusted; |
1417 TInt r; |
1421 TInt r; |
1418 switch (Id()) |
1422 switch (Id()) |
1419 { |
1423 { |
1420 case DLocalDrive::ECaps: |
1424 case DLocalDrive::ECaps: |
1431 r = KErrNone; |
1435 r = KErrNone; |
1432 break; |
1436 break; |
1433 } |
1437 } |
1434 case DLocalDrive::EEnlarge: |
1438 case DLocalDrive::EEnlarge: |
1435 __KTRACE_OPT(KLOCDRV,Kern::Printf("Enlarge request %lx",Length())); |
1439 __KTRACE_OPT(KLOCDRV,Kern::Printf("Enlarge request %lx",Length())); |
1436 OstTrace1( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION2, "Enlarge request=0x%lx", Length() ); |
1440 OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION2, "Enlarge request=%x:%x", (TInt) I64HIGH(Length()), (TInt) I64LOW(Length()) ); |
1437 if (Length()>KMaxTInt) |
1441 if (Length()>KMaxTInt) |
1438 r = KErrArgument; |
1442 r = KErrArgument; |
1439 else |
1443 else |
1440 r = KErrNone; |
1444 r = KErrNone; |
1441 break; |
1445 break; |
1442 case DLocalDrive::EReduce: |
1446 case DLocalDrive::EReduce: |
1443 __KTRACE_OPT(KLOCDRV,Kern::Printf("Reduce request %lx@%lx",Length(),Pos())); |
1447 __KTRACE_OPT(KLOCDRV,Kern::Printf("Reduce request %lx@%lx",Length(),Pos())); |
1444 OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION3, "Reduce request length=0x%lx; position=0x%lx", (TUint) Length(), (TUint) Pos() ); |
1448 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()) ); |
1445 if (Pos()+Length()>d.iPartitionLen) |
1449 if (Pos()+Length()>d.iPartitionLen) |
1446 r = KErrArgument; |
1450 r = KErrArgument; |
1447 else |
1451 else |
1448 r = KErrNone; |
1452 r = KErrNone; |
1449 break; |
1453 break; |
1450 case DLocalDrive::EFormat: |
1454 case DLocalDrive::EFormat: |
1451 __KTRACE_OPT(KLOCDRV,Kern::Printf("Format request %lx@%lx",Length(),Pos())); |
1455 __KTRACE_OPT(KLOCDRV,Kern::Printf("Format request %lx@%lx",Length(),Pos())); |
1452 OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION4, "Format request length=0x%lx; position=0x%lx", (TUint) Length(), (TUint) Pos() ); |
1456 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()) ); |
1453 if (!(DriverFlags() & RLocalDrive::ELocDrvWholeMedia)) |
1457 if (!(DriverFlags() & RLocalDrive::ELocDrvWholeMedia)) |
1454 { |
1458 { |
1455 if (Pos()>d.iPartitionLen) |
1459 if (Pos()>d.iPartitionLen) |
1456 { |
1460 { |
1457 Length()=0; |
1461 Length()=0; |
1475 case DMediaPagingDevice::ERomPageInRequest: |
1479 case DMediaPagingDevice::ERomPageInRequest: |
1476 // if the ROM was reported to LOCM then it will also need to be adjusted.... |
1480 // if the ROM was reported to LOCM then it will also need to be adjusted.... |
1477 // Otherwise the media driver adjust it internally |
1481 // Otherwise the media driver adjust it internally |
1478 case DMediaPagingDevice::ECodePageInRequest: |
1482 case DMediaPagingDevice::ECodePageInRequest: |
1479 __KTRACE_OPT(KLOCDPAGING,Kern::Printf("Adjusted Paging read request %lx@%lx",Length(),Pos())); |
1483 __KTRACE_OPT(KLOCDPAGING,Kern::Printf("Adjusted Paging read request %lx@%lx",Length(),Pos())); |
1480 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, TLOCDRVREQUESTCHECKANDADJUSTFORPARTITION5, "Adjusted Paging read request length=0x%lx; position=0x%lx", (TUint) Length(), (TUint) Pos()); |
1484 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())); |
1481 if (Pos()+Length()>d.iPartitionLen) |
1485 if (Pos()+Length()>d.iPartitionLen) |
1482 { |
1486 { |
1483 r = KErrArgument; |
1487 r = KErrArgument; |
1484 break; |
1488 break; |
1485 } |
1489 } |
1488 break; |
1492 break; |
1489 #endif |
1493 #endif |
1490 |
1494 |
1491 default: // read or write or fragment |
1495 default: // read or write or fragment |
1492 __KTRACE_OPT(KLOCDRV,Kern::Printf("R/W request %lx@%lx",Length(),Pos())); |
1496 __KTRACE_OPT(KLOCDRV,Kern::Printf("R/W request %lx@%lx",Length(),Pos())); |
1493 OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION6, "Read/Write request length=0x%x; position=0x%x", (TUint) Length(), (TUint) Pos() ); |
1497 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())); |
1494 if (DriverFlags() & RLocalDrive::ELocDrvWholeMedia) |
1498 if (DriverFlags() & RLocalDrive::ELocDrvWholeMedia) |
1495 { |
1499 { |
1496 if (d.iMedia && d.iMedia->iDriver && Pos()+Length() > d.iMedia->iDriver->iTotalSizeInBytes) |
1500 if (d.iMedia && d.iMedia->iDriver && Pos()+Length() > d.iMedia->iDriver->iTotalSizeInBytes) |
1497 { |
1501 { |
1498 r = KErrArgument; |
1502 r = KErrArgument; |
1793 OstTraceFunctionEntry1( DPRIMARYMEDIABASE_REQUEST_ENTRY, this ); |
1797 OstTraceFunctionEntry1( DPRIMARYMEDIABASE_REQUEST_ENTRY, this ); |
1794 |
1798 |
1795 __KTRACE_OPT(KLOCDRV,Kern::Printf("DPrimaryMediaBase(%d)::Request(%08x)",iMediaId,&aReq)); |
1799 __KTRACE_OPT(KLOCDRV,Kern::Printf("DPrimaryMediaBase(%d)::Request(%08x)",iMediaId,&aReq)); |
1796 __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())); |
1800 __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())); |
1797 |
1801 |
1798 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()); |
1802 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_REQUEST, "reqId=%d; remote thread=0x%x", (TInt) aReq.Id(), (TUint) aReq.RemoteThread()); |
|
1803 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())); |
1799 |
1804 |
1800 TInt reqId = aReq.Id(); |
1805 TInt reqId = aReq.Id(); |
1801 |
1806 |
1802 if (reqId == DLocalDrive::ECaps) |
1807 if (reqId == DLocalDrive::ECaps) |
1803 DefaultDriveCaps(*(TLocalDriveCapsV2*)aReq.RemoteDes()); // fill in stuff we know even if no media present |
1808 DefaultDriveCaps(*(TLocalDriveCapsV2*)aReq.RemoteDes()); // fill in stuff we know even if no media present |
2086 fragment.RemoteDesOffset() = aReq.RemoteDesOffset() + pos; |
2091 fragment.RemoteDesOffset() = aReq.RemoteDesOffset() + pos; |
2087 fragment.Pos() = aReq.Pos() + pos; |
2092 fragment.Pos() = aReq.Pos() + pos; |
2088 fragment.Flags() = aReq.Flags(); |
2093 fragment.Flags() = aReq.Flags(); |
2089 |
2094 |
2090 __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())); |
2095 __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())); |
2091 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()); |
2096 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); |
|
2097 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())); |
2092 |
2098 |
2093 #ifdef BTRACE_PAGING_MEDIA |
2099 #ifdef BTRACE_PAGING_MEDIA |
2094 TInt buf[4]; |
2100 TInt buf[4]; |
2095 buf[0] = pinnedLen; // fragment length |
2101 buf[0] = pinnedLen; // fragment length |
2096 buf[1] = pos; // offset within original request |
2102 buf[1] = pos; // offset within original request |
2501 __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("DPrimaryMediaBase::DoRequest %d",m.Id())); |
2507 __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("DPrimaryMediaBase::DoRequest %d",m.Id())); |
2502 TLocDrv* pL=m.Drive(); |
2508 TLocDrv* pL=m.Drive(); |
2503 DMedia* media=pL->iMedia; |
2509 DMedia* media=pL->iMedia; |
2504 TInt r=KErrNone; |
2510 TInt r=KErrNone; |
2505 |
2511 |
2506 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()); |
2512 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()) ); |
2507 |
2513 |
2508 // re-open this drive's media driver ? |
2514 // re-open this drive's media driver ? |
2509 if (m.iValue == DLocalDrive::EForceMediaChange) |
2515 if (m.iValue == DLocalDrive::EForceMediaChange) |
2510 { |
2516 { |
2511 __ASSERT_DEBUG(((TUint) m.Pos()) == (TUint) KForceMediaChangeReOpenMediaDriver, LOCM_FAULT()); |
2517 __ASSERT_DEBUG(((TUint) m.Pos()) == (TUint) KForceMediaChangeReOpenMediaDriver, LOCM_FAULT()); |
4008 m.DriverFlags() = 0; |
4014 m.DriverFlags() = 0; |
4009 if (aPhysAddr) |
4015 if (aPhysAddr) |
4010 m.Flags() |= TLocDrvRequest::EPhysAddrOnly; |
4016 m.Flags() |= TLocDrvRequest::EPhysAddrOnly; |
4011 |
4017 |
4012 __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())); |
4018 __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())); |
4013 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()); |
4019 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_READ2, "reqId=%d; remote Des=0x%x", (TInt) m.Id(), (TUint) m.RemoteDes()); |
|
4020 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())); |
4014 |
4021 |
4015 __ASSERT_DEBUG(iPrimaryMedia->iBody, LOCM_FAULT()); |
4022 __ASSERT_DEBUG(iPrimaryMedia->iBody, LOCM_FAULT()); |
4016 TInt mediaChanges = iPrimaryMedia->iBody->iMediaChanges; |
4023 TInt mediaChanges = iPrimaryMedia->iBody->iMediaChanges; |
4017 |
4024 |
4018 SendToMainQueueDfcAndBlock(&m); // queues request, sets and opens client thread, queues dfc and blocks thread until request is completed |
4025 SendToMainQueueDfcAndBlock(&m); // queues request, sets and opens client thread, queues dfc and blocks thread until request is completed |
4141 m.RemoteDes()=(TAny*)aBuffer; |
4148 m.RemoteDes()=(TAny*)aBuffer; |
4142 m.RemoteDesOffset()=0; // pre-aligned |
4149 m.RemoteDesOffset()=0; // pre-aligned |
4143 m.DriverFlags() = 0; |
4150 m.DriverFlags() = 0; |
4144 |
4151 |
4145 __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())); |
4152 __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())); |
4146 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()); |
4153 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_WRITE2, "reqId=%d; remote Des=0x%x", (TInt) m.Id(), (TUint) m.RemoteDes()); |
|
4154 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())); |
4147 |
4155 |
4148 __ASSERT_DEBUG(iPrimaryMedia->iBody, LOCM_FAULT()); |
4156 __ASSERT_DEBUG(iPrimaryMedia->iBody, LOCM_FAULT()); |
4149 TInt mediaChanges = iPrimaryMedia->iBody->iMediaChanges; |
4157 TInt mediaChanges = iPrimaryMedia->iBody->iMediaChanges; |
4150 |
4158 |
4151 SendToMainQueueDfcAndBlock(&m); // queues request, sets and opens client thread, queues dfc and blocks thread until request is completed |
4159 SendToMainQueueDfcAndBlock(&m); // queues request, sets and opens client thread, queues dfc and blocks thread until request is completed |
4236 m.Length() = Int64(size); |
4244 m.Length() = Int64(size); |
4237 m.RemoteDes() = NULL; |
4245 m.RemoteDes() = NULL; |
4238 m.RemoteDesOffset() = 0; // pre-aligned |
4246 m.RemoteDesOffset() = 0; // pre-aligned |
4239 m.DriverFlags()=0; |
4247 m.DriverFlags()=0; |
4240 __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())); |
4248 __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())); |
4241 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()); |
4249 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_DELETENOTIFY2 , "reqId=%d; remote Des=0x%x", m.Id(),(TUint) m.RemoteDes()); |
4242 |
4250 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())); |
4243 // send request aynchronously as we don't particularly care about the result |
4251 // send request aynchronously as we don't particularly care about the result |
4244 // and waiting would slow down the thread taking the page fault |
4252 // and waiting would slow down the thread taking the page fault |
4245 iPrimaryMedia->RequestCountInc(); |
4253 iPrimaryMedia->RequestCountInc(); |
4246 |
4254 |
4247 m.SendReceive(&iMainQ); // send request synchronously |
4255 m.SendReceive(&iMainQ); // send request synchronously |