Adaptation/GUID-43852F38-4841-5E6F-927B-A38ED4424F0C.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-43852F38-4841-5E6F-927B-A38ED4424F0C" xml:lang="en"><title>Keyword reference (P-R)</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>This page lists the keywords starting from P to R. </p>
<section id="GUID-C95FF58E-B556-4B31-AC67-9B8FCB283D0F"><title>paged</title><codeblock xml:space="preserve">paged</codeblock><p><i>rombuild and rofsbuild</i></p><p>Use the <codeph>paged</codeph> keyword to specify that the executable
is code paged.   If an executable is marked as code paged, the pages
are loaded into the RAM on demand one page after another. This can
reduce application startup time and memory usage. </p><p>This is the
same as specifying the <codeph>pagedcode</codeph> keyword for an executable.</p></section>
<section id="GUID-1314D06A-FA06-4D08-87FA-4B4927081127"><title>pagedcode</title><codeblock xml:space="preserve">pagedcode</codeblock><p><i>rombuild and rofsbuild</i></p><p>Same as <xref href="GUID-43852F38-4841-5E6F-927B-A38ED4424F0C.dita#GUID-43852F38-4841-5E6F-927B-A38ED4424F0C/GUID-C95FF58E-B556-4B31-AC67-9B8FCB283D0F"><codeph>paged</codeph></xref>.</p></section>
<section id="GUID-23A28BEA-1AF4-42B6-887F-60C7B0EE2DEC"><title>pageddata</title><codeblock xml:space="preserve">pageddata</codeblock><p><i>rombuild and rofsbuild</i></p><p>Use the <codeph>pageddata</codeph> keyword to specify that the
executable is <xref href="http://developer.symbian.org/main/documentation/reference/s3/pdk/GUID-1391CDCC-9A09-54FB-BA7D-BC7A91DB2351.html" scope="external">data paged</xref>. This controls the paging of both
heap and stacks for an executable. For more fine-grained control of
memory usage, specify the paging of heap and stack data during the
creation of new threads and processes. </p></section>
<section id="GUID-ADB633E8-8DD1-514C-9560-A6A2429DA199"><title>pagingoverride</title> <codeblock id="GUID-B519894B-22BB-516A-A955-093ED800767B" xml:space="preserve">pagingoverride [NOPAGING | ALWAYSPAGE | DEFAULTUNPAGED | DEFAULTPAGED]</codeblock> <p> <i>rombuild and rofsbuild</i>  </p> <p>This overrides the code
and data paging settings for all the files, such as EXE and DLL in
an OBY file. It takes a single argument, which can be one of the following: </p> <table id="GUID-CB22C2A3-68E8-51DD-9314-3ABC6AC71FE5">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<thead>
<row>
<entry>Argument</entry>
<entry>Purpose</entry>
</row>
</thead>
<tbody>
<row>
<entry><p> <i>NOPAGING</i>  </p> </entry>
<entry><p>To mark all executables as unpaged, irrespective of whether
they are marked as paged or unpaged in the <filepath>MMP</filepath> file. </p> </entry>
</row>
<row>
<entry><p> <i>ALWAYSPAGE</i>  </p> </entry>
<entry><p>To mark all executables as paged, irrespective of whether
they are marked as paged or unpaged in the <filepath>MMP</filepath> file. </p> </entry>
</row>
<row>
<entry><p> <i>DEFAULTUNPAGED</i>  </p> </entry>
<entry><p>All executables, which are not marked as paged or unpaged
are marked as unpaged by default. </p> </entry>
</row>
<row>
<entry><p> <i>DEFAULTPAGED</i>  </p> </entry>
<entry><p>All executables, which are not marked as paged or unpaged
are marked as paged by default. </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p>For example, the following entry in the Obey file marks
all the executables as unpaged: </p> <codeblock id="GUID-A6794DD3-049A-5C5C-A68D-E54316DF30DD" xml:space="preserve">pagingoverride NOPAGING</codeblock> </section>
<section id="GUID-29A1FB89-E364-5C90-99D3-92247B514810"><title>pagingpolicy</title> <codeblock id="GUID-AE92F332-CAF1-5BA7-918C-0BD8FE0F11C0" xml:space="preserve">pagingpolicy [NOPAGING | ALWAYSPAGE | DEFAULTUNPAGED | DEFAULTPAGED]</codeblock> <p> <i>rombuild and rofsbuild</i>  </p> <p>This overrides the default
settings for both code and data paging. It also overrides 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>. This keyword takes a single argument, which
can be one of the possible values listed in <xref href="GUID-43852F38-4841-5E6F-927B-A38ED4424F0C.dita#GUID-43852F38-4841-5E6F-927B-A38ED4424F0C/GUID-ADB633E8-8DD1-514C-9560-A6A2429DA199">pagingoverride</xref>. </p> <p>For example, the following entry in
the Obey file instructs the loader not to page the executables in
the default state: </p> <codeblock id="GUID-065D951C-4AD1-5DCB-A470-2B11D025D43F" xml:space="preserve">pagingpolicy NOPAGING</codeblock> </section>
<section id="GUID-C3734F82-AAB3-438F-BE32-C3EF2C26B4FD"><title>payloaduid</title><p><codeblock xml:space="preserve">payloaduid = &lt;payloaduid&gt;</codeblock></p><p>Identifies
the payload of the SMR partition. This field allows kernel consumers
(such as HCR) at runtime to locate the memory regions that contain
their data.</p></section>
<section id="GUID-871843B7-9AB6-4BEC-92BD-4BB1D6E81B34"><title>payloadflags</title><p><codeblock xml:space="preserve">payloadflags = &lt;payloadflags&gt;</codeblock></p><p>Specifies the payload specific flags that are defined at runtime
by the the payload provider tools or user and payload consumer. This
field allows the provider to give metadata to the consumer of the
payload.</p></section>
<section id="GUID-705897FD-9EC4-5F54-9198-A93C5080B80E"><title>patchdata</title> <codeblock id="GUID-AC20808F-B7E1-5A92-8C61-94E3E93D0AC1" xml:space="preserve">patchdata &lt;binary_name&gt; @ &lt;symbolname&gt; &lt;newvalue&gt;
</codeblock> <p> <i>BUILDROM only</i>  </p> <p>This keyword is introduced
since Symbian OS v9.3, and it enables you to change the value of a
constant that is exported by a binary while building the ROM image. </p> <p>This means that the value of the constant can be changed without
rebuilding the binary. This is useful for quickly building ROM images
with different values for the constant, allowing you to make comparisons
in behaviour between the ROMs. This keyword must be placed before
or after the binary that it patches in the <filepath>OBY</filepath> file. </p> <table id="GUID-AF61DE84-7208-52B6-A586-2493E4CDA6FC">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p>&lt;binary_name&gt; </p> </entry>
<entry><p>The name of the binary on the PC and not the name in the
ROM image. </p> </entry>
</row>
<row>
<entry><p>&lt;symbolname&gt; </p> </entry>
<entry><p>The symbolic name of the constant exported by the binary. </p> </entry>
</row>
<row>
<entry><p>&lt;newvalue&gt; </p> </entry>
<entry><p>The replacement value. This can be specified either as an
integer or as a hexadecimal value. </p> <p>It is assumed that the
exported constant is an integer that is either 1 byte, 2 bytes or
4 bytes in length, which means that the size of this replacement value
must not exceed the capacity of the constant to represent it. </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p>For example, if a DLL named <filepath>dllA.dll</filepath> is created based on the header file <filepath>dllA.h</filepath> and
source file <filepath>dllA.cpp</filepath>: </p> <codeblock id="GUID-D711F52C-2888-5AFA-AD38-F234CFC39A20" xml:space="preserve">//dllA.h
IMPORT_C int bar();
...
</codeblock> <codeblock id="GUID-F5663D32-3ABC-5C08-8145-624459278F5C" xml:space="preserve">//dllA.cpp
#include “dllA.h”
EXPORT_C extern const unsigned int foo = 0x1234;
EXPORT_C int bar ()
    {
    return foo;
    ...
    }
