kernel/eka/drivers/locmedia/locmedia.cpp
branchRCL_3
changeset 43 c1f20ce4abcf
parent 42 a179b74831c9
child 44 3e88ff8f41d5
equal deleted inserted replaced
42:a179b74831c9 43:c1f20ce4abcf
  1628 		case DMediaPagingDevice::ERomPageInRequest:
  1628 		case DMediaPagingDevice::ERomPageInRequest:
  1629 //          if the ROM was reported to LOCM then it will also need to be adjusted.... 
  1629 //          if the ROM was reported to LOCM then it will also need to be adjusted.... 
  1630 //		    Otherwise the media driver adjust it internally
  1630 //		    Otherwise the media driver adjust it internally
  1631 		case DMediaPagingDevice::ECodePageInRequest:
  1631 		case DMediaPagingDevice::ECodePageInRequest:
  1632 			__KTRACE_OPT(KLOCDPAGING,Kern::Printf("Adjusted Paging read request %lx@%lx",Length(),Pos()));
  1632 			__KTRACE_OPT(KLOCDPAGING,Kern::Printf("Adjusted Paging read request %lx@%lx",Length(),Pos()));
  1633 			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()));
  1633 			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()));
  1634 			if (Pos()+Length()>d.iPartitionLen)
  1634 			if (Pos()+Length()>d.iPartitionLen)
  1635 			    {
  1635 			    {
  1636 				r = KErrArgument;
  1636 				r = KErrArgument;
  1637 				break;
  1637 				break;
  1638 			    }
  1638 			    }
  2652 			OstTraceFunctionExit1( DPRIMARYMEDIABASE_HANDLEMSG_EXIT11, this );
  2652 			OstTraceFunctionExit1( DPRIMARYMEDIABASE_HANDLEMSG_EXIT11, this );
  2653 			return;
  2653 			return;
  2654 		}
  2654 		}
  2655 
  2655 
  2656 	__KTRACE_OPT(KFAIL,Kern::Printf("mdrq %d",m.Id()));
  2656 	__KTRACE_OPT(KFAIL,Kern::Printf("mdrq %d",m.Id()));
  2657 	__KTRACE_OPT(KLOCDRV,Kern::Printf("DPrimaryMediaBase(%d)::HandleMsg state %d req %d",iMediaId,iState,m.Id()));
  2657 	__KTRACE_OPT(KLOCDRV,Kern::Printf("DPrimaryMediaBase(%d)::HandleMsg(%08X) state %d req %d",iMediaId,&m,iState,m.Id()));
  2658 
  2658 
  2659 	OstTraceDefExt3( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_HANDLEMSG2, "iMediaId=%d; iState=%d; req Id=%d", iMediaId, iState, m.Id());
  2659 	OstTraceDefExt3( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_HANDLEMSG2, "iMediaId=%d; iState=%d; req Id=%d", iMediaId, iState, m.Id());
  2660 	
  2660 	
  2661 	// if media driver already open, pass request through
  2661 	// if media driver already open, pass request through
  2662 	if (iState==EReady)
  2662 	if (iState==EReady)
  2752 	Otherwise, one of the other system wide error codes.
  2752 	Otherwise, one of the other system wide error codes.
  2753 
  2753 
  2754 */
  2754 */
  2755 	{
  2755 	{
  2756 	OstTraceFunctionEntry1( DPRIMARYMEDIABASE_DOREQUEST_ENTRY, this );
  2756 	OstTraceFunctionEntry1( DPRIMARYMEDIABASE_DOREQUEST_ENTRY, this );
  2757 	__KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("DPrimaryMediaBase::DoRequest %d",m.Id()));
  2757 	__KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("DPrimaryMediaBase(%d)::DoRequest(%08X) req %d", iMediaId, &m, m.Id()));
  2758 	TLocDrv* pL=m.Drive();
  2758 	TLocDrv* pL=m.Drive();
  2759 	DMedia* media=pL->iMedia;
  2759 	DMedia* media=pL->iMedia;
  2760 	TInt r=KErrNone;
  2760 	TInt r=KErrNone;
  2761 	
  2761 	
  2762 	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()) );
  2762 	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()) );
  3136 		if (pM->iDriver)
  3136 		if (pM->iDriver)
  3137 			{
  3137 			{
  3138 #ifdef __DEMAND_PAGING__
  3138 #ifdef __DEMAND_PAGING__
  3139 			if (DataPagingMedia(this))
  3139 			if (DataPagingMedia(this))
  3140 				{
  3140 				{
  3141 				__KTRACE_OPT(KLOCDRV,Kern::Printf("DoPartitionInfoComplete(%d) Close Media Driver aborted for data paging media %08X", this));
  3141 				__KTRACE_OPT(KLOCDRV,Kern::Printf("DoPartitionInfoComplete() Close Media Driver aborted for data paging media %08X", this));
  3142 				OstTraceDef1(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DPRIMARYMEDIABASE_DOPARTITIONINFOCOMPLETE2, "Close Media Driver for data paging media 0x%08x", this);
  3142 				OstTraceDef1(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DPRIMARYMEDIABASE_DOPARTITIONINFOCOMPLETE2, "Close Media Driver for data paging media 0x%08x", this);
  3143 				}
  3143 				}
  3144 			else
  3144 			else
  3145 #endif
  3145 #endif
       
  3146 			if (iBody->iMediaExtension)
       
  3147 				{
       
  3148 				__KTRACE_OPT(KLOCDRV,Kern::Printf("DoPartitionInfoComplete() Close Media Driver aborted for extension media %08X", this));
       
  3149 				}
       
  3150 			else
  3146 				{
  3151 				{
  3147 				pM->iDriver->Close();
  3152 				pM->iDriver->Close();
  3148 				pM->iDriver=NULL;
  3153 				pM->iDriver=NULL;
  3149 				}
  3154 				}
  3150 			}
  3155 			}
  3297 
  3302 
  3298 void DPrimaryMediaBase::CompleteRequest(TLocDrvRequest& aMsg, TInt aResult)
  3303 void DPrimaryMediaBase::CompleteRequest(TLocDrvRequest& aMsg, TInt aResult)
  3299 	{
  3304 	{
  3300 	OstTraceFunctionEntry1( DPRIMARYMEDIABASE_COMPLETEREQUEST_ENTRY, this );
  3305 	OstTraceFunctionEntry1( DPRIMARYMEDIABASE_COMPLETEREQUEST_ENTRY, this );
  3301 	OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_COMPLETEREQUEST1, "TLocDrvRequest Object=0x%x; aResult=%d", (TUint) &aMsg, aResult);
  3306 	OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_COMPLETEREQUEST1, "TLocDrvRequest Object=0x%x; aResult=%d", (TUint) &aMsg, aResult);
       
  3307 
       
  3308 
       
  3309 	__KTRACE_OPT(KLOCDRV,Kern::Printf("DPrimaryMediaBase(%d)::CompleteRequest(%08x) r %d",iMediaId,&aMsg, aResult));
       
  3310 
  3302 	aMsg.Complete(aResult,EFalse);
  3311 	aMsg.Complete(aResult,EFalse);
  3303 	OstTraceFunctionExit1( DPRIMARYMEDIABASE_COMPLETEREQUEST_EXIT, this );
  3312 	OstTraceFunctionExit1( DPRIMARYMEDIABASE_COMPLETEREQUEST_EXIT, this );
  3304 	}
  3313 	}
  3305 
  3314 
  3306 EXPORT_C void DPrimaryMediaBase::RunDeferred()
  3315 EXPORT_C void DPrimaryMediaBase::RunDeferred()