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) 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 "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:
//
// WARNING: This file contains some APIs which are internal and are subject
// to change without notice. Such APIs should therefore not be used
// outside the Kernel and Hardware Services package.
//
/**
@file
@internalAll
*/
#ifndef ROFS_H
#define ROFS_H
/**
@internalAll
@released
*/
const TUint16 KRofsFormatVersion = 0x200;
class TRofsEntry
/**
@internalAll
@released
*/
{
public:
TUint16 iStructSize; // Total size of entry, header + name + any padding
TUint8 iUids[sizeof(TCheckedUid)]; // A copy of all the UID info
TUint8 iNameOffset; // offset of iName from start of entry
TUint8 iAtt; // standard file attributes
TUint32 iFileSize; // real size of file in bytes (may be different from size in image)
// for subdirectories this is the total size of the directory
// block entry excluding padding
TUint32 iFileAddress; // address in image of file start
TUint8 iAttExtra; // extra ROFS attributes (these are inverted so 0 = enabled)
TUint8 iNameLength; // length of iName
TUint16 iName[1];
};
/**
@internalAll
@released
*/
const TUint KRofsEntryNameOffset = _FOFF( TRofsEntry, iName );
/**
@internalAll
@released
*/
const TUint KRofsEntryHeaderSize = KRofsEntryNameOffset;
class TRofsDir
/**
@internalAll
@released
*/
{
public:
TUint16 iStructSize; // Total size of this directory block including padding
TUint8 padding;
TUint8 iFirstEntryOffset; // offset to first entry
TUint32 iFileBlockAddress; // address of associated file block
TUint32 iFileBlockSize; // size of associated file block
TRofsEntry iSubDir; // first subdir entry (not present if no subdirs)
};
/**
@internalAll
@released
*/
const TUint KRofsDirFirstEntryOffset = _FOFF( TRofsDir, iSubDir );
/**
@internalAll
@released
*/
const TUint KRofsDirHeaderSize = KRofsDirFirstEntryOffset;
class TRofsHeader
/**
@internalAll
@released
*/
{
public:
TUint8 iIdentifier[4]; // ROFS identifier
TUint8 iHeaderSize;
TUint8 iReserved;
TUint16 iRofsFormatVersion;
TUint iDirTreeOffset; // offset to start of directory structure
TUint iDirTreeSize; // size in bytes of directory
TUint iDirFileEntriesOffset; // offset to start of file entries
TUint iDirFileEntriesSize; // size in bytes of file entry block
TInt64 iTime;
TVersion iImageVersion; // licensee image version
TUint32 iImageSize;
TUint iCheckSum;
TUint32 iMaxImageSize;
};
/**
@internalAll
@released
*/
class TExtensionRofsHeader
{
public:
TUint8 iIdentifier[4]; // ROFS Extension identifier
TUint8 iHeaderSize;
TUint8 iReserved;
TUint16 iRofsFormatVersion;
TUint iDirTreeOffset; // offset to start of directory structure
TUint iDirTreeSize; // size in bytes of directory
TUint iDirFileEntriesOffset; // offset to start of file entries
TUint iDirFileEntriesSize; // size in bytes of file entry block
TInt64 iTime;
TVersion iImageVersion; // licensee image version
TUint32 iImageSize;
TUint iCheckSum;
TUint32 iMaxImageSize;
};
const TUint KRofsHeaderSize = sizeof(TRofsHeader);
const TUint KExtensionRofsHeaderSize = sizeof(TExtensionRofsHeader);
/**
@internalAll
@released
*/
const TInt16 KEarliestSupportedFormatVersion = KRofsFormatVersion;
/**
@internalAll
@released
*/
const TInt16 KLatestSupportedFormatVersion = KRofsFormatVersion;
const TUint KRofsMangleNameLength = 7;
#endif