os/kernelhwsrv/kernel/eka/include/nkernsmp/x86/ncern.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/kernelhwsrv/kernel/eka/include/nkernsmp/x86/ncern.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,67 @@
     1.4 +// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5 +// All rights reserved.
     1.6 +// This component and the accompanying materials are made available
     1.7 +// under the terms of the License "Eclipse Public License v1.0"
     1.8 +// which accompanies this distribution, and is available
     1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.10 +//
    1.11 +// Initial Contributors:
    1.12 +// Nokia Corporation - initial contribution.
    1.13 +//
    1.14 +// Contributors:
    1.15 +//
    1.16 +// Description:
    1.17 +// e32\include\nkernsmp\x86\ncern.h
    1.18 +// 
    1.19 +// WARNING: This file contains some APIs which are internal and are subject
    1.20 +//          to change without notice. Such APIs should therefore not be used
    1.21 +//          outside the Kernel and Hardware Services package.
    1.22 +//
    1.23 +
    1.24 +/**
    1.25 + @file
    1.26 + @publishedPartner
    1.27 + @prototype
    1.28 +*/
    1.29 +
    1.30 +#ifndef __NCERN_H__
    1.31 +#define __NCERN_H__
    1.32 +
    1.33 +
    1.34 +/** Information needed to boot an AP (x86 specific)
    1.35 +
    1.36 +@internalTechnology
    1.37 +*/
    1.38 +struct SX86APBootInfo : public SAPBootInfo
    1.39 +	{
    1.40 +	};
    1.41 +
    1.42 +/** Timer frequency specification
    1.43 +
    1.44 +Stores a frequency as a fraction of a (separately stored) maximum.
    1.45 +The frequency must be at least 1/256 of the maximum.
    1.46 +
    1.47 +@internalTechnology
    1.48 +@prototype
    1.49 +*/
    1.50 +struct STimerMult
    1.51 +	{
    1.52 +	TUint32		iFreq;						// frequency as a fraction of maximum possible, multiplied by 2^32
    1.53 +	TUint32		iInverse;					// 2^24/(iFreq/2^32) = 2^56/iFreq
    1.54 +	};
    1.55 +
    1.56 +/** Variant interface block
    1.57 +@internalTechnology
    1.58 +@prototype
    1.59 +*/
    1.60 +struct SVariantInterfaceBlock : public SInterfaceBlockBase
    1.61 +	{
    1.62 +	TUint64		iMaxCpuClock;				// maximum possible CPU clock frequency on this system
    1.63 +	TUint32		iTimestampFreq;				// rate at which timestamp increments
    1.64 +	TUint32		iMaxTimerClock;				// maximum possible local timer clock frequency
    1.65 +	volatile STimerMult* iTimerMult[KMaxCpus];	// timer[i] frequency as a fraction of iMaxTimerClock
    1.66 +	volatile TUint32* iCpuMult[KMaxCpus];	// CPU[i] frequency / iMaxCpuClock * 2^32
    1.67 +	};
    1.68 +
    1.69 +// End of file
    1.70 +#endif