--- a/kernel/eka/drivers/hcr/hcr_hai.h Tue Nov 02 15:29:23 2010 +0000
+++ b/kernel/eka/drivers/hcr/hcr_hai.h Tue Nov 02 15:42:21 2010 +0000
@@ -22,7 +22,6 @@
Interface (SHAI) for variants to implement when creating a HCR.dll binary.
@publishedPartner
-@prototype
*/
#ifndef HCR_HAI_H
@@ -74,11 +73,12 @@
/**
- This method returns the address of the compile time setting repository
- built into the variant HCR.dll project/binary. This repository is
- optional and may be absent in which case 0 should be returned in aAddr.
+ This method returns the virtual address of the compile time setting
+ repository built into the variant HCR.dll project/binary. This
+ repository is optional and may be absent in which case 0 should be
+ returned in aAddr.
- @param aAddr out: a pointer to a HCR::SRepositoryCompiled
+ @param aAddr out: the virtual address of a HCR::SRepositoryCompiled
@return KErrNone if successful, output parameters valid,
KErrNotSupported if a compile time repository is not supported,
Any other system wide error code.
@@ -98,17 +98,25 @@
virtual TBool IgnoreCoreImgRepository () = 0;
/**
- This method returns the address of the override repository that
- provides override values for the variant. Typically this repository
- is held in local media and shadowed in RAM by the OS loader. It is
- a read-only settings repository. This repository is optional and may
- be absent in which case 0 should be returned in aAddr.
+ This method returns the virtual address of the override repository that
+ provides override read-only values for the variant. Typically this
+ repository is held in local media and shadowed into physical RAM by
+ the OS loader and later reserved by the OS bootstrap.
+ The implementation will find the physical address of the reserved RAM
+ containing the HCR payload in the SSmrBank entry of the SSuperPageBase
+ object. It will need to map this RAM into a DChunk to return a valid
+ virtual address pointer.
+ This repository is optional and may be absent in which case 0 should
+ be returned in aAddr.
- @param aAddr out: a pointer to a HCR::SRepositoryFile
+ @param aAddr out: the virtual address of the HCR::SRepositoryFile
+ object inside the DChunk.
@return KErrNone if successful, output parameters valid,
- KErrNotSupported if a compile time repository is not supported,
+ KErrNotSupported if a override repository is not supported,
Any other system wide error code.
@see HCR::SRepositoryFile
+ @see SSuperPageBase
+ @see SSmrBank
*/
virtual TInt GetOverrideRepositoryAddress(TAny* & aAddr) = 0;
--- a/kernel/eka/include/e32const.h Tue Nov 02 15:29:23 2010 +0000
+++ b/kernel/eka/include/e32const.h Tue Nov 02 15:42:21 2010 +0000
@@ -1397,14 +1397,16 @@
@publishedAll
@released
-An enumerator with a single enumeration value that defines the Boolean value
-true in Symbian OS.
+An enumerator with a single enumeration value that defines a default true
+value in Symbian OS.
+
+In general, this value should not be used for comparisons (see TBool for more information).
@see TBool
*/
enum TTrue {
/**
- Defines the value true that is passed to a TBool type.
+ Defines a value true that can be passed to a TBool type.
*/
ETrue=TRUE
};
--- a/kernel/eka/include/e32def.h Tue Nov 02 15:29:23 2010 +0000
+++ b/kernel/eka/include/e32def.h Tue Nov 02 15:42:21 2010 +0000
@@ -311,11 +311,11 @@
Symbolic definition for a false value.
*/
#define FALSE 0
+
+
+
+
#ifndef NULL
-
-
-
-
/**
@publishedAll
@released
@@ -754,12 +754,81 @@
@publishedAll
@released
-Boolean type which takes the value either ETrue or EFalse.
-
-Although only a single bit would theoretically be necessary to represent a
-Boolean, a machine word is used instead, so that these quantities can be easily
-passed. Also, TBool must map onto int because of C++'s interpretation of
-operands in conditional expressions.
+Integer type representing true or false.
+
+False is always represented by 0; any non-zero value is true.
+
+Values of type TBool must never be compared against ETrue; so instead of
+
+@code
+TBool foo(void);
+
+if (foo() == ETrue) bar();
+@endcode
+
+use
+
+@code
+TBool foo(void);
+
+if (foo()) bar();
+@endcode
+
+And, instead of '!= ETrue' use '== EFalse' or the following (preferred):
+
+@code
+TBool this(void);
+
+if (!this()) that();
+@endcode
+
+When returning a TBool, rather than
+
+@code
+TBool List::IsEmpty(void)
+ {
+ return iAnchor == NULL ? ETrue : EFalse;
+ }
+@endcode
+
+use
+
+@code
+TBool List::IsEmpty(void)
+ {
+ return iAnchor == NULL;
+ }
+@endcode
+
+and rather than
+
+@code
+TBool SerialPort::DataPresent(void)
+ {
+ // Fictitious example
+ volatile TUint *statusReg = (TUint *)0x1000;
+
+ if ((*statusReg & 0x00FF0000) != 0)
+ return ETrue;
+ else
+ return EFalse;
+ }
+@endcode
+
+use
+
+@code
+TBool SerialPort::DataPresent(void)
+ {
+ // Fictitious example
+ volatile TUint *statusReg = (TUint *)0x1000;
+
+ return *statusReg & 0x00FF0000;
+ }
+@endcode
+
+@see EFalse
+@see ETrue
*/
typedef int TBool;
@@ -1281,7 +1350,7 @@
Note that the macro definition is, in effect, equivalent to:
@code
-if !(c)p;
+if (!c)p;
@endcode
@param c a conditional expression which results in true or false.
--- a/kernel/eka/include/e32ver.h Tue Nov 02 15:29:23 2010 +0000
+++ b/kernel/eka/include/e32ver.h Tue Nov 02 15:42:21 2010 +0000
@@ -28,7 +28,7 @@
const TInt KE32MajorVersionNumber=2;
const TInt KE32MinorVersionNumber=0;
-const TInt KE32BuildVersionNumber=4015;
+const TInt KE32BuildVersionNumber=4016;
const TInt KMachineConfigurationMajorVersionNumber=1;
const TInt KMachineConfigurationMinorVersionNumber=0;
--- a/kernel/eka/release.txt Tue Nov 02 15:29:23 2010 +0000
+++ b/kernel/eka/release.txt Tue Nov 02 15:42:21 2010 +0000
@@ -1,3 +1,14 @@
+Version 2.00.4016
+=================
+(Made by fadhliM 01/11/2010)
+
+1. stmansfi
+ 1. ou1cimx1#633842 (KHS) HCR shai in-source documentation not crystal clear
+
+2. tocosgro
+ 1. ou1cimx1#630148 TBool Documentation is incorrect
+
+
Version 2.00.4015
=================
(Made by fadhliM 27/10/2010)