60
•
_LIT provides support for literal descriptors, which is highly recommended in
preference to
_L
• default screen size KConsFullScreen definition added, to create text consoles filling
the entire screen regardless of its size (
KConsDefaultScreenSize was good only
for 640x240 displays)
•
RPointerArray<T> and RArray<T> classes now available, which destroy their
objects when
Close()d
•
CleanupClosePushL() and similar functions are now in E32, rather than in
STORE: binary compatibility is maintained, since these functions are inline templates
•
TFixedArray<class T, TInt S> provides an effective wrapper on C++ arrays
Text and language support:
• Unicode character tables, collation etc added
• Euro and z-caron characters added.
• more Far Eastern languages added to
TLanguage enumeration
Improvements in math functions required to attain full JCK certification (more tightly specified
than the previous IEEE754 certification).
8.5.3.1.1.2 Performance
Many optimizations:
• machine-coding many math, memory and other functions
• specialized arrays are used where the generality of
CArray-type classes was not needed
• MMU code has been redesigned to reduce context-switching overheads by supporting
system processes whose address mapping is fixed with respect to execution context (this
reduces the need for cache flushes and PDE moves on context switching)
8.5.3.1.1.3 i/o handling and porting
Kernel changes:
• layering improvements in the kernel for better porting
• support for many different hardware variants
PC Card control code now supports i/o cards as well as memory cards.
Better i/o handling:
• interrupt chaining now supported, many DFC-related improvements
• new power model in which devices report their requirements, and the kernel keeps track
of power requirements and power sources, calling power management functions
appropriately
• PC Card support has been generalized to cover any peripheral bus;
RBusDev classes
introduced, eg
RBusDevComm which replaces RDevComm. PBus code
separated into own DLL to allow machines without a peripheral bus not to load it.
• changed UIDs on all device drivers because of the resulting incompatibilities
8.5.3.1.2 F32
8.5.3.1.2.1 User API
•
RFs::NotifyChange() can now notify when changes occur in a directory, a file, a
directory and all subdirectories, or a directory across a number of drives (eg
?:\system\apps\ and subdirectories), and several other combinations. Several
notification requests may be issued by a single client. The corresponding cancel API may
cancel all or only selected notifications.
•
RFs::ReadFileSection() reads bytes from a file without opening it and without
checking locks. This function allows rapid heuristic identification of file types, for the