Adaptation/GUID-A27BD4D8-8B0E-57C8-9C15-736109297DEA.dita
changeset 15 307f4279f433
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Adaptation/GUID-A27BD4D8-8B0E-57C8-9C15-736109297DEA.dita	Fri Oct 15 14:32:18 2010 +0100
@@ -0,0 +1,369 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2007-2010 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: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-A27BD4D8-8B0E-57C8-9C15-736109297DEA" xml:lang="en"><title>Keyword reference (D-F)</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This page lists the keywords starting from D to F. </p>
+<section id="GUID-D3FA449B-0A87-4739-991C-6C59C6DEEC71"><title>data-align</title><codeblock xml:space="preserve">data-align = &lt;hex-number&gt;</codeblock><p><i>rombuild
+only</i></p><p>This keyword specifies the alignment for the executable's
+data. It indicates the start address of a data segment that must be
+aligned to a specified value.</p><p><b>Note</b>: The
+inclusion of <codeph>data-align</codeph> keyword in an OBY file does
+not increase the size of ROM image.</p></section>
+<section id="GUID-DF3AEED2-A9D0-5176-B4E5-63F73262BE07"><title>datapagingoverride</title> <codeblock id="GUID-76519D8D-65AA-5553-87D6-70BDBA94F6CB" xml:space="preserve">datapagingoverride [NOPAGING | ALWAYSPAGE | DEFAULTUNPAGED | DEFAULTPAGED]</codeblock> <p> <i>rombuild and rofsbuild </i>  </p> <p>If the <codeph>datapagingoverride</codeph> keyword is spe,cified in an OBY file, it overrides the configuration
+for data paging for the executable files defined in OBY file. This
+keyword takes a single argument, which can be one of the possible
+values listed in <xref href="GUID-B9698943-0D4E-5B18-B7E4-448A0E21876A.dita#GUID-B9698943-0D4E-5B18-B7E4-448A0E21876A/GUID-20A2663B-FE05-5E0A-ACF9-669EDDC8317C">codepagingoverride</xref>. </p> </section>
+<section id="GUID-7DAC5804-0A03-5098-836A-2DB2CDB6F5D4"><title>datapagingpolicy</title> <codeblock id="GUID-F3A5F40B-2FF3-54FE-91A4-EDA247D184DE" xml:space="preserve">datapagingpolicy [NOPAGING | ALWAYSPAGE | DEFAULTUNPAGED | DEFAULTPAGED]</codeblock> <p> <i>rombuild and rofsbuild </i>  </p> <p>This overrides the default
+settings for data paging and the settings from all the <xref href="GUID-85B33746-074D-5B54-ACF4-1B1620D48FF6.dita#GUID-85B33746-074D-5B54-ACF4-1B1620D48FF6/GUID-08CFF2B1-63CC-5358-AD13-B4152A83B640">previous levels</xref>. </p> <p>This keyword takes a single argument,
+which can be one of the possible values listed in <xref href="GUID-B9698943-0D4E-5B18-B7E4-448A0E21876A.dita#GUID-B9698943-0D4E-5B18-B7E4-448A0E21876A/GUID-20A2663B-FE05-5E0A-ACF9-669EDDC8317C">codepagingoverride</xref>. </p> </section>
+<section id="GUID-23851F44-7FAC-5B99-8D15-44099A61A4E4"><title>data[[HWVD]]</title> <codeblock id="GUID-BF169545-15DE-5044-8800-880DD16C301C" xml:space="preserve">data[[HWVD]] = &lt;source-file&gt; &lt;destination-file&gt; [File-attribute-list]
+</codeblock> <p> <i>rombuild and rofsbuild</i>  </p> <p>A file that
+is copied from its source location into the ROM without any processing. </p> <p>Note that the HWVD is optional but, if specified, must be enclosed
+within square brackets. </p> </section>
+<section id="GUID-2F0E6FDC-4822-5FFF-9D7A-E2E25E088945"><title>dataaddress</title> <codeblock id="GUID-D060AFCC-0D79-5C8E-9D16-49883DE78C94" xml:space="preserve">dataaddress = &lt;hex-address&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>Linear address of data/bss chunks
+for all executables except the Kernel. </p> </section>
+<section id="GUID-EAD738DD-C0D5-5437-926D-8F567B78EDB2"><title>datadriveimagename</title> <codeblock id="GUID-CEA1CE42-50FD-5E49-8EB7-E6EBDAE3D090" xml:space="preserve">datadriveimagename = &lt;image name&gt;</codeblock> <p> <i> ROFSBUILD only</i>  </p> <p>Specifies the name of the data
+drive image. </p> </section>
+<section id="GUID-DD194603-EF11-5119-944B-399844BE8FF6"><title>DATA_IMAGE</title> <codeblock id="GUID-266AF2AA-32D1-5226-83DF-EEC3BE30645E" xml:space="preserve">DATA_IMAGE &lt;id&gt; &lt;name&gt; [size=&lt;partition size&gt;] [FAT16 | FAT32] [compress | no-compress]</codeblock> <p> <i>BUILDROM only</i>  </p> <p>Defines a data drive image. </p> <p>This is a data drive configuration feature. There is no limitation
+for the number of data drive images that can be defined for an internal
+media. </p> <table id="GUID-00ED8A80-B25C-50FB-83CB-CEA1D97D5872">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <codeph>id</codeph>  </p> </entry>
+<entry><p>A value to identify the data drive image. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>name</codeph>  </p> </entry>
+<entry><p>A name suitable as a suffix for the data drive image, IBY
+and logs. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>size = &lt;partition size&gt;</codeph>  </p> </entry>
+<entry><p>Defines the size of the data drive image that has to be
+generated. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>compress</codeph>  </p> </entry>
+<entry><p>Compresses files in the image. If not specified, no compression
+is the default behaviour. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>To mark a file for inclusion in a data drive it is prefixed
+with the keyword DATA_IMAGE. For example: </p> <codeblock id="GUID-5BC759DE-15ED-547B-8011-B0ED471D4520" xml:space="preserve">DATA_IMAGE[2] fatname size=16000000 fat16 -compress</codeblock> <p>The above information can also be included using '{' '}' braces,
+for example: </p> <codeblock id="GUID-26C953FA-7885-55D1-A404-FE6DA2BD3A84" xml:space="preserve">DATA_IMAGE[2]
+    {
+    dataimagename=fatname
+    compress
+    dataimagefilesystem=fat16
+    dataimagesize=16000000    
+    }
+      </codeblock> </section>
+<section id="GUID-3C7B6900-5190-540B-8B17-F0BCE7FCB1DB"><title> dataimagefilesystem</title> <codeblock id="GUID-C65978B7-63E7-513D-8733-F63062BED849" xml:space="preserve">dataimagefilesystem = &lt;FAT16 | FAT32&gt;</codeblock> <p> <i>BUILDROM and ROFSBUILD only</i>  </p> <p>Specifies the file
+system type of the datadrive image. If this is not specified then
+by default <xref href="GUID-E4447BEF-33D2-5099-BCC1-C72FBB3B0463.dita">BUILDROM</xref> sets the image file system as fat16. </p> </section>
+<section id="GUID-F15BB2C7-6773-5636-B329-4789AFEC809C"><title>dataimagename</title> <codeblock id="GUID-921E43DC-BCF6-59C5-9C29-6280E5ABF128" xml:space="preserve">dataimagename = &lt;image name&gt;</codeblock> <p> <i> ROFSBUILD only</i>  </p> <p>Specifies the name of the datadrive
+image. If this is not specified then by default <xref href="GUID-E4447BEF-33D2-5099-BCC1-C72FBB3B0463.dita">BUILDROM</xref> sets
+the image name as <b>dataimagex</b>, where x is the image index. </p> </section>
+<section id="GUID-C0E3CB31-93F9-548F-BAD1-54D04F719504"><title> dataimagesize</title> <codeblock id="GUID-BD29E016-BC13-5D0B-9CC6-39B7288C2EE9" xml:space="preserve">dataimagesize = &lt;size in bytes&gt;</codeblock> <p> <i>ROFSBUILD only</i>  </p> <p>Specifies the maximum size of
+a data drive image. The default size is the size of the data drive
+folder. </p> </section>
+<section id="GUID-A3DA2415-FAF3-56D9-9598-6A3E615C2248"><title>DEFAULT_LANGUAGE</title> <codeblock id="GUID-37A5F46F-9A43-51D5-A141-E617EC540002" xml:space="preserve">DEFAULT_LANGUAGE NN</codeblock> <p> <i>BUILDROM only</i>  </p> <p>Localisation support. Specifies
+the default language as a Symbian 2-digit code. This keyword should
+only be used once. </p> </section>
+<section id="GUID-06D8C5BB-5FFD-5A49-98FC-C5F133C0C126"><title>DEFINE</title> <codeblock id="GUID-8C60E867-2372-5823-ACB5-E336E99BC009" xml:space="preserve">DEFINE &lt;name&gt; &lt;replacement&gt;</codeblock> <p> <i>BUILDROM only</i>  </p> <p>Performs textual substitution.
+All subsequent instances of &lt;name&gt; are replaced by &lt;replacement&gt;. </p> <p>Notes: </p> <ul>
+<li id="GUID-82C80198-2F51-5D7C-84DB-F398F09FE9E5"><p>There is no
+UNDEFINE facility, and substitutions are applied in an unspecified
+order </p> </li>
+<li id="GUID-31FA7AC7-4615-57B5-8AF7-A289E0734792"><p>The C++ preprocessor
+cannot be used conveniently because it inserts whitespace around substituted
+text. </p> </li>
+</ul> </section>
+<section id="GUID-5A5348CB-1562-5C05-857D-C3F3EEDB51D7"><title>device[[HWVD]]</title> <codeblock id="GUID-12D1F89D-7E21-5FE0-8037-6B9E1516400C" xml:space="preserve">device[[HWVD]] = &lt;source-file&gt; &lt;destination-image-file&gt; [File-attribute-list] [Override-Attribute-list]</codeblock> <p> <i>rombuild only</i>  </p> <p>Defines kernel-mode logical or
+physical device drivers, which can have global data. The address of
+this data is generated by <codeph>rombuild</codeph>. </p> <p>Note
+that the <codeph>HWVD</codeph> is optional but, if specified, must
+be enclosed within square brackets. </p> </section>
+<section id="GUID-35E198AB-4B68-55C1-B6FB-471E743412DD"><title>dll[[HWVD]]</title> <codeblock id="GUID-BA573051-4702-5D15-B9D1-83E69B35F34E" xml:space="preserve">dll[[HWVD]] = &lt;source-file&gt; &lt;destination-image-file&gt; [File-attribute-list] [Override-Attribute-list]</codeblock> <p> <i>rombuild only</i>  </p> <p>Specifies an executable file whose
+entry point must be called. </p> </section>
+<section id="GUID-28C6642D-FBA6-5FD4-A8A5-BE761F71FBB6"><title>debugport</title> <codeblock id="GUID-260500B6-DF9D-58C8-B2C5-9EEBCEFD8281" xml:space="preserve">debugport = &lt;32bit-number&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>Specifies the destination port
+for Kernel and Bootstrap traces. </p> <p> <codeph>rombuild</codeph> stores the value in the ROM header. Each ASSP is free to interpret
+the debug port as it pleases, for example, as a serial port number
+or as an I/O base address. The default value is -1. </p> </section>
+<section id="GUID-0F63B6BF-5F9B-54A6-9109-D8661D365E5D"><title>defaultstackreserve</title> <codeblock id="GUID-58808242-D04B-5EB0-A2C8-0BD552976C3D" xml:space="preserve">defaultstackreserve = &lt;default stack reserve&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>Specifies the maximum size of
+the stack. </p> </section>
+<section id="GUID-F6F5BB84-ED0A-578F-88E5-26017E303C8E"><title>demandpagingconfig</title> <codeblock id="GUID-E2E8D89C-EE12-57F6-8F96-EBB170F74BC6" xml:space="preserve">demandpagingconfig &lt;MinLivePages&gt; &lt;MaxLivePages&gt; &lt;YoungOldPageRatio&gt; &lt;NANDPageReadDelay&gt; &lt;NANDPageReadCPUOverhead&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>Specifies settings for demand
+paging enabled ROM. </p> <p>This keyword takes four arguments, which
+are described below: </p> <ul>
+<li id="GUID-36F11698-0AE0-5EE1-974F-6649441B8068"><p> <codeph>MinLivePages</codeph>: This is the minimim number of RAM pages to reserve for the paging
+system.The number must be at least equal to 2*(YoungOldPageRatio+1).
+If a smaller number is specified, a number equal to this formula is
+used instead. </p> <p>For example, the <codeph>YoungOldPageRatio</codeph> is 3 and <codeph>MinLivePages</codeph> is set to 5. According to
+the formula 2*(YoungOldPageRatio+1), the minimum number of live pages
+must be 8, but the number specified is 5. So the minimum number is
+set to 8. </p> </li>
+<li id="GUID-4363D4F0-29B4-528A-A8C0-6AD33EC38E8D"><p> <codeph>MaxLivePages</codeph>: The maximum number of RAM pages the paging system may use. The
+number must be greater than or equal to <codeph>MinLivePages</codeph>. On a production system the number is always set to maximum (32767).
+However, low values may be used to test the effects of low free RAM. </p> </li>
+<li id="GUID-5B7A3BAC-74C2-53F0-BB42-A780C2039A95"><p> <codeph>YoungOldPageRatio</codeph>: The ratio of young to old pages maintained by the system. For this
+purpose, the paging system maintains a list of live pages, which is
+again split into two sub-lists: a list of young pages, and a list
+of old pages in the system. The paging system uses <codeph>YoungOldPageRatio</codeph> to maintain the relative sizes of these two lists. </p> <p>For example,
+let us assume that the ratio is R, the number of young pages is N<sub>y</sub> and the number of old pages is N<sub>o</sub>. If N<sub>y</sub> &gt; RN<sub>o</sub>, a page is taken from the end of the young pages
+list and placed at the start of the old pages list. This process is
+called aging. </p> </li>
+<li id="GUID-F83C2062-8417-5A80-A842-6402B5AB3AFD"><p> <codeph>NANDPageReadDelay</codeph>: The delay in microseconds, between initiating a page read operation
+and completing it. During this delay, other threads in the system
+may use the CPU. </p> </li>
+<li id="GUID-FC3B5DDD-72EF-52CD-BD65-5CFAE8C23C22"><p> <codeph>NANDPageReadCPUOverhead</codeph>: The CPU instruction execution time in microseconds, to setup and
+process a page read operation. During this delay, the CPU is busy
+and is not accessible by other threads. </p> </li>
+</ul> <p> <b>Note</b>: All the above listed attributes are limited
+to the value range 0-32767. </p> </section>
+<section id="GUID-8F9F15ED-B972-517E-91E3-F58657324A31"><title>dlldatatop</title> <codeblock id="GUID-F20FD3D8-BB27-5EBA-9A19-EE4BFC0F6BB5" xml:space="preserve">dlldatatop = &lt;address of data region&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>Specifies the top of the DLL data
+region. </p> </section>
+<section id="GUID-E7D77979-190A-5BB4-90A3-00E3C022A6E5"><title>ECHO</title> <codeblock id="GUID-18383190-BB88-535F-8841-624E15B8445A" xml:space="preserve">ECHO &lt;anything at all&gt;</codeblock> <p> <i>BUILDROM only</i>  </p> <p>Prints the rest of the line following
+the ECHO keyword to standard output. </p> </section>
+<section id="GUID-92EAD7F7-6524-57BF-9417-B455AF469C7A"><title>__ECOM_PLUGIN</title> <codeblock id="GUID-3C774FDB-5DB0-5FE1-94E1-F6E368E04FB8" xml:space="preserve">__ECOM_PLUGIN(&lt;local build directory&gt;, &lt;rom binary directory&gt;, &lt;local epoc32\data\Z directory&gt;, &lt;rom resources directory&gt;, &lt;DLL filename&gt;, &lt;resource filename&gt;)</codeblock> <p> <i>BUILDROM only</i>  </p> <p>Specifies an ECom plug-in, consisting
+of an implementation DLL and an ECom registration resource file, to
+include in ROM. </p> <p>Symbian platform code does not use this keyword
+directly. Instead, it uses the macro <codeph>ECOM_PLUGIN</codeph>,
+defined in <codeph>\epoc32\rom\include\header.iby</codeph>, which
+allows the plug-in to be specified more briefly, in the following
+form: </p> <codeblock id="GUID-323952F5-34D9-585A-8623-082A7567FD3D" xml:space="preserve">ECOM_PLUGIN(&lt;DLL name&gt;,&lt;resource file name&gt;)</codeblock> <p>For example: </p> <codeblock id="GUID-B7B37728-A4C2-5DD0-B6E3-8F45272CC157" xml:space="preserve">ECOM_PLUGIN(foo.dll,12345abc.rsc)</codeblock> <p>Note that the resource file name is specified using the <codeph>&lt;DLL-uid&gt;.rsc</codeph> format. </p> <p>Use of this keyword allows <codeph>BUILDROM</codeph> to perform special handling of ECom plug-ins. In
+particular, it allows <codeph>BUILDROM</codeph> optionally to create
+a static plug-in information (SPI) file, which contains all the resource
+registration files for ROM-based plug-ins. This allows ECom to be
+more efficient, as it can use the SPI file to find all ROM-based plug-ins
+and not have to scan the file system for them. BUILDROM implements
+this using the <xref href="GUID-6843109A-1567-5287-9AFF-3AE5E80334AF.dita#GUID-6843109A-1567-5287-9AFF-3AE5E80334AF/GUID-04F39AC1-3947-5C80-90BB-55CDF4D34571">spidata</xref> keyword. </p> <p>Note that as part of the ROM creation
+process, it is possible to add support for multiple languages. This
+affects how ECom resource files are specified by BUILDROM: </p> <ul>
+<li id="GUID-96C7FC54-5652-5CCC-9CAA-DC8F485B57CA"><p>If an SPI file
+is being created the <codeph>ECOM_PLUGIN</codeph> lines are processed
+at an intermediate BUILDROM stage to produce: </p> <codeblock id="GUID-64381884-1F25-515B-9149-5124BC3CADCD" xml:space="preserve">spidata=MULTI_LINGUIFY( EXT sourcename destname ) &lt;spi-id&gt; &lt;target-spi-dir&gt;</codeblock> <p>During the BUILDROM localisation stage these lines become: </p> <codeblock id="GUID-CA8D9809-F375-5056-A919-D69E59A1C263" xml:space="preserve">spidata = &lt;source-file&gt; &lt;original-destination-file&gt; &lt;spi-id&gt; &lt;target-spi-dir&gt;</codeblock> <p>where <codeph>&lt;spi-id&gt;</codeph> has the extension .SPI for
+the default language, and the extension .S<varname>nn</varname> for
+all other language codes <varname>nn</varname>. This means that if
+multiple languages are being included in the ROM image there is an
+SPI file for each included language. </p> </li>
+<li id="GUID-63C3444C-F760-5F1E-A932-C8F0CEA5EA2D"><p>If an SPI file
+is not being created <codeph>ECOM_PLUGIN</codeph> lines are processed
+an intermediate BUILDROM stage to produce: </p> <codeblock id="GUID-C32115C6-CEB4-5A5F-9240-35368276F645" xml:space="preserve">data=MULTI_LINGUIFY( EXT sourcename destname )</codeblock> <p>During the BUILDROM localisation stage these lines become: </p> <p> <codeph>data=sourcename.Enn destname.EXT</codeph> for the default
+language code </p> <p> <codeph>data=sourcename.Enn destname.Enn</codeph> for all other language codes <varname>nn</varname>. </p> </li>
+</ul> </section>
+<section id="GUID-7FB63AF4-EEAF-538E-8E55-95CC6CA9091B"><title>EPOCROOT</title> <codeblock id="GUID-AEA1E441-8DEC-5F45-9BE3-E8147F1F73B4" xml:space="preserve">EPOCROOT</codeblock> <p> <i>BUILDROM only</i>  </p> <p>A pre-defined substitution. This
+is replaced with the value of the EPOCROOT environment variable. </p> <p>Note that there is no UNDEFINE facility, and substitutions are
+applied in an unspecified order. </p> </section>
+<section id="GUID-14316103-95C6-50A2-A15C-4980979EBCF2"><title>epocwrapper</title> <codeblock id="GUID-0A447659-7A3A-55BF-B86E-86644CCF0648" xml:space="preserve">epocwrapper</codeblock> <p> <i>rombuild only</i>  </p> <p>Indicates that a Symbian platform
+ROM wrapper is required </p> </section>
+<section id="GUID-1756F49A-2609-52C1-AC31-6CC0B2306069"><title>ERROR</title> <codeblock id="GUID-07B567F3-84A2-5ACD-939E-F6E2C1BFEB93" xml:space="preserve">ERROR &lt;anything at all&gt;</codeblock> <p> <i>BUILDROM only</i>  </p> <p>Prints the rest of the line following
+the ERROR keyword to standard output, and reports the source file
+name and the line number. In addition, it causes <codeph>BUILDROM</codeph> to terminate without attempting to create the ROM image(s). </p> </section>
+<section id="GUID-1374D944-1C79-5C23-B972-1B0BABA09450"><title>exattrib</title> <codeblock id="GUID-7B7E6EFC-1E48-5D92-ABBC-8041AB4F5936" xml:space="preserve">exattrib=U</codeblock> <p> <i>ROFSBUILD only</i>  </p> <p>This keyword is used with the <xref href="GUID-A27BD4D8-8B0E-57C8-9C15-736109297DEA.dita#GUID-A27BD4D8-8B0E-57C8-9C15-736109297DEA/GUID-23851F44-7FAC-5B99-8D15-44099A61A4E4">data</xref> keyword to specify an additional attribute for the file
+being included in the ROM image. This attribute enables the file server
+to append the ROFS mounting information in the format, <codeph>file.ext[&lt;mount_id&gt;-00]</codeph> when registering the file. </p> <p>The following example shows how
+this keyword is used to set the attribute for a text file, which is
+copied to the ROM image: </p> <codeblock id="GUID-947FF981-CA3C-5D63-93FE-17AF4ECE5C89" xml:space="preserve">data=EPOCROOT##epoc32\rom\rofstest\hello8.txt Exattrib\test1.txt exattrib=U
+</codeblock> <p>Assuming that the <filepath>test1.txt</filepath> file
+is in the ROFS image and is the first one to be mounted by the file
+server, the file is included in the ROM image in the following format: </p> <codeblock id="GUID-2A1E6F77-9E14-5606-86C0-A73E11387B55" xml:space="preserve">z:\Exattrib\test1.txt[01-00]</codeblock> </section>
+<section id="GUID-B46B421D-4237-5053-BF27-66EA64EFAD92"><title>EXCLUDE_FEATURE</title> <codeblock id="GUID-DA793DC7-DB78-5EDF-A03E-B2516845DAA7" xml:space="preserve">EXCLUDE_FEATURE &lt;feature name&gt; [ SF &lt;status flags&gt; ]  [ UD &lt;user data&gt; ] </codeblock> <p>Where <codeph>&lt;feature&gt;</codeph> is either the feature name
+or a feature uid value. </p> <p> <b>Note</b>: The space between the <codeph>keyword FEATURE</codeph> and <codeph>&lt;feature name&gt;</codeph> is
+optional. </p> <p> <codeph>&lt;status flags&gt;</codeph> is a 32 bit
+hex number indicating the status flags of the feature. Each bit in
+the status flag signifies the following: </p> <table id="GUID-69260F1E-5EEA-520B-83DD-38BF980AA7C2">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/>
+<colspec colname="col2"/>
+<thead>
+<row>
+<entry>Bit</entry>
+<entry>Flag Name</entry>
+<entry>Value</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>0 </p> </entry>
+<entry><p>Supported </p> </entry>
+<entry><p>If the bit is set the feature is included, else the feature
+is excluded. </p> </entry>
+</row>
+<row>
+<entry><p>1</p> </entry>
+<entry><p>Upgradeable </p> </entry>
+<entry><p>This bit is reserved for future use. It will be used to
+upgrade a feature which is already associated to the device. </p> </entry>
+</row>
+<row>
+<entry><p>2</p> </entry>
+<entry><p>Modifiable </p> </entry>
+<entry><p>If the bit is set the feature is modified at run-time. The
+default flag values for such a feature are defined in a ROM image
+obey file. </p> </entry>
+</row>
+<row>
+<entry><p>3</p> </entry>
+<entry><p>Blacklisted </p> </entry>
+<entry><p>If the bit is set the feature is blacklisted, and cannot
+be changed at run-time. It signifies that if the feature appears in
+subsequent data files or plug-in info, it would be ignored. </p> <p>It also prevents a feature from being upgraded and it can never be
+changed/ overridden. If a feature is blacklisted, its upgradeable
+flag is not set. </p> </entry>
+</row>
+<row>
+<entry><p>4</p> </entry>
+<entry><p>Uninitialised </p> </entry>
+<entry><p>If the bit is set the flag supported state is not initialised
+at build-time, and it is initialised at run-time by system software. </p> <p>To set the supported flag of a specific feature, perform a runtime
+call to <codeph>RFeatureControl</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p>5</p> </entry>
+<entry><p>Persisted </p> </entry>
+<entry><p>If the bit is set the flag value is preserved across reboot
+or system turn off period. </p> </entry>
+</row>
+<row>
+<entry><p>6-31 </p> </entry>
+<entry><p>Reserved </p> </entry>
+<entry><p>These bits are reserved for future use. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p> <codeph>&lt;user data&gt;</codeph> is a 32 bit hex number
+indicating the user data value associated with the feature. </p> <p> <i>BUILDROM only</i>  </p> <p>The <b>EXCLUDE_FEATURE</b> keyword
+is used to mark a feature as excluded. </p> </section>
+<section id="GUID-1D8AC4CF-8EDA-538B-8A74-5A55CCDEE2AB"><title>extension[[HWVD]]</title> <codeblock id="GUID-26B88CD3-6BEB-5CCD-8BA4-5659295BAA65" xml:space="preserve">extension[[HWVD]] = &lt;source-file&gt; &lt;destination-image-file&gt; [File-attribute-list] [Override-Attribute-list]</codeblock> <p> <i>rombuild only</i>  </p> <p>Defines a kernel-mode DLL that
+can have global data, the address of which is generated by <codeph>rombuild</codeph>. Extension files are connected together in a linked
+list, which allows the Kernel to load the extensions at boot time
+before the ROM file system is available. </p> <p>Note that the <codeph>HWVD</codeph> is optional but, if specified, must be enclosed within
+square brackets. </p> </section>
+<section id="GUID-1E15B489-2FF4-5C14-90B2-0EE66CBB7F7F"><title>extensionrofs</title> <codeblock id="GUID-30CBD9F3-B021-5A26-9C00-5BFC470BFE1C" xml:space="preserve">extensionrofs</codeblock> <p> <i>rofsbuild only</i>  </p> <p>Marks the start of the definition
+of an optional extension ROFS. </p> </section>
+<section id="GUID-7780C1D5-92C0-58D1-9953-7231A760546E"><title>extensionrofsname</title> <codeblock id="GUID-8AE6D48E-5202-5B2F-9BC7-535325A771AE" xml:space="preserve">extensionrofsname = &lt;filename&gt;</codeblock> <p> <i>rofsbuild only</i>  </p> <p>Defines the name of the ROFS
+extension image. </p> <p>Any new files added after this keyword will
+appear in the extension. The files in the core can be renamed, hidden,
+and aliased by using the other keywords. </p> </section>
+<section id="GUID-0BDDFFBC-C045-5A1A-8DEC-7FBF6AEFFC64"><title>extensionrom</title> <codeblock id="GUID-E0D850A0-0B91-5A4C-B904-2AC8196BDFC3" xml:space="preserve">extensionrom = &lt;rom-file-name&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>This marks the start of an extension
+ROM section. A filename of "*" can be specified, which means use the
+file name specified on the <xref href="GUID-43852F38-4841-5E6F-927B-A38ED4424F0C.dita#GUID-43852F38-4841-5E6F-927B-A38ED4424F0C/GUID-29BEF45C-2361-5245-9184-0261B99B6FB1">romname</xref> keyword in a rom-information-statement </p> </section>
+<section id="GUID-A71135A8-C6A6-50DB-8081-8CCD5B6AC0CB"><title>externaltool</title> <codeblock id="GUID-4A76182B-1A07-5C3B-8403-59C9F7910873" xml:space="preserve">externaltool=&lt;toolname&gt;</codeblock> <p> <i>BUILDROM only</i>  </p> <p>Used for invoking external tools
+through the IBY file keyword externaltool, specifying the list of
+toolnames each seperated by a comma. <codeph>externaltool=toolname1,
+toolname2,... toolnameN</codeph>  </p> <p>The same invocation can
+be achieved alternatively by using <xref href="GUID-E4447BEF-33D2-5099-BCC1-C72FBB3B0463.dita#GUID-E4447BEF-33D2-5099-BCC1-C72FBB3B0463/GUID-3E50F8DA-36D3-5E3D-B229-F841EF4AC47D">BUILDROM</xref> command-line option <codeph>-e&lt;toolname&gt;.</codeph>  </p> </section>
+<section id="GUID-1D289928-36B0-55D6-A061-7D01C6E5802A"><title>fattable</title> <codeblock id="GUID-7F17C3F3-4CF9-5268-BCFB-4B2B99F7464B" xml:space="preserve">fattable=&lt;number of FAT tables&gt;</codeblock> <p> <i>rofsbuild only</i>  </p> <p>Configures the number of FAT
+tables for the file system in the data-drive image. </p> </section>
+<section id="GUID-AA809069-1D03-5578-8409-314DD3D27FD5"><title>FEATURE</title> <codeblock id="GUID-216E30B1-1105-5E89-87C8-A2BF1FBE7FC2" xml:space="preserve">FEATURE &lt;feature name&gt; [ SF &lt;status flags&gt; ]  [ UD &lt;user data&gt; ]</codeblock> <p>Where <codeph>&lt;feature&gt;</codeph> is either the feature name
+or the feature uid value. </p> <p> <b>Note</b>: The space between
+the <codeph>keyword FEATURE</codeph> and <codeph>&lt;feature name&gt;</codeph> is optional. </p> <p> <codeph>&lt;status flags&gt;</codeph> is a 32
+bit hex number indicating the status flags of the feature. Each bit
+in the status flag signifies the following: </p> <table id="GUID-CDA5C906-4B45-5BCF-9923-37D7FF042BF0">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/>
+<colspec colname="col2"/>
+<thead>
+<row>
+<entry>Bit</entry>
+<entry>Flag Name</entry>
+<entry>Value</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p>0 </p> </entry>
+<entry><p>Supported </p> </entry>
+<entry><p>If the bit is set the feature is included, else the feature
+is excluded. </p> </entry>
+</row>
+<row>
+<entry><p>1</p> </entry>
+<entry><p>Upgradeable </p> </entry>
+<entry><p>This bit is reserved for future use. It will be used to
+upgrade a feature which is already associated to the device. </p> </entry>
+</row>
+<row>
+<entry><p>2</p> </entry>
+<entry><p>Modifiable </p> </entry>
+<entry><p>If the bit is set the feature is modified at run-time. The
+default flag values for such a feature are defined in a ROM image
+obey file. </p> </entry>
+</row>
+<row>
+<entry><p>3</p> </entry>
+<entry><p>Blacklisted </p> </entry>
+<entry><p>If the bit is set the feature is blacklisted, and cannot
+be changed at run-time. It signifies that if the feature appears in
+subsequent data files or plug-in info, it would be ignored. </p> <p>It also prevents a feature from being upgraded and it can never be
+changed/ overridden. If a feature is blacklisted, its upgradeable
+flag is not set. </p> </entry>
+</row>
+<row>
+<entry><p>4</p> </entry>
+<entry><p>Uninitialised </p> </entry>
+<entry><p>If the bit is set the flag supported state is not initialised
+at build-time, and it is initialised at run-time by system software. </p> <p>To set the supported flag of a specific feature, perform a runtime
+call to <codeph>RFeatureControl</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p>5</p> </entry>
+<entry><p>Persisted </p> </entry>
+<entry><p>If the bit is set the flag value is preserved across reboot
+or system turn off period. </p> </entry>
+</row>
+<row>
+<entry><p>6-31 </p> </entry>
+<entry><p>Reserved </p> </entry>
+<entry><p>These bits are reserved for future use. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p> <codeph>&lt;user data&gt;</codeph> is a 32 bit hex number
+indicating the user data value associated with the feature. </p> <p> <i>BUILDROM only</i>  </p> <p>The <b>FEATURE</b> keyword is used
+to mark a feature as included. </p> </section>
+<section id="GUID-ECDEA52A-1357-5173-AA80-4E34A83A4511"><title>file[[HWVD]]</title> <codeblock id="GUID-7196504A-CE79-5EC6-BA7E-9E6F6F1FCDBE" xml:space="preserve">file[[HWVD]] = &lt;source-file&gt; &lt;destination-image-file&gt; [File-attribute-list] [Override-Attribute-list] [paged | unpaged]</codeblock> <p> <i>rombuild and rofsbuild</i>  </p> <p>A standard executable
+file, for example, a <filepath>.exe</filepath> or a <codeph>.dll</codeph>, in PE format or E32 image format. Executable files are stripped
+of their relocation information prior to being stored in the ROM.
+The relocation information is not necessary in the ROM because all
+files are executed in place with an address that is determined at
+ROM build time. Use the modifiers <codeph>paged</codeph> and <codeph>unpaged</codeph> to specify whether to page the executables or not.
+You can also use the <filepath>MMP</filepath> file keywords <codeph>paged</codeph> and <codeph>unpaged</codeph> to specify whether to
+page an executable or not. </p> <p>For example, the following entry
+in the Obey file provides the source and destination locations of
+the file <filepath>MyLibrary.dll</filepath> and marks the DLL as <codeph>unpaged</codeph>. </p> <codeblock id="GUID-E2AE0C0E-E2A8-5ADF-9F12-96F21D5F34D3" xml:space="preserve">file=ABI_DIR\DEBUG_DIR\MyLibrary.dll   \sys\bin\MyLibrary.dll   unpaged</codeblock> <p>Notes: </p> <ul>
+<li id="GUID-8B7F564E-445C-5E30-BF66-6A54A96AF6C1"><p>the <codeph>HWVD</codeph> is optional but, if specified, must be enclosed within
+square brackets. </p> </li>
+<li id="GUID-8BA09533-EE23-597A-A294-4977B50362B1"><p>the information
+required to relocate the file is not preserved; this keyword provides
+a fully resolved uncompressed file. </p> </li>
+</ul> </section>
+<section id="GUID-B4C3E29E-9E4A-565E-B9EC-B078894521B6"><title>filecompressnone</title> <codeblock id="GUID-29E83E81-9DEB-5E2B-979E-749DFE444762" xml:space="preserve">filecompressnone=\Epoc32\release\&lt;platform&gt;&lt;build&gt;&lt;target directory&gt;&lt;source file&gt; &lt;destination file&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>Doesn't compress the resulting
+ROM image. </p> <p>For example: </p> <codeblock id="GUID-0AC7EA96-8B92-56B9-8D62-23EDA26F2A6F" xml:space="preserve">filecompressnone=\epoc32\release\ARMV\UREL\TEST\RUNTEST.EXE    sys\bin\RUNTEST.EXE</codeblock> </section>
+<section id="GUID-5B670D2C-9295-556A-BF56-B1018EB79CCE"><title>filecompressinflate</title> <codeblock id="GUID-E0C7D396-3E1B-5C7E-979A-C0C949308542" xml:space="preserve">filecompressinflate=\Epoc32\release\&lt;platform&gt;&lt;build&gt;&lt;target directory&gt;&lt;source file&gt; &lt;destination file&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>Compresses the resulting ROM image
+using the Deflate, Huffman+LZ77 algorithm. </p> <p>For example: </p> <codeblock id="GUID-9D881B0E-1B8A-5914-A28F-9DCBE499E11E" xml:space="preserve">filecompressinflate=\epoc32\release\ARMV\UREL\TEST\RUNTEST.EXE    sys\bin\RUNTEST.EXE</codeblock> </section>
+<section id="GUID-6003A5F3-0537-53DF-BEC4-13D310FD944D"><title>filecompressbytepair</title> <codeblock id="GUID-051F3506-C0AD-5C30-ABAA-AC7BD46E0925" xml:space="preserve">filecompressbytepair=\Epoc32\release\&lt;platform&gt;&lt;build&gt;&lt;target directory&gt;&lt;source file&gt; &lt;destination file&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>Compresses the resulting ROM image
+using the bytepair algorithm. </p> <p>For example: </p> <codeblock id="GUID-BB37B728-0A9A-5C19-9978-005C3BD3BF7F" xml:space="preserve">filecompressbytepair=\epoc32\release\ARMV\UREL\TEST\RUNTEST.EXE    sys\bin\RUNTEST.EXE</codeblock> </section>
+<section id="GUID-B9B523ED-4D61-5EBF-9EFC-C47F8FA78C80"><title>filecompress[[HWVD]]</title> <codeblock id="GUID-30AAFC4F-7AD6-5E36-9CF3-4280D36FFA9B" xml:space="preserve">filecompress[[HWVD]] = &lt;source-file&gt; &lt;destination-file&gt; [File-attribute-list] [Override-Attribute-list]</codeblock> <p> <i>rombuild only</i>  </p> <p>An XIP (execute-in-place) executable
+to be loaded into the ROM in compressed format. Note that the information
+required to relocate the file is preserved. </p> </section>
+<section id="GUID-9CAD6F80-7817-56E6-BB06-DB70B0A1EBF1"><title>fileuncompress[[HWVD]]</title> <codeblock id="GUID-A7B40C3C-8D7A-5EC7-96E4-4E7B5398DB07" xml:space="preserve">fileuncompress[[HWVD]] = &lt;source-file&gt; &lt;destination-file&gt; [File-attribute-list] [Override-Attribute-list]</codeblock> <p> <i>rombuild only</i>  </p> <p>XIP (execute-in-place) executable
+to be loaded into the ROM uncompressed format. Note that the information
+required to relocate the file is preserved. </p> </section>
+<section id="GUID-37403D0E-65E7-5998-A568-CC5839B7ACDC"><title>fixed</title> <codeblock id="GUID-6232741F-FCA0-5E29-9287-D34B03D66822" xml:space="preserve">fixed</codeblock> <p> <i>rombuild only</i>  </p> <p>This executable is loaded as a
+fixed address process, and has its data fixed in kernel space (high
+memory). The data of normal executables is paged in and out of low
+memory as the executable runs. Fixing a chosen subset of the system
+servers saves context switch time, and speeds execution considerably. </p> </section>
+<section id="GUID-F594BE86-6FFD-4939-B8B9-5DC45C24607C"><title>formatversion</title><p><codeblock xml:space="preserve">formatversion= &lt;format version&gt;</codeblock></p><p>Specifies the SMR image format version. This value is checked by
+the SMR consumers (such as HCR) at runtime to ensure code compatibility
+with image or data format.</p></section>
+</conbody></concept>
\ No newline at end of file