2876 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DPRIMARYMEDIABASE_DOREQUEST4, "Media driver cannot service or defer PageIn request 0x%08x or serviced it synchronously; retval=%d",(TUint) &m, s); |
2876 OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DPRIMARYMEDIABASE_DOREQUEST4, "Media driver cannot service or defer PageIn request 0x%08x or serviced it synchronously; retval=%d",(TUint) &m, s); |
2877 iBody->iPagingDevice->CompleteRequest(&m, s); |
2877 iBody->iPagingDevice->CompleteRequest(&m, s); |
2878 } |
2878 } |
2879 else |
2879 else |
2880 #endif |
2880 #endif |
2881 |
2881 { |
2882 CompleteRequest(m, s); |
2882 CompleteRequest(m, s); |
2883 OstTraceDefExt3( OST_TRACE_CATEGORY_RND, TRACE_INTERNALS, DPRIMARYMEDIABASE_DOREQUEST_RETURN, "Return req Id=%d; Remote Thread=0x%x; retval=%d", (TInt) m.Id(), (TUint) m.RemoteThread(), (TInt) s); |
2883 OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_INTERNALS, DPRIMARYMEDIABASE_DOREQUEST_RETURN, "Return Remote Thread=0x%x; retval=%d", (TUint) m.RemoteThread(), (TInt) s); |
|
2884 } |
2884 } |
2885 } |
2885 |
2886 |
2886 iCurrentReq=NULL; |
2887 iCurrentReq=NULL; |
2887 OstTraceFunctionExitExt( DPRIMARYMEDIABASE_DOREQUEST_EXIT3, this, r ); |
2888 OstTraceFunctionExitExt( DPRIMARYMEDIABASE_DOREQUEST_EXIT3, this, r ); |
2888 return r; |
2889 return r; |
4954 */ |
4955 */ |
4955 EXPORT_C TInt LocDrv::RegisterMediaDevice(TMediaDevice aDevice, TInt aDriveCount, const TInt* aDriveList, DPrimaryMediaBase* aPrimaryMedia, TInt aNumMedia, const TDesC& aName) |
4956 EXPORT_C TInt LocDrv::RegisterMediaDevice(TMediaDevice aDevice, TInt aDriveCount, const TInt* aDriveList, DPrimaryMediaBase* aPrimaryMedia, TInt aNumMedia, const TDesC& aName) |
4956 { |
4957 { |
4957 OstTraceFunctionEntry0( LOCDRV_REGISTERMEDIADEVICE_ENTRY ); |
4958 OstTraceFunctionEntry0( LOCDRV_REGISTERMEDIADEVICE_ENTRY ); |
4958 // Create TLocDrv / DMedia objects to handle a media device |
4959 // Create TLocDrv / DMedia objects to handle a media device |
4959 __KTRACE_OPT(KBOOT,Kern::Printf("RegisterMediaDevice %lS dev=%1d #drives=%d 1st=%d PM=%08x #media=%d",&aName,aDevice,aDriveCount,*aDriveList,aPrimaryMedia,aNumMedia)); |
4960 __KTRACE_OPT(KBOOT,Kern::Printf("RegisterMediaDevice %S dev=%1d #drives=%d 1st=%d PM=%08x #media=%d",&aName,aDevice,aDriveCount,*aDriveList,aPrimaryMedia,aNumMedia)); |
4960 OstTraceExt5( TRACE_INTERNALS, LOCDRV_REGISTERMEDIADEVICE1, "aDevice=%d; aDriveCount=%d; aDriveList=%d; aPrimaryMedia=0x%08x; aNumMedia=%d", (TInt) aDevice, (TInt) aDriveCount, (TInt) *aDriveList, (TUint) aPrimaryMedia, (TInt) aNumMedia ); |
4961 OstTraceExt5( TRACE_INTERNALS, LOCDRV_REGISTERMEDIADEVICE1, "aDevice=%d; aDriveCount=%d; aDriveList=%d; aPrimaryMedia=0x%08x; aNumMedia=%d", (TInt) aDevice, (TInt) aDriveCount, (TInt) *aDriveList, (TUint) aPrimaryMedia, (TInt) aNumMedia ); |
4961 |
4962 |
4962 if (UsedMedia+aNumMedia>KMaxLocalDrives) |
4963 if (UsedMedia+aNumMedia>KMaxLocalDrives) |
4963 { |
4964 { |
4964 OstTrace0(TRACE_FLOW, LOCDRV_REGISTERMEDIADEVICE_EXIT1, "< KErrInUse"); |
4965 OstTrace0(TRACE_FLOW, LOCDRV_REGISTERMEDIADEVICE_EXIT1, "< KErrInUse"); |
5329 for (i=0; i<KMaxLocalDrives; ++i) |
5330 for (i=0; i<KMaxLocalDrives; ++i) |
5330 { |
5331 { |
5331 drive = TheDrives[i]; |
5332 drive = TheDrives[i]; |
5332 if(drive && drive->iPrimaryMedia == aPrimaryMedia) |
5333 if(drive && drive->iPrimaryMedia == aPrimaryMedia) |
5333 { |
5334 { |
5334 __KTRACE_OPT2(KBOOT,KLOCDPAGING, Kern::Printf("RegisterPagingDevice: local drive %d, partition type %x base %lx size %lx name %lS", i, drive->iPartitionType, drive->iPartitionBaseAddr, drive->iPartitionLen, DriveNames[i] ? DriveNames[i] : &KNullDesC8)); |
5335 __KTRACE_OPT2(KBOOT,KLOCDPAGING, Kern::Printf("RegisterPagingDevice: local drive %d, partition type %x base %lx size %lx name %S", i, drive->iPartitionType, drive->iPartitionBaseAddr, drive->iPartitionLen, DriveNames[i] ? DriveNames[i] : &KNullDesC8)); |
5335 // ROM partition ? |
5336 // ROM partition ? |
5336 if ((romPagingDriveNumber == KErrNotFound) && |
5337 if ((romPagingDriveNumber == KErrNotFound) && |
5337 (drive->iPartitionType == KPartitionTypeROM) && |
5338 (drive->iPartitionType == KPartitionTypeROM) && |
5338 (aPagingType & DPagingDevice::ERom)) |
5339 (aPagingType & DPagingDevice::ERom)) |
5339 { |
5340 { |
5386 pagingDevice->iDataPagingDriveNumber = dataPagingDriveNumber; |
5387 pagingDevice->iDataPagingDriveNumber = dataPagingDriveNumber; |
5387 pagingDevice->iSwapSize = swapSize; |
5388 pagingDevice->iSwapSize = swapSize; |
5388 |
5389 |
5389 #ifdef __DEBUG_DEMAND_PAGING__ |
5390 #ifdef __DEBUG_DEMAND_PAGING__ |
5390 Kern::Printf("PagingDevice :"); |
5391 Kern::Printf("PagingDevice :"); |
5391 Kern::Printf("Name %lS", firstLocalDriveNumber >= 0 && DriveNames[firstLocalDriveNumber] ? DriveNames[firstLocalDriveNumber] : &KNullDesC8); |
5392 Kern::Printf("Name %S", firstLocalDriveNumber >= 0 && DriveNames[firstLocalDriveNumber] ? DriveNames[firstLocalDriveNumber] : &KNullDesC8); |
5392 Kern::Printf("iType 0x%x", pagingDevice->iType); |
5393 Kern::Printf("iType 0x%x", pagingDevice->iType); |
5393 Kern::Printf("iReadUnitShift 0x%x", pagingDevice->iReadUnitShift); |
5394 Kern::Printf("iReadUnitShift 0x%x", pagingDevice->iReadUnitShift); |
5394 Kern::Printf("iFirstLocalDriveNumber 0x%x", pagingDevice->iFirstLocalDriveNumber); |
5395 Kern::Printf("iFirstLocalDriveNumber 0x%x", pagingDevice->iFirstLocalDriveNumber); |
5395 Kern::Printf("iRomPagingDriveNumber 0x%x", pagingDevice->iRomPagingDriveNumber); |
5396 Kern::Printf("iRomPagingDriveNumber 0x%x", pagingDevice->iRomPagingDriveNumber); |
5396 Kern::Printf("iDataPagingDriveNumber 0x%x", pagingDevice->iDataPagingDriveNumber); |
5397 Kern::Printf("iDataPagingDriveNumber 0x%x", pagingDevice->iDataPagingDriveNumber); |
5610 if (pM->IsRemovableDevice(sockNum)) |
5611 if (pM->IsRemovableDevice(sockNum)) |
5611 { |
5612 { |
5612 if (!(sock_mask & (1<<sockNum))) |
5613 if (!(sock_mask & (1<<sockNum))) |
5613 { |
5614 { |
5614 info.iSocketName[sockNum]=*DriveNames[i]; |
5615 info.iSocketName[sockNum]=*DriveNames[i]; |
5615 __KTRACE_OPT(KLOCDRV,Kern::Printf("Socket %d device %d name %lS", sockNum, pM->iDevice, DriveNames[i])); |
5616 __KTRACE_OPT(KLOCDRV,Kern::Printf("Socket %d device %d name %S", sockNum, pM->iDevice, DriveNames[i])); |
5616 OstTraceExt2( TRACE_INTERNALS, GETDRIVEINFO1, "Socket=%d; device=%d", sockNum, (TUint) pM->iDevice ); |
5617 OstTraceExt2( TRACE_INTERNALS, GETDRIVEINFO1, "Socket=%d; device=%d", sockNum, (TUint) pM->iDevice ); |
5617 if ( (sockNum + 1) > sockets ) |
5618 if ( (sockNum + 1) > sockets ) |
5618 sockets = sockNum + 1; |
5619 sockets = sockNum + 1; |
5619 } |
5620 } |
5620 sock_mask |= (1<<sockNum); |
5621 sock_mask |= (1<<sockNum); |
5621 } |
5622 } |
5622 info.iDriveName[i]=*DriveNames[i]; |
5623 info.iDriveName[i]=*DriveNames[i]; |
5623 __KTRACE_OPT(KLOCDRV,Kern::Printf("Drive %d device %d name %lS",i,pM->iDevice,DriveNames[i])); |
5624 __KTRACE_OPT(KLOCDRV,Kern::Printf("Drive %d device %d name %S",i,pM->iDevice,DriveNames[i])); |
5624 OstTraceExt2( TRACE_INTERNALS, GETDRIVEINFO2, "Drive=%d; device=%d", i, (TUint) pM->iDevice ); |
5625 OstTraceExt2( TRACE_INTERNALS, GETDRIVEINFO2, "Drive=%d; device=%d", i, (TUint) pM->iDevice ); |
5625 |
5626 |
5626 info.iRegisteredDriveBitmask |= (0x01 << i); |
5627 info.iRegisteredDriveBitmask |= (0x01 << i); |
5627 } |
5628 } |
5628 } |
5629 } |