Adaptation/GUID-A27BD4D8-8B0E-57C8-9C15-736109297DEA.dita
author Graeme Price <GRAEME.PRICE@NOKIA.COM>
Fri, 15 Oct 2010 14:32:18 +0100
changeset 15 307f4279f433
permissions -rw-r--r--
Initial contribution of the Adaptation Documentation.

<?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>