kernel/eka/drivers/locmedia/locmedia.cpp
changeset 148 31ea0f8e3c99
parent 134 95847726fe57
child 176 af6ec97d9189
equal deleted inserted replaced
135:5e441a173c63 148:31ea0f8e3c99
    26 #ifdef __VC32__
    26 #ifdef __VC32__
    27 #pragma warning(disable: 4127) // disabling warning "conditional expression is constant"
    27 #pragma warning(disable: 4127) // disabling warning "conditional expression is constant"
    28 #endif
    28 #endif
    29 #include "locmediaTraces.h"
    29 #include "locmediaTraces.h"
    30 #endif
    30 #endif
    31 
       
    32 
    31 
    33 #if defined(_DEBUG) && defined(__DEMAND_PAGING__)
    32 #if defined(_DEBUG) && defined(__DEMAND_PAGING__)
    34 //#define __DEBUG_DEMAND_PAGING__
    33 //#define __DEBUG_DEMAND_PAGING__
    35 #endif
    34 #endif
    36 
    35 
   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