52 */ |
52 */ |
53 { |
53 { |
54 OstTraceFunctionEntry1( DUP1_DMMCSESSION_DMMCSESSION_ENTRY, this ); |
54 OstTraceFunctionEntry1( DUP1_DMMCSESSION_DMMCSESSION_ENTRY, this ); |
55 // Ensure that the stack isn't currently running in another thread's context, otherwise this session won't be |
55 // Ensure that the stack isn't currently running in another thread's context, otherwise this session won't be |
56 // removed from the stack's workset until some time later - by which time the session will have been deleted |
56 // removed from the stack's workset until some time later - by which time the session will have been deleted |
57 __ASSERT_ALWAYS(!iStackP->StackRunning(), DMMCSocket::Panic(DMMCSocket::EMMCNotInDfcContext)); |
57 __ASSERT_ALWAYS(!StackP()->StackRunning(), DMMCSocket::Panic(DMMCSocket::EMMCNotInDfcContext)); |
58 Abort(); |
58 Abort(); |
59 UnlockStack(); |
59 UnlockStack(); |
60 OstTraceFunctionExit1( DUP1_DMMCSESSION_DMMCSESSION_EXIT, this ); |
60 OstTraceFunctionExit1( DUP1_DMMCSESSION_DMMCSESSION_EXIT, this ); |
61 } |
61 } |
62 |
62 |
390 iDoAbort = iDoStop = iDoComplete = EFalse; |
390 iDoAbort = iDoStop = iDoComplete = EFalse; |
391 iBlockOn = 0; |
391 iBlockOn = 0; |
392 |
392 |
393 ResetCommandStack(); |
393 ResetCommandStack(); |
394 |
394 |
395 iMachine.Setup(f, iStackP); |
395 iMachine.Setup(f, StackP()); |
396 OstTraceFunctionExit1( DMMCSESSION_SETUPCIMCONTROL_EXIT, this ); |
396 OstTraceFunctionExit1( DMMCSESSION_SETUPCIMCONTROL_EXIT, this ); |
397 } |
397 } |
398 |
398 |
399 EXPORT_C TMMCSMSTFunc DMMCSession::GetMacro(TInt aSessNum) const |
399 EXPORT_C TMMCSMSTFunc DMMCSession::GetMacro(TInt aSessNum) const |
400 { |
400 { |
438 */ |
438 */ |
439 { |
439 { |
440 OstTraceFunctionEntry1( DMMCSESSION_ENGAGE_ENTRY, this ); |
440 OstTraceFunctionEntry1( DMMCSESSION_ENGAGE_ENTRY, this ); |
441 __KTRACE_OPT(KPBUS1,Kern::Printf(">ms:eng")); |
441 __KTRACE_OPT(KPBUS1,Kern::Printf(">ms:eng")); |
442 |
442 |
443 if( iStackP == NULL ) |
443 if( StackP() == NULL ) |
444 { |
444 { |
445 OstTraceFunctionExitExt( DMMCSESSION_ENGAGE_EXIT, this, KErrBadDriver ); |
445 OstTraceFunctionExitExt( DMMCSESSION_ENGAGE_EXIT, this, KErrBadDriver ); |
446 return KErrBadDriver; |
446 return KErrBadDriver; |
447 } |
447 } |
448 |
448 |
449 if( iStackP->iLockingSessionP != NULL && iStackP->iLockingSessionP != this && |
449 if( StackP()->iLockingSessionP != NULL && StackP()->iLockingSessionP != this && |
450 (iStackP->EffectiveModes(iConfig) & KMMCModeEnqueIfLocked) == 0 ) |
450 (StackP()->EffectiveModes(iConfig) & KMMCModeEnqueIfLocked) == 0 ) |
451 { |
451 { |
452 OstTraceFunctionExitExt( DUP1_DMMCSESSION_ENGAGE_EXIT, this, KErrServerBusy ); |
452 OstTraceFunctionExitExt( DUP1_DMMCSESSION_ENGAGE_EXIT, this, KErrServerBusy ); |
453 return KErrServerBusy; |
453 return KErrServerBusy; |
454 } |
454 } |
455 |
455 |
456 const TMediaState doorState=iStackP->MMCSocket()->iMediaChange->MediaState(); |
456 const TMediaState doorState=StackP()->MMCSocket()->iMediaChange->MediaState(); |
457 |
457 |
458 __KTRACE_OPT(KPBUS1,Kern::Printf(">MMC:Eng ds = %x", doorState)); |
458 __KTRACE_OPT(KPBUS1,Kern::Printf(">MMC:Eng ds = %x", doorState)); |
459 OstTrace1( TRACE_INTERNALS, DMMCSESSION_ENGAGE, "doorState = 0x%x", doorState); |
459 OstTrace1( TRACE_INTERNALS, DMMCSESSION_ENGAGE, "doorState = 0x%x", doorState); |
460 |
460 |
461 if (doorState == EDoorOpen) |
461 if (doorState == EDoorOpen) |
468 // (e.g. ECIMLockUnlock, ECIMInitStackAfterUnlock) can change it |
468 // (e.g. ECIMLockUnlock, ECIMInitStackAfterUnlock) can change it |
469 SaveCard(); |
469 SaveCard(); |
470 |
470 |
471 SetupCIMControl(iSessionID); |
471 SetupCIMControl(iSessionID); |
472 |
472 |
473 iStackP->Add(this); |
473 StackP()->Add(this); |
474 |
474 |
475 __KTRACE_OPT(KPBUS1,Kern::Printf("<ms:eng")); |
475 __KTRACE_OPT(KPBUS1,Kern::Printf("<ms:eng")); |
476 OstTraceFunctionExitExt( DUP3_DMMCSESSION_ENGAGE_EXIT, this, KErrNone ); |
476 OstTraceFunctionExitExt( DUP3_DMMCSESSION_ENGAGE_EXIT, this, KErrNone ); |
477 return KErrNone; |
477 return KErrNone; |
478 } |
478 } |