</codeblock> <p>then an executable file can import this constant;
for example: </p> <codeblock id="GUID-CB782D99-4860-59E3-8E0F-2A6078A7DF55" xml:space="preserve">#include &lt;e32cons.h&gt;
#include &lt;e32base.h&gt;
#include “dllA.h”
...
int importValue = bar();
...
</codeblock> <p>If you add the following statement to the <filepath>.oby</filepath> file to change the value of constant "foo" while
building the ROM, then the actual value of <codeph>foo</codeph> accessed
by the executable file is <codeph>0x100</codeph>, and not <codeph>0x1234</codeph> as specified when <filepath>DllA</filepath> was originally
built. </p> <codeblock id="GUID-39DF91C3-AD49-5FCB-9825-3A6CE73F8B4C" xml:space="preserve">patchdata dllA @ foo 0x100</codeblock> <p> <b> Notes:</b>  </p> <ul>
<li id="GUID-825461D9-E933-531C-AD97-398AE781105F"><p>The value of
the constant in the source is not changed. It is only its value in
the copy of the binary incorporated into the ROM image that is changed. </p> </li>
<li id="GUID-0BAAF169-F04B-5E3C-B7E1-E66132034D4D"><p>Do not define
a patchable constant (exported data) in the source file in which it
is referred to, because the compiler may inline it. If a constant
is inlined, it cannot be patched. Hence, the constant must be defined
in a separate source file and must be referred to in other source
files by using the <codeph>extern</codeph> qualifier. </p> </li>
</ul> </section>
<section id="GUID-19D81B5A-A13E-5468-B886-2EF65139C950"><title>patched</title> <codeblock id="GUID-3C8C1038-E677-5583-9E68-0BF6CADDB586" xml:space="preserve">patched</codeblock> <p> <i>rombuild only</i>  </p> <p>This is used when sectioning a
ROM for language variants etc. If an executable is to be replaced,
make it patched in the first section of the ROM and include a replacement
in the top section of the ROM, after the <xref href="GUID-6843109A-1567-5287-9AFF-3AE5E80334AF.dita#GUID-6843109A-1567-5287-9AFF-3AE5E80334AF/GUID-D31658A3-6346-5BBE-B79C-D274113C6120">section</xref> keyword. </p> <p>This keyword appears at the point
in the obey file where the ROM is to be split. All files before this
line appear in the first (constant) section and files after appear
in the second (patch/language) section. </p> </section>
<section id="GUID-1950C3F1-BB6A-5560-955B-41D8A62FF041"><title>platsecdiagnostics</title> <codeblock id="GUID-438A1C0E-6526-5907-A1A5-77FDE415B191" xml:space="preserve">platsecdiagnostics [on | off]</codeblock> <p> <i>rombuild only</i>  </p> <p>This is a keyword that affects
Symbian platform security when building a ROM. </p> <p>It controls
whether or not diagnostic messages are emitted when a capability or
other platform security policy check fails. A diagnostic message takes
the general form: </p> <codeblock id="GUID-5D417FA2-0C87-5D56-A9A7-24D13A3DDDE2" xml:space="preserve">*PlatSec* ERROR - xxxxx</codeblock> <p>if platform security is enforced </p> <codeblock id="GUID-0FD5A8AA-FCDB-539E-ACE4-1B8FFD1659D8" xml:space="preserve">*PlatSec* WARNING - xxxxx</codeblock> <p>if platform security is <i>NOT</i> enforced. </p> <p>The string
xxxxx represents the text of the message that describes the capability
being violated or the security policy check that is failing. </p> <ul>
<li id="GUID-9D53B858-A308-597B-B2D9-D9FF3A2996CC"><p>Specify <codeph>on</codeph> to <i>enable</i> diagnostic messages to be emitted. </p> </li>
<li id="GUID-EA18D791-E5C6-5B83-8B50-BD24A1292583"><p>Specify <codeph>off</codeph> to <i>disable</i> diagnostic messages from being emitted. </p> </li>
<li id="GUID-3FAF9887-5C75-5892-B0A6-F85D75DC2188"><p>If neither <codeph>on</codeph> nor <codeph>off</codeph> is specified, then <codeph>on</codeph> is assumed as a default. </p> </li>
</ul> </section>
<section id="GUID-2644E195-4339-5809-ACA0-6B15244AA4AD"><title>platsecdisabledcaps</title> <codeblock id="GUID-9377A178-7A9D-5B48-8F6F-FB832180F483" xml:space="preserve">platsecdisabledcaps [+|-]cap1 [+|- cap2] [+|- cap3] ...[+|-capn]</codeblock> <p> <i>rombuild only</i>  </p> <p>This is a keyword that affects
Symbian platform security when building a ROM. </p> <p>It allows capabilities
to be added to, or removed from, all executables in the ROM image. </p> <p>Specify a list of capability names prefixed either by a <codeph>+</codeph> character or a <codeph>-</codeph> character. The first
capability name in the list does not need to prefixed by either of
these characters, but if it is omitted a <codeph>+</codeph> character
is assumed. </p> <p>Capabilities preceded by a <codeph>+</codeph> character
are added to all executables, while those preceded by a <codeph>-</codeph> character are removed from all executables. </p> <p>Any of the capabilities
listed in the left hand column in the table below can be specified;
follow the corresponding link in the right hand column for a description
of that capability. Note that you can also use: </p> <codeblock id="GUID-D27E91F6-4522-5A78-AA36-5F21F6893B89" xml:space="preserve">+ALL</codeblock> <p>to add all capabilities, and </p> <codeblock id="GUID-005016EE-7B7C-5B92-98AF-12176CEBEEBF" xml:space="preserve">+NONE</codeblock> <p>to remove all capabilities. </p> <p>Note, however, that the combinations <codeph>-ALL</codeph> and <codeph>-NONE</codeph> are not permitted </p> <table id="GUID-60D9A9D6-420C-593E-A67B-FA10572DBC3D">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p><table id="GUID-F0A90295-7468-5559-BDF7-68E70E10EFCE">
<tgroup cols="1"><colspec colname="col0"/>

