kerneltest/e32test/iic/iic_psl/iic_testpsl.cpp
author hgs
Fri, 09 Jul 2010 13:13:20 +0100
changeset 199 189ece41fa29
permissions -rw-r--r--
201027_05
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
199
189ece41fa29 201027_05
hgs
parents:
diff changeset
     1
// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
189ece41fa29 201027_05
hgs
parents:
diff changeset
     2
// All rights reserved.
189ece41fa29 201027_05
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
189ece41fa29 201027_05
hgs
parents:
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
189ece41fa29 201027_05
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
189ece41fa29 201027_05
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
189ece41fa29 201027_05
hgs
parents:
diff changeset
     7
//
189ece41fa29 201027_05
hgs
parents:
diff changeset
     8
// Initial Contributors:
189ece41fa29 201027_05
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
189ece41fa29 201027_05
hgs
parents:
diff changeset
    10
//
189ece41fa29 201027_05
hgs
parents:
diff changeset
    11
// Contributors:
189ece41fa29 201027_05
hgs
parents:
diff changeset
    12
//
189ece41fa29 201027_05
hgs
parents:
diff changeset
    13
// Description:
189ece41fa29 201027_05
hgs
parents:
diff changeset
    14
// e32test/iic/iic_psl/iic_testpsl.cpp
189ece41fa29 201027_05
hgs
parents:
diff changeset
    15
//
189ece41fa29 201027_05
hgs
parents:
diff changeset
    16
189ece41fa29 201027_05
hgs
parents:
diff changeset
    17
#include <drivers/iic.h>
189ece41fa29 201027_05
hgs
parents:
diff changeset
    18
#include "iic_testpsl.h"
189ece41fa29 201027_05
hgs
parents:
diff changeset
    19
189ece41fa29 201027_05
hgs
parents:
diff changeset
    20
// Global Controller pointer
189ece41fa29 201027_05
hgs
parents:
diff changeset
    21
extern DIicBusController*& gTheController;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    22
189ece41fa29 201027_05
hgs
parents:
diff changeset
    23
#ifndef IIC_SIMULATED_PSL
189ece41fa29 201027_05
hgs
parents:
diff changeset
    24
189ece41fa29 201027_05
hgs
parents:
diff changeset
    25
#error iic_testpsl.cpp being built when IIC_SIMULATED_PSL is not defined
189ece41fa29 201027_05
hgs
parents:
diff changeset
    26
189ece41fa29 201027_05
hgs
parents:
diff changeset
    27
#else
189ece41fa29 201027_05
hgs
parents:
diff changeset
    28
189ece41fa29 201027_05
hgs
parents:
diff changeset
    29
TVersion DIicPdd::VersionRequired()
189ece41fa29 201027_05
hgs
parents:
diff changeset
    30
	{
189ece41fa29 201027_05
hgs
parents:
diff changeset
    31
	const TInt KIicMajorVersionNumber=1;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    32
	const TInt KIicMinorVersionNumber=0;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    33
	const TInt KIicBuildVersionNumber=KE32BuildVersionNumber;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    34
	return TVersion(KIicMajorVersionNumber,KIicMinorVersionNumber,KIicBuildVersionNumber);
189ece41fa29 201027_05
hgs
parents:
diff changeset
    35
	}
189ece41fa29 201027_05
hgs
parents:
diff changeset
    36
189ece41fa29 201027_05
hgs
parents:
diff changeset
    37
/** Factory class constructor */
189ece41fa29 201027_05
hgs
parents:
diff changeset
    38
DIicPdd::DIicPdd()
189ece41fa29 201027_05
hgs
parents:
diff changeset
    39
	{
189ece41fa29 201027_05
hgs
parents:
diff changeset
    40
    iVersion = DIicPdd::VersionRequired();
189ece41fa29 201027_05
hgs
parents:
diff changeset
    41
	}
189ece41fa29 201027_05
hgs
parents:
diff changeset
    42
189ece41fa29 201027_05
hgs
parents:
diff changeset
    43
DIicPdd::~DIicPdd()
189ece41fa29 201027_05
hgs
parents:
diff changeset
    44
	{
189ece41fa29 201027_05
hgs
parents:
diff changeset
    45
	delete gTheController;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    46
	}
189ece41fa29 201027_05
hgs
parents:
diff changeset
    47
189ece41fa29 201027_05
hgs
parents:
diff changeset
    48
TInt DIicPdd::Install()
189ece41fa29 201027_05
hgs
parents:
diff changeset
    49
    {
189ece41fa29 201027_05
hgs
parents:
diff changeset
    50
    return(SetName(&KPddName));
189ece41fa29 201027_05
hgs
parents:
diff changeset
    51
    }
189ece41fa29 201027_05
hgs
parents:
diff changeset
    52
189ece41fa29 201027_05
hgs
parents:
diff changeset
    53
/**  Called by the kernel's device driver framework to create a Physical Channel. */
189ece41fa29 201027_05
hgs
parents:
diff changeset
    54
