Fix for bug 2283 (RVCT 4.0 support is missing from PDK 3.0.h)
Have multiple extension sections in the bld.inf, one for each version
of the compiler. The RVCT version building the tools will build the
runtime libraries for its version, but make sure we extract all the other
versions from zip archives. Also add the archive for RVCT4.
// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of the License "Eclipse Public License v1.0"
// which accompanies this distribution, and is available
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
//
// Initial Contributors:
// Nokia Corporation - initial contribution.
//
// Contributors:
//
// Description:
// e32\include\drivers\pccd_ifc.h
//
//
/**
@file
@publishedPartner
@released
*/
#ifndef __PCCD_IFC_H__
#define __PCCD_IFC_H__
#include <pccard.h>
#include <drivers/locmedia.h>
#include <platform.h>
#include <assp.h>
#define __PCCD_MACHINE_CODED__
const TInt KMemConfigByteAccess=1;
class PccdIfc
{
public:
static DPcCardSocket* NewSocket(TInt aSocketNum);
static DPcCardMediaChange* NewMediaChange(TInt aMcId);
static DPcCardVcc* NewVcc(TInt aVccNum, TInt aMcId);
static DPccdChunkBase* NewChunk(TPccdMemType aType);
};
/**
A base class that defines a Pc Card controller interface.
@publishedPartner
@released
*/
class TPcCardControllerInterface
{
public:
/**
Allocate any resources. Only done once on kernel initialization so don't worry about cleanup if it fails.
@return KErrNone if successful in allocating memory for the Pc Card. otherwise return KErrNoMemory.
*/
IMPORT_C TInt Create();
public:
/**
Gets the physical address of Pc Card memory.
@param aCard A Pc Card whose physical address to be returned.
@param aType Memory type of the Pc Card whose physical address to be returned.
@return Physical address of Pc Card for the given memory type.
@see TPccdMemType
*/
virtual TUint32 MemPhysicalAddress(TInt aCard,TPccdMemType aType)=0;
/**
Sets the Pc Card controller h/w.
Initialise the Pc Card Controller h/w.
@return KErrNone if Pc Card contorller h/w is initialised.
*/
virtual TInt Init()=0;
/**
Gets the current settings for the Pc Card.
@param aCard A Pc Card whose signals to be indicated.
@param anInd Has current settings for the PC Card indicator signals into 'anInd' for the specified aCard.
@return KErrNone if successful.
@see TSocketIndicators.
*/
virtual TInt Indicators(TInt aCard,TSocketIndicators &anInd)=0;
/**
Enables the Pc Card Interface.
@param aCard A Pc Card whose interface to be enabled.
*/
virtual void InterfaceOn(TInt aCard)=0;
/**
Disables the Pc Card Interface.
@param aCard A PC Card whose interface to be disabled.
*/
virtual void InterfaceOff(TInt aCard)=0;
/**
To Apply/remove h/w reset.
@param aCard A Pc Card which has to be h/w reseted.
@param anAssert To make the h/w reset guarented.
*/
virtual void CardReset(TInt aCard,TBool anAssert)=0;
/**
Gets Pc Card Rdy/Bsy status.
@param aCard Pc Card whose status to be returned.
@return True if the card is ready.
*/
virtual TBool CardReady(TInt aCard)=0;
/**
Configure memory configuration options.
@param aCard Pc Card whose memory to be configured.
@param aMemType Type of memory to be configured.
@param aSpeed Access speed of the memory involved.
@param aWaitSig This WaitSig should never checked since repeated accesses to MECR seem to crash the system
in mysterious ways.
@param aFlag To modify the memory configuration attributes by ORing with memory chunk setup flags pKPccdBusWidth32 and KPccdDisableWaitStateCntrl ,
@return KErrNone if successful, KErrNotSupported if unsuccessful.
@see TPccdMemType.
@see TPccdAccessSpeed.
*/
virtual TInt MemConfig(TInt aCard,TPccdMemType aMemType,TPccdAccessSpeed aSpeed,TBool aWaitSig,TUint aFlag)=0;
/**
Gets the information of the socket.
@param aSocket Socket whose information to be retrieved.
@param anInfo Gets the socket information in anInfo.
@see TPcCardSocketInfo.
*/
virtual void SocketInfo(TSocket aSocket,TPcCardSocketInfo& anInfo)=0;
/**
Checks the specified socket contains a card (and the media door for the socket is closed).
@param anInfo Has the socket information.
@param aCard Socket for which a card presence is checked.
@return True if the socket contians a card (and the media door for the socket is closed).
*/
virtual TBool CardIsPresent(TInt aCard)=0;
/**
Gets the changed state of the specified media (ex,removed,inserted..)
@param aMediaChangeId stores the state of the specified media change
@return Mediastate when change to media takes place.
@see TMediaState.
*/
virtual TMediaState MediaState(TInt aMediaChangeId)=0;
// Pc Card PSUs
/**
Sets Vcc information for the Pc Card.
@param aPsu Power supply unit value supplied for the Pc Card.
@param aninfo Object of TPBusPsuInfo type passed to store the PSU information.
@see TPBusPsuInfo.
*/
virtual void VccInfo(TInt aPsu,TPBusPsuInfo &aninfo)=0;
/**
Sets Pc Card Vcc power supply OFF.
@param aPsu Power supply unit for the Pc Card.
*/
virtual void VccOff(TInt aPsu)=0;
/**
Sets Pc Card Vcc power supply ON.
@param aPsu Power supply unit for the Pc Card.
@param aVoltageSetting A voltage to power on Pc Card which is defined in enum TPccdSocketVcc.
@see TPccdSocketVcc
*/
virtual void VccOnFull(TInt aPsu,TPccdSocketVcc aVoltageSetting)=0;
/**
Sets Pc Card Vcc power supply ON with current limit.
@param aPsu Power supply unit for the Pc Card.
@param aVoltageSetting A voltage of current limt to power on Pc Card which is defined in enum TPccdSocketVcc.
@see TPccdSocketVcc
*/
virtual void VccOnCurrentLimit(TInt aPsu,TPccdSocketVcc aVoltageSetting)=0;
/**
Sets Pc Card Vcc level (normally ADC reading). Return KErrNotReady if the voltage check isn't complete.
@param aPsu Power supply unit for the Pc Card.
*/
virtual TInt VccInMilliVolts(TInt aPsu)=0;
/*
Gets Pc Card Vcc voltage status.
An alternative to using ADC, when voltage checking is performed using a comparator arrangement.
@param aPsu Power supply unit for the Pc Card.
@return KErrNone if successful, KErrGeneral if failed.
*/
virtual TInt VccVoltCheck(TInt aPsu)=0;
// interrupts
/**
Gets a interrupt Id for Pc card.
@param aCard Pc Card to which interrupts Id is requested.
@return InterruptId of the Pc Card.
*/
virtual TInt IntIdIReq(TInt aCard)=0;
/**
Gets ready interrupt Id when ready signal is asserted on Pc Card.
@param aCard Pc Card which is interrupted through a ready signal.
@return Ready interrupt Id for the Pc Card.
*/
virtual TInt IntIdRdyC(TInt aCard)=0;
/**
Gets interrupt status Id when status of Pc Card changes.
@param aCard Pc Card which is interrupted through a change in state.
@return Interrupt status Id, for the Pc Card.
*/
virtual TInt IntIdStsC(TInt aCard)=0;
/**
Gets Mediachange interrupt Id when media changes, i,e when media door is Opend/Closed.
@param aMediaChangeId An media chagne Id which tells whether media door is closed / Opened.
@return Media change interrupt id, when a change in media takes place.
*/
virtual TInt IntIdMediaChange(TInt aMediaChangeId)=0;
/**
Acknowledge the media change interrupt.
@param aMediaChangeId An media change Id which tells whether a door is closed / Opened.
*/
virtual void ClearMediaChange(TInt aMediaChangeId)=0;
// machine configuration
/**
@param aSocket the socket ID.
@param aMediaDeviceInfo , Media information of the scoket which has to be checked.
@return True if Pc Card is present in the secified socket.
*/
virtual TBool IsPcCardSocket(TInt aSocket,SMediaDeviceInfo& aMediaDeviceInfo)=0;
/**
Gets information about from which socket does the media change took place.
@param aSocket the socket ID.
@return socket from which socket does the media change took place.
*/
virtual TInt MediaChangeFromSocket(TInt aSocket)=0;
/**
Gets from which socket does the Vcc signal is generated.
@param aSocket the socket ID.
@return socket Id from which Vcc signal is generated.
*/
virtual TInt VccFromSocket(TInt aSocket)=0;
};
GLREF_D TPcCardControllerInterface* ThePccdCntrlInterface;
#endif