epoc32/include/d32locd.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
--- a/epoc32/include/d32locd.h	Wed Mar 31 12:27:01 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,603 +0,0 @@
-// Copyright (c) 1995-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 "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
-// which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\d32locd.h
-// 
-//
-
-#ifndef __D32LOCD_H__
-#define __D32LOCD_H__
-#include <e32cmn.h>
-#include <partitions.h>
-
-
-/**
-@publishedPartner
-@released
-
-Local media IDs.
-
-A media ID is passed to LocDrv::RegisterMediaDevice() when registering
-a media driver with the local media subsystem.
-*/
-enum TMediaDevice { EFixedMedia0, EFixedMedia1, EFixedMedia2, EFixedMedia3,
-					EFixedMedia4, EFixedMedia5, EFixedMedia6, EFixedMedia7,
-					ERemovableMedia0, ERemovableMedia1, ERemovableMedia2, ERemovableMedia3,
-					EInvalidMedia
-				};
-
-#define __IS_REMOVABLE(aDevice) (aDevice>=ERemovableMedia0 && aDevice<=ERemovableMedia3)
-#define __IS_FIXED(aDevice) ((TUint)aDevice<=EFixedMedia7)
-#define MEDIA_DEVICE_IRAM EFixedMedia0
-#define MEDIA_DEVICE_LFFS EFixedMedia1
-#define MEDIA_DEVICE_NAND EFixedMedia2
-#define MEDIA_DEVICE_MMC ERemovableMedia0
-#define MEDIA_DEVICE_PCCARD ERemovableMedia1
-#define MEDIA_DEVICE_CSA ERemovableMedia2
-
-typedef signed int TSocket;
-
-class TLDriveAssignInfo
-/**
-No longer used
-@internalComponent
-@removed
-*/
-	{
-public:
-	TMediaDevice iDevice;
-	TInt iPriority;
-	};
-
-class TMediaDeviceAssignInfo
-/**
-No longer used
-@internalComponent
-@removed
-*/
-	{
-public:
-	TInt iFirstMedia;
-	TInt iLastMedia;	
-	};
-
-class TLocalDriveCaps
-/**
-Drives media capabilities fields
-
-@publishedPartner
-@released
-*/
-	{
-public:
-	IMPORT_C TLocalDriveCaps();
-public:
-	/**
-	Size of drive
-	
-	Note : This is the size of the partition, not the entire media.
-		   The entire media size can be obtained from TLocalDriveCapsV4::MediaSizeInBytes()
-	*/
-	TInt64 iSize;
-	/**
-	Media Type of drive
-	*/
-	TMediaType iType;
-	/**
-	Indicates state of battery if supported
-	*/
-	TBatteryState iBattery;
-	/**
-	Attributes of the drive
-	*/
-	TUint iDriveAtt;
-	/**
-	Attributes of underlying media 
-	*/
-	TUint iMediaAtt;
-	/**
-	Base address of media
-	*/
-    TUint8* iBaseAddress;
-	/**
-	Identity of the file system used for this media
-	*/
-	TUint16 iFileSystemId;
-	/**
-	Partition type of media
-	*/
-	TUint16	iPartitionType;
-	};
-typedef TPckgBuf<TLocalDriveCaps> TLocalDriveCapsBuf;
-//
-class TLocalDriveCapsV2 : public TLocalDriveCaps
-/**
-Extension to Capabilities fields mainly to support Nor flash
-
-@publishedPartner
-@released
-*/
-	{
-public:
-	/**
-	Number of hidden sectors on drive
-	*/
-	TUint iHiddenSectors;
-	/**
-	Size of erase unit on media
-	*/
-	TUint iEraseBlockSize;
-    };
-typedef TPckgBuf<TLocalDriveCapsV2> TLocalDriveCapsV2Buf;
-//
-
-
-
-/**
-Format specification for removable media
-
-@publishedPartner
-@released
-*/
-class TLDFormatInfo
-	{
-public:
-    inline TLDFormatInfo();
-public:
-
-    TInt64 iCapacity;				///< Format Capacity
-	TUint16 iSectorsPerCluster;		///< Specified sectors per cluster
-	TUint16 iSectorsPerTrack;		///< Specified sectors per track
-	TUint16 iNumberOfSides;			///< Specified number of sides
-
-	enum TFATBits {EFBDontCare, EFB12 = 12, EFB16 = 16, EFB32 = 32};
-	TFATBits iFATBits;				///< Specified bits per fat table entry
-
-	TUint16 iReservedSectors;	///< Reserved sector count, required for SD card compliance
-	
-	// Flags field. Allows the number of FAT tables to be specified: set both bits to zero to use the default.
-	enum TFlags {EOneFatTable = 0x01, ETwoFatTables = 0x02};
-	TUint8 iFlags;
-
-	TUint8 iPad;				///< Padding for offset alignment  between kernel and user code
-
-	};
-typedef TPckgBuf<TLDFormatInfo> TSpecialFormatInfoBuf;
-
-
-//
-class TLocalDriveCapsV3 : public TLocalDriveCapsV2
-/**
-Extension to Capabilities fields mainly to support removable media format specifications
-
-@publishedPartner
-@released
-*/
-	{
-public:
-	/**
-	Format specification
-	*/
-	TLDFormatInfo iFormatInfo;
-	/**
-	Set if iFormatInfo is valid
-	*/
-	TBool iExtraInfo;
-	/**
-	*/
-	TInt iMaxBytesPerFormat;
-    };
-//The following ASSERTs checks for offset of any TInt64 member be a multiple of 8 as per DEF045510
-__ASSERT_COMPILE(_FOFF(TLocalDriveCaps,iSize)%8 == 0);
-__ASSERT_COMPILE(_FOFF(TLocalDriveCapsV3,iFormatInfo.iCapacity) % 8 == 0);
-
-
-typedef TPckgBuf<TLocalDriveCapsV3> TLocalDriveCapsV3Buf;
-//
-class TLocalDriveCapsV4 : public TLocalDriveCapsV3
-/**
-Extension to Capabilities fields mainly to support Nand flash
-
-@publishedPartner
-@released
-*/
-	{
-public:
-	union
-		{
-		/**
-		Number of blocks (for NAND flash)
-		 - The entire capacity of NAND media can be calculated using:
-		   capacity = iNumOfBlocks * iNumPagesPerBlock * iNumBytesMain
-		*/
-		TInt iNumOfBlocks;
-		/**
-		Number of sectors (for other types of media)
-		 - The entire capacity of sector based media can be calculated using:
-		   capacity = iNumberOfSectors * iSectorSizeInBytes
-		*/
-		TUint32 iNumberOfSectors;
-		};
-
-	/**
-	Number of pages per block
-	*/
-	TInt iNumPagesPerBlock;
-
-	union
-		{
-		/**
-		Number of Bytes in the main array (for NAND flash)
-		 - The entire capacity of NAND media can be calculated using:
-		   capacity = iNumOfBlocks * iNumPagesPerBlock * iNumBytesMain
-		*/
-		TInt iNumBytesMain;
-		/**
-		Number of Bytes in a sector (for other types of media)
-		 - The entire capacity of sector based media can be calculated using:
-		   capacity = iNumberOfSectors * iSectorSizeInBytes
-		*/
-		TUint32 iSectorSizeInBytes;
-		};
-
-	/**
-	Number of Bytes in the spare array
-	*/
-	TInt iNumBytesSpare;
-	/**
-	Effective usable blocks
-	*/
-	TInt iEffectiveBlks;
-	/**
-	Start page of drive
-	*/
-	TInt iStartPage;
-public:
-	inline TInt64 MediaSizeInBytes();
-    };
-typedef TPckgBuf<TLocalDriveCapsV4> TLocalDriveCapsV4Buf;
-//
-#define KMaxSerialNumLength 64
-typedef TBuf8<KMaxSerialNumLength> TMediaSerialNumber;
-class TLocalDriveCapsV5 : public TLocalDriveCapsV4
-/**
-Add serial number support for certain media.
-
-@publishedPartner
-@released
-*/
-	{
-public:
-	/**
-    Serial number buffer length, 0 if not supported
-	*/
-    TUint iSerialNumLength;
-	/**
-    Serial number buffer
-	*/
-	TUint8 iSerialNum[KMaxSerialNumLength];
-	};
-typedef TPckgBuf<TLocalDriveCapsV5> TLocalDriveCapsV5Buf;
-
-
-class TLocalDriveCapsV7 : public TLocalDriveCapsV5
-/**
-Add control mode, object mode, partition size for M18 NOR Flash.
-*/
-	{
-public:
-    TUint32 iWriteBufferSize;
-	TUint32 iPartitionSize;
-    TUint32 iControlModeSize;
-    TUint32 iObjectModeSize;
-	};
-
-typedef TPckgBuf<TLocalDriveCapsV7> TLocalDriveCapsV7Buf;
-
-
-//
-/**
-Extension to Capabilities fields mainly to support reporting block size 
-information of underlying media.
-    
-@publishedPartner
-@released
-*/
-class TLocalDriveCapsV6 : public TLocalDriveCapsV5
-	{
-public:
-	/**
-	Block size information of underlying media is required to assist in chosing 
-	efficient size of buffers for reading and writing.
-	This information can also be accessed through the function
-	- RFs::VolumeIOParam
-
-	These functions retrieve this blocksize information by calling the media
-	driver's Caps() function.
-	*/
-    TUint 	iBlockSize;
-    
-private:
-    /**
-    Reserved space for future use.
-    */
-    TUint32	iSpare[4];
-	};
-typedef TPckgBuf<TLocalDriveCapsV6> TLocalDriveCapsV6Buf;
-//
-class TFormatInfo
-/**
-Format information class
-
-@publishedPartner
-@released
-*/
-	{
-public:
-	IMPORT_C TFormatInfo();
-public:
-	TBool iFormatIsCurrent;
-	TInt i512ByteSectorsFormatted; 
-	TInt iMaxBytesPerFormat;
-	};
-//
-class TErrorInfo
-/**
-@internalTechnology
-  */
-	{
-public:
-	enum TReasonCode
-		{
-		ENoError=0,			//No error
-		EBadSector=1,	//Error due to corrupt sector
-		};
-public:
-    TReasonCode iReasonCode;
-	union
-		{
-		// holds position error occurred for KErrCorrupt
-		// It numerically equals number of bytes succesfully read/written during
-		// last disk operation.
-		TInt64 iErrorPos;
-        TInt iOtherInfo;
-		};
-    };
-typedef TPckgBuf<TErrorInfo> TErrorInfoBuf;
-//
-class TLocalDriveMessageData
-/**
-@internalTechnology
-*/
-	{
-public:
-	inline TLocalDriveMessageData()
-		{}
-	inline TLocalDriveMessageData(TInt64 aPos, TInt aLength, const TAny* aPtr, TInt aHandle, TInt anOffset, TInt aFlags)
-		: iPos(aPos), iLength(aLength), iPtr(aPtr), iHandle(aHandle), iOffset(anOffset), iFlags(aFlags)
-		{}
-public:
-	TInt64 iPos;
-	TInt iLength;
-	const TAny* iPtr;
-	TInt iHandle;
-	TInt iOffset;
-	TInt iFlags;
-	};
-
-class TLocalDriveControlIOData
-/**
-Control IO data class
-
-@internalTechnology
-*/
-	{
-public:
-	inline TLocalDriveControlIOData()
-		{}
-	inline TLocalDriveControlIOData(TInt aCommand, TAny* aParam1, TAny* aParam2, TInt aHandle)
-		: iCommand(aCommand), iParam1(aParam1), iParam2(aParam2), iHandle(aHandle)
-		{}
-public:
-	TInt iCommand;
-	TAny* iParam1;
-	TAny* iParam2;
-	TInt iHandle;
-	};
-
-class TLocalDrivePasswordData
-/**
-Password store for password protected media
-
-@internalTechnology
-*/
-	{
-public:
-	TLocalDrivePasswordData(const TDesC8& aOldPasswd, const TDesC8& aNewPasswd, TBool aStorePasswd)
-		: iOldPasswd(&aOldPasswd), iNewPasswd(&aNewPasswd), iStorePasswd(aStorePasswd)
-		{}
-	TLocalDrivePasswordData()
-		: iOldPasswd(&KNullDesC8), iNewPasswd(&KNullDesC8), iStorePasswd(EFalse)
-		{}
-public:
-	const TDesC8 *iOldPasswd;
-	const TDesC8 *iNewPasswd;
-	TBool iStorePasswd;
-	};
-typedef TPckgBuf<TLocalDrivePasswordData> TLocalDrivePasswordDataPckg;
-
-
-class TPasswordStore
-/**
-@internalTechnology
-*/
-	{
-public:
-	virtual TInt Init()=0;
-	virtual TInt ReadPasswordData(TDes8 &aBuf)=0;
-	virtual TInt WritePasswordData(TDesC8 &aBuf)=0;
-	virtual TInt PasswordStoreLengthInBytes()=0;
-	enum {EMaxPasswordLength=1024}; /**< Size of the password store write buffer, which may contain multiple password mappings */
-	};
-
-class TMountInfoData
-/**
-@internalTechnology
-*/
-	{
-public:
-	TDesC8* iInfo;
-	TAny* iThread;
-	};
-
-
-const TInt KLocalDriveMajorVersion=1;
-const TInt KLocalDriveMinorVersion=0;
-const TInt KLocalDriveBuildVersion=160;
-_LIT(KLitLocalDriveLddName,"LocDrv");
-
-const TInt KLocalMessageHandle=-1;
-
-
-enum TMediaPagingStats
-	{
-	EMediaPagingStatsRomAndCode,
-	EMediaPagingStatsRom,
-	EMediaPagingStatsCode
-	};
-
-
-class RLocalDrive : public RBusLogicalChannel
-/**
-Interface class to local media
-
-@internalTechnology
-*/
-	{
-public:
-	enum TControl
-		{
-		EControlRead=0,							/**< Read request */
-		EControlWrite=1,						/**< Write request */
-		EControlCaps=2,							/**< Caps request */
-		EControlFormat=3,						/**< Format request */
-		EControlEnlarge=4,						/**< Enlarge drive request */
-		EControlReduce=5,						/**< Reduce Drive  request */
-		EControlForceMediaChange=6,				/**< Force media change request */
-		EControlMediaDevice=7,					/**< Return the media device request */
-		EControlPasswordLock=8,					/**< Password lock media request */
-		EControlPasswordUnlock=9,				/**< Password unlock media request */
-		EControlPasswordClear=10,				/**< Password clear request */
-		EControlNotifyChange=11,				/**< Notify change request */
-		EControlNotifyChangeCancel=12,			/**< Notify change cancel request */
-		EControlReadPasswordStore=13,			/**< Read password request */
-		EControlWritePasswordStore=14,			/**< Write password request */
-		EControlPasswordStoreLengthInBytes=15,	/**< Password request */
-		EControlIsRemovable=16,					/**< Query removable request */
-		EControlSetMountInfo=17,				/**< Set mount info request */
-		EControlControlIO=18,					/**< Control IO request */
-		EControlPasswordErase=19,				/**< Password erase media request */
-		EControlDeleteNotify=20,				/**< Delete notification */
-		EControlGetLastErrorInfo=21,			/**< Get last error info request */
-		};
-
-	enum TRemountFlags
-		{
-		ELocDrvRemountNotifyChange	   = 0,		/**< Notify clients of media change but don't remount */
-		ELocDrvRemountForceMediaChange = 1,		/**< Notify clients of media change and remount	*/
-		};
-
-	enum TReadWriteFlags
-		{
-		ELocDrvMetaData					= 0x80000000,	/**< Set if read/write request is for metadata */
-		ELocDrvWholeMedia				= 0x40000000	/**< Set to access whole media, rather than partition */
-		};
-
-public:
-	inline TVersion VersionRequired() const;
-	inline TInt Connect(TInt aDriveNumber, TBool& aChangedFlag);
-	inline TInt Enlarge(TInt aLength);
-	inline TInt Reduce(TInt aPos, TInt aLength);
-	inline TInt Read(TInt64 aPos, TInt aLength, const TAny* aTrg, TInt aMessageHandle, TInt aOffset, TInt aFlags);
-	inline TInt Read(TInt64 aPos, TInt aLength, const TAny* aTrg, TInt aMessageHandle, TInt anOffset);
-	inline TInt Read(TInt64 aPos, TInt aLength, TDes8& aTrg);
-	inline TInt Write(TInt64 aPos, TInt aLength, const TAny* aSrc, TInt aMessageHandle, TInt aOffset, TInt aFlags);
-	inline TInt Write(TInt64 aPos, TInt aLength, const TAny* aSrc, TInt aMessageHandle, TInt anOffset);
-	inline TInt Write(TInt64 aPos, const TDesC8& aSrc);
-	inline TInt Caps(TDes8& anInfo);
-	inline TInt Format(TInt64 aPos, TInt aLength);
-	inline TInt ForceMediaChange(TInt aMode=0);
-	inline void NotifyChange(TRequestStatus* aStatus);
-	inline void NotifyChangeCancel();
-	inline TInt SetMountInfo(const TDesC8* aInfo,TInt aMessageHandle);
-	inline TMediaDevice MediaDevice();
-	inline TInt IsRemovable(TInt& aSocketNum);
-	inline TInt ControlIO(TInt aCommand, TAny* aParam1, TAny* aParam2);
-	inline TInt Unlock(const TDesC8& aPassword, TBool aStorePassword);
-	inline TInt SetPassword(const TDesC8& aOldPassword, const TDesC8& aNewPassword, TBool aStorePassword);
-	inline TInt Clear(const TDesC8& aPassword);
-	inline TInt ErasePassword();
-	inline TInt ReadPasswordData(TDesC8& aStoreData);
-	inline TInt WritePasswordData(const TDesC8& aStoreData);
-	inline TInt PasswordStoreLengthInBytes();
-	inline TInt DeleteNotify(TInt64 aPos, TInt aLength);
-	inline TInt GetLastErrorInfo(TDesC8& aErrorInfo);
-	};
-//
-#ifndef __KERNEL_MODE__
-class TBusLocalDrive : public RLocalDrive
-/**
-@internalTechnology
-*/
-	{
-public:
-	IMPORT_C TBusLocalDrive();
-	IMPORT_C TInt Connect(TInt aDriveNumber, TBool& aChangedFlag);
-	IMPORT_C void Disconnect();
-	IMPORT_C TInt Enlarge(TInt aLength);
-	IMPORT_C TInt ReduceSize(TInt aPos, TInt aLength);
-	IMPORT_C TInt Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aMessageHandle,TInt aOffset,TInt aFlags);
-	IMPORT_C TInt Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aMessageHandle,TInt anOffset);
-	IMPORT_C TInt Read(TInt64 aPos,TInt aLength,TDes8& aTrg);
-	IMPORT_C TInt Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aMessageHandle,TInt aOffset,TInt aFlags);
-	IMPORT_C TInt Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aMessageHandle,TInt anOffset);
-	IMPORT_C TInt Write(TInt64 aPos,const TDesC8& aSrc);
-	IMPORT_C TInt Caps(TDes8& anInfo);
-	IMPORT_C TInt Format(TFormatInfo& anInfo);
-	IMPORT_C TInt Format(TInt64 aPos,TInt aLength);
-	IMPORT_C TInt SetMountInfo(const TDesC8* aMountInfo,TInt aMessageHandle);
-	IMPORT_C TInt ForceRemount(TUint aFlags=0);
-	IMPORT_C TInt ControlIO(TInt aCommand, TAny* aParam1, TAny* aParam2);
-
-	IMPORT_C TInt Unlock(const TDesC8& aPassword, TBool aStorePassword);
-	IMPORT_C TInt SetPassword(const TDesC8& aOldPassword, const TDesC8& aNewPassword, TBool aStorePassword);
-	IMPORT_C TInt Clear(const TDesC8& aPassword);
-	IMPORT_C TInt ErasePassword();
-	IMPORT_C TInt ReadPasswordData(TDes8 &aBuf);
-	IMPORT_C TInt WritePasswordData(const TDesC8 &aBuf);
-	IMPORT_C TInt PasswordStoreLengthInBytes();
-	IMPORT_C TInt DeleteNotify(TInt64 aPos, TInt aLength);
-	IMPORT_C TInt GetLastErrorInfo(TDes8& aErrorInfo);
-public:
-	inline TInt& Status() {return(iStatus);}
-private:
-	TInt CheckMount();
-private:
-	TInt iStatus;
-	};
-#endif
-
-#define _LOCKABLE_MEDIA
-
-#include <d32locd.inl>
-#endif