TInt DIicPdd::Create(DBase*& /*aChannel*/, TInt /*aUint*/, const TDesC8* /*anInfo*/, const TVersion& /*aVer*/)
189ece41fa29 201027_05
hgs
parents:
diff changeset
    55
    {
189ece41fa29 201027_05
hgs
parents:
diff changeset
    56
    return KErrNone;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    57
    }
189ece41fa29 201027_05
hgs
parents:
diff changeset
    58
189ece41fa29 201027_05
hgs
parents:
diff changeset
    59
/**  Called by the kernel's device driver framework to check if this PDD is suitable for use with a Logical Channel.*/
189ece41fa29 201027_05
hgs
parents:
diff changeset
    60
TInt DIicPdd::Validate(TInt /*aUnit*/, const TDesC8* /*anInfo*/, const TVersion& aVer)
189ece41fa29 201027_05
hgs
parents:
diff changeset
    61
    {
189ece41fa29 201027_05
hgs
parents:
diff changeset
    62
   	if (!Kern::QueryVersionSupported(DIicPdd::VersionRequired(),aVer))
189ece41fa29 201027_05
hgs
parents:
diff changeset
    63
		return(KErrNotSupported);
189ece41fa29 201027_05
hgs
parents:
diff changeset
    64
    return KErrNone;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    65
    }
189ece41fa29 201027_05
hgs
parents:
diff changeset
    66
189ece41fa29 201027_05
hgs
parents:
diff changeset
    67
/** Return the driver capabilities */
189ece41fa29 201027_05
hgs
parents:
diff changeset
    68
void DIicPdd::GetCaps(TDes8& aDes) const
189ece41fa29 201027_05
hgs
parents:
diff changeset
    69
    {
189ece41fa29 201027_05
hgs
parents:
diff changeset
    70
	// Create a capabilities object
189ece41fa29 201027_05
hgs
parents:
diff changeset
    71
	TCaps caps;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    72
	caps.iVersion = iVersion;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    73
	// Zero the buffer
189ece41fa29 201027_05
hgs
parents:
diff changeset
    74
	TInt maxLen = aDes.MaxLength();
189ece41fa29 201027_05
hgs
parents:
diff changeset
    75
	aDes.FillZ(maxLen);
189ece41fa29 201027_05
hgs
parents:
diff changeset
    76
	// Copy cpabilities
189ece41fa29 201027_05
hgs
parents:
diff changeset
    77
	TInt size=sizeof(caps);
189ece41fa29 201027_05
hgs
parents:
diff changeset
    78
	if(size>maxLen)
189ece41fa29 201027_05
hgs
parents:
diff changeset
    79
	   size=maxLen;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    80
	aDes.Copy((TUint8*)&caps,size);
189ece41fa29 201027_05
hgs
parents:
diff changeset
    81
    }
189ece41fa29 201027_05
hgs
parents:
diff changeset
    82
189ece41fa29 201027_05
hgs
parents:
diff changeset
    83
static DIicPdd* TheIicPdd;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    84
189ece41fa29 201027_05
hgs
parents:
diff changeset
    85
DECLARE_STANDARD_PDD()
189ece41fa29 201027_05
hgs
parents:
diff changeset
    86
	{
189ece41fa29 201027_05
hgs
parents:
diff changeset
    87
	gTheController = new DIicBusController;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    88
	if(!gTheController)
189ece41fa29 201027_05
hgs
parents:
diff changeset
    89
		return NULL;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    90
	TInt r = gTheController->Create();
189ece41fa29 201027_05
hgs
parents:
diff changeset
    91
	if(r == KErrNone)
189ece41fa29 201027_05
hgs
parents:
diff changeset
    92
		{
189ece41fa29 201027_05
hgs
parents:
diff changeset
    93
		TheIicPdd = new DIicPdd;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    94
		if(TheIicPdd)
189ece41fa29 201027_05
hgs
parents:
diff changeset
    95
			return TheIicPdd;
189ece41fa29 201027_05
hgs
parents:
diff changeset
    96
		}
189ece41fa29 201027_05
hgs
parents:
diff changeset
    97
	
189ece41fa29 201027_05
hgs
parents:
diff changeset
    98
	delete gTheController; 
189ece41fa29 201027_05
hgs
parents:
diff changeset
    99
	return NULL;
189ece41fa29 201027_05
hgs
parents:
diff changeset
   100
	}
189ece41fa29 201027_05
hgs
parents:
diff changeset
   101
189ece41fa29 201027_05
hgs
parents:
diff changeset
   102
#endif/*IIC_SIMULATED_PSL*/
189ece41fa29 201027_05
hgs
parents:
diff changeset
   103
189ece41fa29 201027_05
hgs
parents:
diff changeset
   104
189ece41fa29 201027_05
hgs
parents:
diff changeset
   105
189ece41fa29 201027_05
hgs
parents:
diff changeset
   106