<tbody>
<row>
<entry>Capability</entry>
</row>
</tbody>
</tgroup>
</table> </p> </entry>
<entry><p><table id="GUID-E1446E24-51B8-53CB-902F-5DB0EF66323D">
<tgroup cols="1"><colspec colname="col0"/>

<tbody>
<row>
<entry>TCapability Enum value</entry>
</row>
</tbody>
</tgroup>
</table> </p> </entry>
</row>
<row>
<entry><p>TCB </p> </entry>
<entry><p> <xref href="GUID-0C19208D-732F-3B2B-9B0F-81CB1CB56DFC.dita"><apiname>ECapabilityTCB</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>CommDD </p> </entry>
<entry><p> <xref href="GUID-2714B609-120A-31C1-9415-235A2FEB9D9A.dita"><apiname>ECapabilityCommDD</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>PowerMgmt </p> </entry>
<entry><p> <xref href="GUID-76F4383B-4EA5-391A-A271-A8F65ED77EC0.dita"><apiname>ECapabilityPowerMgmt</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>MultimediaDD </p> </entry>
<entry><p> <xref href="GUID-48AA1686-C619-3C36-B4B5-6C5DE1F50B0A.dita"><apiname>ECapabilityMultimediaDD</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>ReadDeviceData </p> </entry>
<entry><p> <xref href="GUID-1AC4E327-14CE-382D-AA1A-1A7EDBA1863E.dita"><apiname>ECapabilityReadDeviceData</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>WriteDeviceData </p> </entry>
<entry><p> <xref href="GUID-C607209F-6FC5-31DE-8034-E5B799B857A8.dita"><apiname>ECapabilityWriteDeviceData</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>DRM </p> </entry>
<entry><p> <xref href="GUID-C0EF5A59-F716-313A-911F-2D3D773DF597.dita"><apiname>ECapabilityDRM</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>TrustedUI </p> </entry>
<entry><p> <xref href="GUID-AFB7AB40-B829-37B8-AAB1-7A6FAED9671B.dita"><apiname>ECapabilityTrustedUI</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>ProtServ </p> </entry>
<entry><p> <xref href="GUID-200CA018-2CB3-3E4A-A505-085FAD2E3E8B.dita"><apiname>ECapabilityProtServ</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>DiskAdmin </p> </entry>
<entry><p> <xref href="GUID-99D8A4E8-BC4F-39FF-A3DF-832CF0411629.dita"><apiname>ECapabilityDiskAdmin</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>NetworkControl </p> </entry>
<entry><p> <xref href="GUID-4AFB561B-34D7-3570-A4C9-24B4952C787A.dita"><apiname>ECapabilityNetworkControl</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>AllFiles </p> </entry>
<entry><p> <xref href="GUID-89631CF3-4AEE-3C2F-8AAE-5D9C3EB3B373.dita"><apiname>ECapabilityAllFiles</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>SwEvent </p> </entry>
<entry><p> <xref href="GUID-369B6584-AB7F-3AA2-B912-E912D2BCBE98.dita"><apiname>ECapabilitySwEvent</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>NetworkServices </p> </entry>
<entry><p> <xref href="GUID-07A09CBA-CB4E-3CBE-9FA3-930C455F3B0C.dita"><apiname>ECapabilityNetworkServices</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>LocalServices </p> </entry>
<entry><p> <xref href="GUID-7D0E447B-EC32-355B-8BBF-F074A1B10D8A.dita"><apiname>ECapabilityLocalServices</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>ReadUserData </p> </entry>
<entry><p> <xref href="GUID-4897D21D-5ACF-30A5-A38C-371A3983814D.dita"><apiname>ECapabilityReadUserData</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>WriteUserData </p> </entry>
<entry><p> <xref href="GUID-8908E5F7-AC6A-333B-8F65-6DDC46798F48.dita"><apiname>ECapabilityWriteUserData</apiname></xref>  </p> </entry>
</row>
<row>
<entry><p>Location </p> </entry>
<entry><p> <xref href="GUID-1B530864-C77B-3CDE-B761-83C2EED44DB8.dita"><apiname>ECapabilityLocation</apiname></xref>  </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p>For example: </p> <codeblock id="GUID-9EB9582E-7FD8-525D-872A-50B6E6D0AAE0" xml:space="preserve">PlatSecDisabledCaps LocalServices+ReadDeviceData+ReadUserData</codeblock> </section>
<section id="GUID-275FDBE0-D0AA-5976-9886-B0D56C075C7F"><title>platsecenforcement</title> <codeblock id="GUID-CEAAB920-F6C4-5079-BD58-88ECC541D8D5" xml:space="preserve">platsecenforcement [on | off]</codeblock> <p> <i>rombuild only</i>  </p> <p>This is a keyword that affects
Symbian platform security when building a ROM. </p> <p>It controls
whether or not platform security is enforced. </p> <ul>
<li id="GUID-E33ED82C-6870-59CE-8240-B60E4C5C33E9"><p>Specify <codeph>on</codeph> to <i>enable</i> platform security enforcement. If enforcement
is enabled, and a capability or other platform security policy check
fails, then the appropriate action for a failed platform security
check occurs. </p> </li>
<li id="GUID-35B93E8F-A341-5246-A400-FD501FE2F4C8"><p>Specify <codeph>off</codeph> to <i>disable</i> platform security enforcement. If
enforcement is disabled, and a capability or other platform security
policy check fails, then the system continues as though the original
platform security check had in fact passed. </p> </li>
<li id="GUID-DAEBBB42-DBF7-5821-B4E9-2FAC23057FEF"><p>If neither <codeph>on</codeph> nor <codeph>off</codeph> is specified, then <codeph>on</codeph> is assumed as a default. </p> </li>
</ul> </section>
<section id="GUID-83F419EE-9ECD-5B19-9B9E-11F2066E5C8D"><title>platsecenforcesysbin</title> <codeblock id="GUID-8913D68B-F934-5D8B-9095-1493770E060B" xml:space="preserve">platsecenforcesysbin [on | off]</codeblock> <p> <i>rombuild only</i>  </p> <p>This is a keyword that affects
Symbian platform security when building a ROM. </p> <p>It controls
whether or not to force the location of binary executables into the <filepath>\Sys\Bin\</filepath> directory. </p> <ul>
<li id="GUID-C9712785-EC25-598A-AEAD-69197B032D7B"><p>Specifying <codeph>on</codeph> has the following effects: </p> <ul>
<li id="GUID-DD14B43D-B1F1-5C39-9B05-176276664D73"><p> <codeph>rombuild</codeph> places all executables into <filepath>Z:\Sys\Bin\</filepath>, and
overrides any file path specified in any of the <filepath>.IBY</filepath> files. </p> </li>
<li id="GUID-3DF8A9CE-46E5-5125-B562-62F747346B01"><p>the loader only
looks for files in the <filepath>\Sys\Bin\</filepath> directory and
only loads files from the <filepath>\Sys\Bin\</filepath> directory.
If a different path is specified this path is ignored and the <filepath>\Sys\Bin\</filepath> directory is searched. </p> </li>
</ul> </li>
<li id="GUID-4BEFDE6C-4E52-570A-9804-76A864AB501E"><p>Specifying <codeph>off</codeph> causes <codeph>rombuild</codeph> to place files according
to the file path specified in the <filepath>.IBY</filepath> files
and permits the loader to load files from any specified path. </p> </li>
<li id="GUID-1860E5D0-B8C3-5FCB-A023-87DF6935B958"><p>If neither <codeph>on</codeph> nor <codeph>off</codeph> is specified, then <codeph>on</codeph> is assumed as a default. </p> </li>
</ul> </section>
<section id="GUID-B5EE7071-532B-591B-904B-93108A42D939"><title>platsecprocessisolation</title> <codeblock id="GUID-835546BD-69EB-5CBC-AB8C-B6CAC38A5193" xml:space="preserve">platsecprocessisolation [on | off]</codeblock> <p> <i>rombuild only</i>  </p> <p>This is a keyword that affects
Symbian platform security when building a ROM. </p> <p>It controls
whether or not insecure APIs inherited from EKA1 (Versions 8.1a, 8.0a,
7.0s, and earlier) are to be disabled. These are APIs whose use is
intended to be restricted. The kernel provides run-time checks for
their correct usage. </p> <p>See the <xref href="GUID-DB441DFF-0075-5122-A2EB-A6EF76375D71.dita">list of APIs affected
by the platsecprocessisolation keyword</xref>. </p> <ul>
<li id="GUID-78A05AA6-49AC-54CF-AB53-6FEACBC2AB86"><p>Specify <codeph>on</codeph> to <i>disable</i> insecure APIs. Incorrect use of this
set of restricted APIs results in diagnostic messages, if <xref href="GUID-43852F38-4841-5E6F-927B-A38ED4424F0C.dita#GUID-43852F38-4841-5E6F-927B-A38ED4424F0C/GUID-1950C3F1-BB6A-5560-955B-41D8A62FF041">platsecdiagnostics</xref> is <codeph>on</codeph>, and raises panics
or causes errors if <xref href="GUID-43852F38-4841-5E6F-927B-A38ED4424F0C.dita#GUID-43852F38-4841-5E6F-927B-A38ED4424F0C/GUID-275FDBE0-D0AA-5976-9886-B0D56C075C7F">platsecenforcement</xref> is <codeph>on</codeph>. </p> </li>
<li id="GUID-F1160335-4D72-5FEC-B1EF-02724A4F70C3"><p>Specify <codeph>off</codeph> to <i>allow</i> insecure APIs. </p> </li>
<li id="GUID-9B48AE55-EBFA-587D-AB37-0C609D1066AC"><p>If neither <codeph>on</codeph> nor <codeph>off</codeph> is specified then <codeph>on</codeph> is assumed as a default. </p> </li>
</ul> </section>
<section id="PREFERREDPREFERREDROMBUILDONLYTHIS-0399C898"><title>preferred</title><codeblock xml:space="preserve">preferred</codeblock><p><i>rombuild only</i></p><p>This
keyword specifies that the major version of the executable binary
must be preferred over its minor versions.  The minor version specifies
the revision of the executable. The major version enables you to identify
whether two versions of an executable are compatible.  The two versions
of an executable can be compatible only if they have same major version.</p><p>The executable's header stores minor and major versions of the
executable. </p></section>
<section id="GUID-D14ECB32-00DD-574B-9301-2EF11AE55BA5"><title>primary[[HWVD]]</title> <codeblock id="GUID-F15C440F-EBAB-55EE-B785-D345B5131A45" xml:space="preserve">primary[[HWVD]] = &lt;source-file&gt; &lt;destination-image-file&gt; [File-attribute-list] [Override-Attribute-list]</codeblock> <p> <i>rombuild only</i>  </p> <p>A standard executable file that
is loaded directly, bypassing the file server. The Boot program loads
and gives control to the primary; this is the Kernel. </p> <p>As with
all standard executable files, this is loaded, relocated and stripped
of its relocation information. </p> <p>Note that the <codeph>HWVD</codeph> is optional but, if specified, must be enclosed within square brackets. </p> </section>
<section id="GUID-02DE8552-5FE0-52D4-8A82-A0B679E934AA"><title>priority</title> <codeblock id="GUID-AD178D79-3C2B-5E64-BFF3-9C8BB0B6A0A2" xml:space="preserve">priority = &lt;hex-number&gt; | &lt;priority-keyword&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>Sets the priority of the process.
The priority can be a hexadecimal number, or one of the keywords listed
below. The keywords correspond to the associated priority value. </p> <table id="GUID-CA739D33-23F5-536F-B65D-DE43B699BEC1">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p>Keyword </p> </entry>
<entry><p>Process priority </p> </entry>
</row>
<row>
<entry><p>low </p> </entry>
<entry><p>EPriorityLow </p> </entry>
</row>
<row>
<entry><p>background </p> </entry>
<entry><p>EPriorityBackground </p> </entry>
</row>
<row>
<entry><p>foreground </p> </entry>
<entry><p>EPriorityForeground </p> </entry>
</row>
<row>
<entry><p>high </p> </entry>
<entry><p>EPriorityHigh </p> </entry>
</row>
<row>
<entry><p>windowserver </p> </entry>
<entry><p>EPriorityWindowServer </p> </entry>
</row>
<row>
<entry><p>fileserver </p> </entry>
<entry><p>EPriorityFileServer </p> </entry>
</row>
<row>
<entry><p>realtimeserver </p> </entry>
<entry><p>EPriorityRealTimeServer </p> </entry>
</row>
<row>
<entry><p>supervisor </p> </entry>
<entry><p>EPrioritySupervisor </p> </entry>
</row>
</tbody>
</tgroup>
</table> </section>
<section id="GUID-39CDB129-CE41-4ACD-952E-72D9DDA61556"><title>process</title><codeblock xml:space="preserve">process = &lt;file path of process being attached&gt;</codeblock><p><i>rombuild only</i></p><p>This keyword specifies the process
to which a DLL is attached.</p></section>
<section id="GUID-E816D875-0CE6-5C0A-BB1A-93F9A3E2DE90"><title>reloc</title> <codeblock id="GUID-4533709F-6D95-59C0-90F2-DFE95BC6C7A1" xml:space="preserve">reloc = &lt;hex-address&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>Overrides the default stack size
for the executable. </p> </section>
<section id="GUID-9724A786-4431-595F-8945-C29914D63A40"><title>rem</title> <codeblock id="GUID-9D98CF44-6DC6-5A74-8C71-5784C0CDEFA7" xml:space="preserve">rem &lt;comment&gt;</codeblock> <p> <i>rombuild and rofsbuild</i>  </p> <p>Defines a comment line.
Text that appears after the rem keyword is interpreted as a comment. </p> </section>
<section id="GUID-4584DD65-6861-5B2A-A4FB-B7F366DCE13A"><title>rename</title> <codeblock id="GUID-6A57E3F9-48D8-521F-A5AC-0CB6ADFB2F5F" xml:space="preserve">rename[[HWVD]]= &lt;existing-file&gt; &lt;destination-file&gt; [ full-attribute-list ]</codeblock> <p> <i>rombuild and rofsbuild</i>  </p> <p>Adding a file and then
renaming it is equivalent to adding it directly at the rename destination.
The existing and destination directories do not have to be the same. </p> </section>
<section id="GUID-04CE5B92-FF2B-53BB-BC21-C66731B94CC1"><title>RIGHT_NOW</title> <codeblock id="GUID-292B46AF-28A6-5DC0-9F11-2A2B1747701C" xml:space="preserve">RIGHT_NOW</codeblock> <p> <i>BUILDROM only</i>  </p> <p>A pre-defined substitution. This
is replaced with the exact time in the format <codeph>dd/mm/yy hh:mm:ss</codeph>  </p> <p>Note that there is no UNDEFINE facility, and substitutions
are applied in an unspecified order. </p> </section>
<section id="GUID-660AC1A4-948B-53AA-96F2-BFE48E478474"><title>rofsname</title> <codeblock id="GUID-B1A58F72-83B7-5BB0-9503-014849231AD0" xml:space="preserve">rofsname = &lt;filename&gt;</codeblock> <p> <i>rofsbuild only</i>  </p> <p>Defines the name of the core
image. </p> </section>
<section id="GUID-208C0FE4-DFC0-55C3-B6D7-F18C74F1A699"><title>rofssize</title> <codeblock id="GUID-46F9AD5E-9B59-5B21-A621-00116062A867" xml:space="preserve">rofssize = &lt;size in bytes&gt;</codeblock> <p> <i>rofsbuild only</i>  </p> <p>Specifies the maximum size of
the core image, or the maximum size of the extension. </p> </section>
<section id="GUID-C956A0A9-F8F0-5144-896C-1DBF32E76915"><title>romalign</title> <codeblock id="GUID-211623DD-B905-5CF2-98DD-E07FFA977C5B" xml:space="preserve">romalign = &lt;hex-alignment&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>The address alignment boundary
for files in the ROM. </p> <p>This value should be greater than 4
and a multiple of 4. The recommended value is 0x10. If no value is
specified, <codeph>rombuild</codeph> defaults to using a value of
0x1000. If the value specified is not a multiple of 4, it is rounded
off. </p> </section>
<section id="GUID-9841CB4D-D71F-53E8-AF0E-22B393ADF2CD"><title>ROMBUILD_OPTION</title> <codeblock id="GUID-CC19021A-0462-52FC-8461-07158AA23B28" xml:space="preserve">ROMBUILD_OPTION &lt;command-line-option&gt;</codeblock> <p> <i>BUILDROM only</i>  </p> <p>Adds additional command line parameters
to the eventual invocation of <xref href="GUID-003D2C5B-09DC-5BD1-AF45-A0FCB56F567B.dita">rombuild</xref>.
It is primarily used to specify the <codeph>-no-header</codeph> option
for platforms which don't want the 256-byte REPRO header. The <codeph>ROMBUILD_OPTION</codeph> keyword can be used multiple times if desired. </p> </section>
<section id="GUID-D9A6B254-D76E-51C2-A943-FA360CDB3F0E"><title>romchecksum</title> <codeblock id="GUID-6FCDB34E-93C4-56A0-98D8-AF1BBE007B13" xml:space="preserve">romchecksum = &lt;32 bit hex-number&gt;</codeblock> <p> <i>rombuild and rofsbuild</i>  </p> <p>The checksum in the final
ROM image is made using the following algorithm: </p> <p>checksum
= romchecksum - sum of 32bit words in ROM image. </p> </section>
<section id="GUID-C88976BA-6381-5DEB-830F-5ED63CB929FA"><title>ROM_IMAGE</title> <codeblock id="GUID-49013022-96F0-5A17-BA76-C582AAB7B57F" xml:space="preserve">ROM_IMAGE &lt;id&gt; &lt;name&gt; [size=&lt;rom max size&gt;] [xip | non-xip] [compress | no-compress] [extension]</codeblock> <p> <i>BUILDROM only</i>  </p> <p>Defines a ROM image. </p> <p>This
is a ROM configuration feature; up to 8 ROM images can be defined
for a device. </p> <table id="GUID-393CADB8-1B1B-58EA-B368-E05B6F3A37D3">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <codeph>id</codeph>  </p> </entry>
<entry><p>A value in the range 0..7 to identify the ROM image. </p> </entry>
</row>
<row>
<entry><p> <codeph>name</codeph>  </p> </entry>
<entry><p>A name suitable as a suffix for the ROM image, IBY and logs. </p> </entry>
</row>
<row>
<entry><p> <codeph>non-xip</codeph>  </p> </entry>
<entry><p>Specifies a non-XIP ROM. If not specified, a XIP ROM is
the default </p> </entry>
</row>
<row>
<entry><p> <codeph>size = &lt;rom-max-size&gt;</codeph>  </p> </entry>
<entry><p>Defines the maximum size of the ROM. Not required for XIP
ROMs. </p> </entry>
</row>
<row>
<entry><p> <codeph>compress</codeph>  </p> </entry>
<entry><p>Compresses an XIP ROM. If not specified, no compression
is the default behaviour. </p> </entry>
</row>
<row>
<entry><p> <codeph>extension</codeph>  </p> </entry>
<entry><p>Defines this image as an extension to the previous image. </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p>To mark a file for inclusion in a ROM it is prefixed with
the keyword ROM_IMAGE. For example: </p> <codeblock id="GUID-52FA6075-B4D4-53D2-AECB-D5D72A2DB839" xml:space="preserve">ROM_IMAGE[2] data=\private\&lt;process SID&gt;\Apps\Calc\calc.INSTCOL_MBM \private\&lt;process SID&gt;\Apps\Calc\Calc.mbm</codeblock> <p>A Block of files can be included using '{' '}'
braces, for example: </p> <codeblock id="GUID-E95D224C-EDA2-5BB4-A293-5E07F9142C74" xml:space="preserve">ROM_IMAGE[2]
    {
    #include "calc.iby"
    #include "word.iby"
    }
      </codeblock> <p>File blocks can be nested, for example: </p> <codeblock id="GUID-7C33BDB8-A0B4-5A22-BC03-0FB2982CB249" xml:space="preserve">ROM_IMAGE[2]
    {
    #include "calc.iby"
    ROM_IMAGE[0]
        {
        #include "word.iby"
        }
    #include "video.iby"
    }
      </codeblock> </section>
<section id="GUID-6D4D4AF5-92E2-5E87-97D0-B5233E700287"><title>romlinearbase</title> <codeblock id="GUID-C9EA7FE3-CF87-52E4-9230-944D86463D13" xml:space="preserve">romlinearbase = &lt;hex-address&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>The virtual address of the start
of ROM, in hex. </p> <p>This is the address at which the kernel expects
to find the start of the ROM. The recommended value depends on the
memory model: </p> <ul>
<li id="GUID-4C4DAAF0-9FC6-5E2C-BF7C-832C453F4765"><p>For the Multiple
Memory Model, typically used on ARMV6 based hardware platforms, the
recommended value is 0x80000000. </p> </li>
<li id="GUID-C9BADF29-5772-5C4C-8445-F78DBB3DA013"><p>For the Moving
Memory Model, typically used on ARMV5 based hardware platforms, the
recommended value is 0xF8000000. </p> </li>
</ul> </section>
<section id="GUID-29BEF45C-2361-5245-9184-0261B99B6FB1"><title>romname</title> <codeblock id="GUID-E6CCF8AD-B22B-5F89-852B-491B331A8ECA" xml:space="preserve">romname = &lt;rom-file-name&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p>This is the name of the output
file. It contains the ROM image that <codeph>rombuild</codeph> creates. </p> </section>
<section id="GUID-2F1CEC9A-CC82-5029-9EC2-A03A491FEC09"><title>romnameeven</title> <codeblock id="GUID-F1C48F8F-A8E9-5861-A49F-E49C509D5339" xml:space="preserve">romnameeven = &lt;rom-file-name-even&gt;
</codeblock> <p> <i>rombuild only</i>  </p> <p> <codeph>rombuild</codeph> can write two separate ROM images, one containing the odd bytes
of the image and the other the even. This is done if this keyword
and the <xref href="GUID-43852F38-4841-5E6F-927B-A38ED4424F0C.dita#GUID-43852F38-4841-5E6F-927B-A38ED4424F0C/GUID-FB2E9BFF-B5B3-50D8-AFAD-F120D2007173">romnameodd</xref> keyword are used to specify the output filenames
for the two half-images. 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 and append <filepath>.even</filepath>. </p> </section>
<section id="GUID-FB2E9BFF-B5B3-50D8-AFAD-F120D2007173"><title>romnameodd</title> <codeblock id="GUID-5D110E11-FFEC-5389-A0C4-FDCEB96BC190" xml:space="preserve">romnameodd = &lt;rom-file-name-odd&gt;</codeblock> <p> <i>rombuild only</i>  </p> <p> <codeph>rombuild</codeph> can
write two separate ROM images, one containing the odd bytes of the
image and the other the even. This is done if this keyword and the <xref href="GUID-43852F38-4841-5E6F-927B-A38ED4424F0C.dita#GUID-43852F38-4841-5E6F-927B-A38ED4424F0C/GUID-2F1CEC9A-CC82-5029-9EC2-A03A491FEC09">romnameeven</xref> keyword are used to specify the output filenames
for the two half-images. 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 and append <filepath>.odd</filepath>. </p> </section>
<section id="GUID-4F40AAAE-A6CE-5492-99E3-95B0D74F3229"><title>romsize</title> <codeblock id="GUID-639E3B10-FBFC-5172-8C40-FA243B174B6E" xml:space="preserve">romsize = &lt;hex-size&gt;</codeblock><p> <i>rombuild and rofsbuild</i> </p><p>The size of the entire ROM,
in hex, for example, <codeph>0x400000</codeph> for a 4MB ROM. </p> </section>
</conbody></concept>