Table of Contents - GitHub Pages

17

Transcript of Table of Contents - GitHub Pages

Page 1: Table of Contents - GitHub Pages
Page 2: Table of Contents - GitHub Pages

TABLEOFCONTENTSEDKIIMulti-String.UNIFileFormatSpecification

1Introduction

1.1RelatedInformation

1.2Terms

1.3Conventionsusedinthisdocument

2UnicodeStringsFileFormat

2.1CommonEBNF

3HIIStringPacks

3.1Examplefile

4Redacted

5FontSupport

5.1#font

5.2#fontdef

5.3#stringExtensions

Tables

Table1.uniFileFontEscapeCharacters

EDKIIMulti-String.UNIFileFormatSpecification

2Revision1.40

Page 3: Table of Contents - GitHub Pages

EDKIIMulti-String.UNIFileFormatSpecificationRevision1.40

12/01/202005:53:14

AcknowledgementsRedistributionanduseinsource(originaldocumentform)and'compiled'forms(convertedtoPDF,epub,HTMLandotherformats)withorwithoutmodification,arepermittedprovidedthatthefollowingconditionsaremet:

1. Redistributionsofsourcecode(originaldocumentform)mustretaintheabovecopyrightnotice,thislistofconditionsandthefollowingdisclaimerasthefirstlinesofthisfileunmodified.

2. Redistributionsincompiledform(transformedtootherDTDs,convertedtoPDF,epub,HTMLandotherformats)mustreproducetheabovecopyrightnotice,thislistofconditionsandthefollowingdisclaimerinthedocumentationand/orothermaterialsprovidedwiththedistribution.

THISDOCUMENTATIONISPROVIDEDBYTIANOCOREPROJECT"ASIS"ANDANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THEIMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSEAREDISCLAIMED.INNOEVENTSHALLTIANOCOREPROJECTBELIABLEFORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODSORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION)HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICTLIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAYOUTOFTHEUSEOFTHISDOCUMENTATION,EVENIFADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGE.

Copyright(c)2016-2017,IntelCorporation.Allrightsreserved.

RevisionHistory

Revision Description Date

1.0 InitialRelease. February2014

1.1 UpdatedEBNFtofollowsyntaxspecifiedinEBNFbytheANTLRproject. August2014

AddedcontentrelatedtoEDKIIMeta-DataUnicodefiles.

Restructureddocument.

RemovedsecurityandCformatGUIDdefinitions,notrequiredforHIIorotherUNIfiles.

Removedinvalidescapecodesequences.

1.2 Addedoptionalfontformatting September2014

1.2ErrataA Correctmisspellingof:STR_PROPERTIES_MODULE_NAME April2015

1.3 Added:Syntaxfornon-asciicharactersinsidequotedstrings. March2016

EDKIIMulti-String.UNIFileFormatSpecificationEDKIIMulti-String.UNIFileFormatSpecification

3Revision1.40

Page 4: Table of Contents - GitHub Pages

1.4 ConverttoGitBookformat April2017

#506UNISpec:CleanupRelatedInformationsection

#507UNISpec:Clarifythat.unifilesmaybeUTF-8withoutaBOM

EDKIIMulti-String.UNIFileFormatSpecificationEDKIIMulti-String.UNIFileFormatSpecification

4Revision1.40

Page 5: Table of Contents - GitHub Pages

1INTRODUCTIONThisdocumentdescribesfileformatforUnicodestringfiles.ThisfileformatsupportsmultiplelayoutsandformatsintheUnicodefile.Thisversatilityallowsstringstobegroupedeitherbylanguageorbystringidentifier.

1.1RelatedInformationThefollowingpublicationsandsourcesofinformationmaybeusefultoyouorarereferredtobythisspecification:

UnifiedExtensibleFirmwareInterfaceSpecification,http://www.uefi.org.

http://www.tianocore.org/docs/EDK_II_Documents.html

EDKIIBuildSpecification,Intel,2016.EDKIIDECFileSpecification,Intel,2016.EDKIIINFFileSpecification,Intel,2016.EDKIIDSCFileSpecification,Intel,2016.EDKIIFDFFileSpecification,Intel,2016.EDKIIExpressionSyntaxSpecification,Intel,2015.EDKIICCodingStandardsSpecification,Intel,2015.

1.2TermsThefollowingtermsareusedthroughoutthisdocumenttodescribevaryingaspectsofinputlocalization:

BDS

FrameworkBootDeviceSelectionphase.

BNF

BNFisanacronymfor"BackusNaurForm."JohnBackusandPeterNaurintroducedforthefirsttimeaformalnotationtodescribethesyntaxofagivenlanguage.

Component

Anexecutableimage.Componentsdefinedinthisspecificationsupportoneofthedefinedmoduletypes.

DXESAL

FrameworkDriverExecutionEnvironmentphase.AspecialclassofDXEmodulethatproducesSALRuntimeServices.DXESALmodulesdifferfromDXERuntimemodulesinthattheDXERuntimemodulessupportVirtualmodeOScallsatOSruntimeandDXESALmodulessupportintermixingVirtualorPhysicalmodeOScalls.

DXESMM

AspecialclassofDXEmodulethatisloadedintotheSystemManagementModememory.

DXERuntime

SpecialclassofDXEmodulethatprovidesRuntimeServices

1IntroductionEDKIIMulti-String.UNIFileFormatSpecification

5Revision1.40

Page 6: Table of Contents - GitHub Pages

EFI

GenerictermthatreferstooneoftheversionsoftheEFIspecification:EFI1.02,EFI1.10,orUEFI2.0.

EFI1.10Specification

IntelCorporationpublishedtheExtensibleFirmwareInterfaceSpecification.InteldonatedtheEFIspecificationtotheUnifiedEFIForum,andtheUEFInowownsfutureupdatesoftheEFIspecification.SeeUEFISpecifications.

Foundation

ThesetofcodeandinterfacesthatglueimplementationsofEFItogether.

Framework

Intel(R)PlatformInnovationFrameworkforEFIconsistsoftheFoundation,plusothermodularcomponentsthatcharacterizetheportabilitysurfaceformodularcomponentsdesignedtoworkonanyimplementationoftheTianoarchitecture.

GUID

GloballyUniqueIdentifier.A128-bitvalueusedtonameentitiesuniquely.AnindividualwithoutthehelpofacentralizedauthoritycangenerateauniqueGUID.Thisallowsthegenerationofnamesthatwillneverconflict,evenamongmultiple,unrelatedparties.

HII

HumanInterfaceInfrastructure.Thisgenerallyreferstothedatabasethatcontainsstring,font,andIFRinformationalongwithotherpiecesthatuseoneofthedatabasecomponents.

IFR

InternalFormsRepresentation.Thisisthebinaryencodingthatisusedfortherepresentationofuserinterfacepages.

LibraryClass

AlibraryclassdefinestheAPIorinterfacesetforalibrary.Theconsumerofthelibraryiscodedtothelibraryclassdefinition.Libraryclassesaredefinedviaalibraryclass.hfilethatispublishedbyapackage.SeetheEDK2.0ModuleDevelopmentEnvironmentLibrarySpecificationforalistoflibrariesdefinedinthispackage.

LibraryInstance

Animplementationofoneormorelibraryclasses.SeetheEDK2.0ModuleDevelopmentEnvironmentLibrarySpecificationforalistoflibrarydefinedinthispackage.

Module

Amoduleiseitheranexecutableimageoralibraryinstance.Foralistofmoduletypessupportedbythispackage,seemoduletype.

ModuleType

Alllibrariesandcomponentsbelongtooneofthefollowingmoduletypes:BASE,SEC,PEI_CORE,PEIM,DXE_CORE,DXE_DRIVER,DXE_RUNTIME_DRIVER,DXE_SMM_DRIVER,DXE_SAL_DRIVER,UEFI_DRIVER,orUEFI_APPLICATION.Thesedefinitionsprovideaframeworkthatisconsistentwithasimilarsetofrequirements.AmodulethatisofmoduletypeBASE,dependsonlyonheadersandlibrariesprovidedintheMDE,whileamodulethatisofmoduletypeDXE_DRIVERdependsoncommonDXEcomponents.Foradefinitionofthevariousmoduletypes,seemoduletype.

ModuleSurfaceArea(MSA)

1IntroductionEDKIIMulti-String.UNIFileFormatSpecification

6Revision1.40

Page 7: Table of Contents - GitHub Pages

TheMSAisanXMLdescriptionofhowthemoduleiscoded.TheMSAcontainsinformationaboutthedifferentconstructionoptionsforthemodule.AfterthemoduleisconstructedtheMSAcandescribetheinteroperabilityrequirementsofamodule.

Package

Apackageisacontainer.Itcanholdacollectionoffilesforanygivensetofmodules.Packagesmaybedescribedasoneofthefollowingtypesofmodules:

Sourcemodules,containingallsourcefilesanddescriptionsofamodule

Binarymodules,containingEFISectionsoraFrameworkFileSystemandadescriptionfilespecifictolinkingandbinaryeditingoffeaturesandattributesspecifiedinaPlatformConfigurationDatabase(PCD,)

Mixedmodules,withbothbinaryandsourcemodules

Multiplemodulescanbecombinedintoapackage,andmultiplepackagescanbecombinedintoasinglepackage.

Protocol

AnAPInamedbyaGUIDasdefinedbytheEFIspecification.

PCD

PlatformConfigurationDatabase.

PEI

Pre-EFIInitializationPhase.

PPI

APEIM-to-PEIMInterfacethatisnamedbyaGUIDasdefinedbythePEICIS.

SAL

SystemAbstractionLayer.AfirmwareinterfacespecificationusedonIntel(R)Itanium(R)Processorbasedsystems.

RuntimeServices

Interfacesthatprovideaccesstounderlyingplatform-specifichardwarethatmightbeusefulduringOSruntime,suchastimeanddateservices.TheseservicesbecomeactiveduringthebootprocessbutalsopersistaftertheOSloaderterminatesbootservices.

SEC

SecurityPhaseisthecodeintheFrameworkthatcontainstheprocessorresetvectorandlaunchesPEI.ThisphaseisseparatefromPEIbecausesomesecurityschemesrequireownershipoftheresetvector.

UEFIApplication

AnapplicationthatfollowstheUEFIspecification.TheonlydifferencebetweenaUEFIapplicationandaUEFIdriveristhatanapplicationisunloadedfrommemorywhenitexitsregardlessofreturnstatus,whileadriverthatreturnsasuccessfulreturnstatusisnotunloadedwhenitsentrypointexits.

UEFIDriver

AdriverthatfollowstheUEFIspecification.

UEFISpecificationVersion2.0

1IntroductionEDKIIMulti-String.UNIFileFormatSpecification

7Revision1.40

Page 8: Table of Contents - GitHub Pages

CurrentversionoftheEFIspecificationreleasedbytheUnifiedEFIForum.ThisspecificationbuildsontheEFI1.10specificationandtransfersownershipoftheEFIspecificationfromInteltoanon-profit,industrytradeorganization.

UnifiedEFIForum

Anon-profitcollaborativetradeorganizationformedtopromoteandmanagetheUEFIstandard.Formoreinformation,seehttp://www.uefi.org

1.3ConventionsusedinthisdocumentThisdocumentusesthetypographicandillustrativeconventionsdescribedbelow.

1.3.1Pseudo-codeconventionsPseudocodeispresentedtodescribealgorithmsinamoreconciseform.Noneofthealgorithmsinthisdocumentareintendedtobecompileddirectly.Thecodeispresentedatalevelcorrespondingtothesurroundingtext.

Indescribingvariables,alistisanunorderedcollectionofhomogeneousobjects.Aqueueisanorderedlistofhomogeneousobjects.Unlessotherwisenoted,theorderingisassumedtobeFirstInFirstOut(FIFO).

PseudocodeispresentedinaC-likeformat,usingCconventionswhereappropriate.Thecodingstyle,particularlytheindentationstyle,isusedforreadabilityanddoesnotnecessarilycomplywithanimplementationoftheExtensibleFirmwareInterfaceSpecification.

1.3.2TypographicconventionsThisdocumentusesthetypographicandillustrativeconventionsdescribedbelow:

Convention Description

Plaintext Thenormaltexttypefaceisusedforthevastmajorityofthedescriptivetextinaspecification.

Plaintext(blue)

Anyplaintextthatisunderlinedandinblueindicatesanactivelinktothecross-reference.Clickonthewordtofollowthehyperlink.USEONLYIFYOUMAKEANACTUALCROSS-REFERENCELINK.

BoldIntext,aBoldtypefaceidentifiesaprocessorregistername.Inotherinstances,aBoldtypefacecanbeusedasarunningheadwithinaparagraph.orasadefinitionheading(GlossTerm)

Italic Intext,anItalictypefacecanbeusedasemphasistointroduceanewtermortoindicateamanualorspecificationname.

Monospace

Computercode,examplecodesegments,andallprototypecodesegmentsuseaBOLDMonospacetypefacewithadarkredcolor.Thesecodelistingsnormallyappearinoneormoreseparateparagraphs,thoughwordsorsegmentscanalsobeembeddedinanormaltextparagraph.

Monospace

(blue)

WordsinaMonospacetypefacethatisunderlinedandinblueindicateanactivehyperlinktothecodedefinitionforthatfunctionortypedefinition.Clickonthewordtofollowthehyperlink.USEONLYIFYOUMAKEANACTUALHYPERLINK.

ItalicBold Incodeorintext,wordsinItalicMonospaceindicateplaceholdernamesforvariableinformationthatmustbesupplied(i.e.,arguments).

1IntroductionEDKIIMulti-String.UNIFileFormatSpecification

8Revision1.40

Page 9: Table of Contents - GitHub Pages

1IntroductionEDKIIMulti-String.UNIFileFormatSpecification

9Revision1.40

Page 10: Table of Contents - GitHub Pages

2UNICODESTRINGSFILEFORMATEDKIIUnicodefilesareusedformappingtokennamestolocalizedstringsthatareidentifiedbyanRFC4646languagecode.TheformatforstoringEDKIIUnicodefilesondiskisUTF-8(withoutaBOMcharacter)orUTF-16LE(withaBOMcharacter).ThecharactercontentmustbeUCS-2.

Stringsendsaredeterminedbythefirstofthefollowingitemsfound:

acontrolcharacteracommenttheendofthefileablankline

Commentsmayappearanywherewithinthestringfile.

AllUTF-16LEfilesmustbeginwithaUnicodeBOMcharacter.AllUTF-8filesmustnotbeginwithaUnicodeBOMcharacter.

NOTE:PleasemakesureyouselectaneditorthatsupportsUCS-2charactersthatcanbestoredineitheraUTF-8(withoutaBOMcharacter)oraUTF-16LEfile(withaBOMcharacter).

2.1CommonEBNFThefollowingEBNFusesquoted(doublequotes)encapsulatedcharacterstorepresentUCS-2stringliterals.Inthefollowingdefinitions,thesemi-colonisusedtodenoteacomment.

<US>::=""

<Letter>::={(\u0041-\u005A)};CharactersA-Z

{(\u0061-\u007A)};Charactersa-z

<Digit>::=(\u0030-\u0039);Characters0-9

<MS>::=<US>+

<ME>::={<MS>}{<EOL>}

<CommentLine>::="//"<US>*<PCHars><EOL>

<BlankLine>::=<EOL>

<Chars>::=(\u0001-\uF6FF)

<PChars>::={(\u0020-\uF6FF)}{<OpChar>}

<OpChars>::="\x"[{<Letter>}{<Digit>}]{4}"\"

<VChars>::=(\u0021-\uF6FF)

<UnicodeLines>::=<Token><ME>

[<Ldef>[<String><ME>]+]+

<Ldef>::=<CtrlChar>"language"<MS><LangCode><ME>

<HexDigit>::={<Digit>}

{(\u0041-\u0046)};CharactersA-F

{(\u0061-\u0066)};Charactersa-f

<CtrlChar>::=<US>*"#"

<Token>::=<CtrlChar>"string"<MS><Identifier>

<Identifier>::=<Letter>[{<Letter>}{<Digit>}{<UN>}]*

<LangCode>::=<RFC4646>

<RFC4646>::=<Letter>{2,8}[<ShortExt><LongExt>*]

<ShortExt>::="-"[{<Letter>}{<Digit>}]{1,8}

<LongExt>::="-"[{<Letter>}{<Digit>}]{1,}

<UDblQuote>::=\u0022;DoubleQuoteCharacter,"

<String>::=<UDblQuote><SContent>*<UDblQuote>

<SContent>::={<PChars>}{<Attributes>}

<Attributes>::="\"{"narrow"}{"wide"}{<UDblQuote>}

{"n"}{"r"}{"t"}{"nbr"}{"\"}{"'"}

2UnicodeStringsFileFormatEDKIIMulti-String.UNIFileFormatSpecification

10Revision1.40

Page 11: Table of Contents - GitHub Pages

2.1.1DefinitionsLanguageCodes

ThelanguagecodemustbeavalidRFC4646languagecode.

EscChar

Inordertoincludesomestandardcharacters,suchasthe"\"back-slashcharacterwithinastring,thecharactermustbeprefixedwiththeescapecharacter.Charactersthatmayrequireaprefixedescapecharacterincludethefollowing,backslash"\"character,single-quote"'"character,double-quote'"'characterandtheforwardslash"/"character.Thebackslashalwaysrequirestheescapecharacter.

Token

Thetoken(strongidentifier)mayonlycontainnumbers,upperandlowercaseletters,underscorecharacter,anddashcharacter.

Include

Anincludelineisusedtoparseanotherfile,alsocompliantwiththisspecification,asifitwasinthefile.Thetokensshouldnotoverlapbetweenthefileforthesamelanguage.

2UnicodeStringsFileFormatEDKIIMulti-String.UNIFileFormatSpecification

11Revision1.40

Page 12: Table of Contents - GitHub Pages

3HIISTRINGPACKSUnicodefilesusedforcreatingHIIStringPackshavethefollowingformat:

<StringFileFormat>::=<CommentLine>*

<LanguageDefs>

<Content>+

ThefollowingEBNFdescribescontentisspecifictotheUnicodefilesusedforgeneratingHIIStringPacks.

<Content>::={<CommentLine>}{<BlankLine>}

{<UnicodeLines>}{<ControlRefactor>}

{<LanguageDefs>}{<SecurityLines>}

{<IncludeLines>}

AdditionalDefinitionsusedforUnicodefilesusedtocreateHIIStringPacks.

<LanguageDefs>::=<CtrlChar>"langdef"<MS><LangCode><MS>

<LangDesc><EOL>

<LangDesc>::=<UDblQuote><Chars><UDblQuote>

<IncludeLines>::=<CtrlChar>"include"<UniFile><EOL>

<UniFile>::=<UDblQuote><UniFilename><UDblQuote>

<UniFilename>::=<FilenameChars><MoreFNameChars>*{".uni"}{".UNI"}

<FilenameChars>::={<Letter>}{<Digit>}

<MoreFNameChars>::={<Letter>}{<Digit>}{"_"}

<CtrlChar>::="/"

<ControlRefactor>::=<CtrlChar>"="<NewCtrlChar><EOL>

<NewCtrlChar>::=(0x0021-0xF6FF)

NOTE:UnicodefilesthatareusedforgeneratingHIIStringPacksaretheonlytypeofUnicodefilethatallowsforrefactoringthecontrolcharacter(providingbackwardcompatibility),<CtrlChar>.

3.1Examplefile

//

//CpuI/OStrings

//

//Copyright(c)2006,IntelCorporation.Allrightsreserved.<BR>

//

//Thisprogramandtheaccompanyingmaterialsarelicensedandmade

//availableunderthetermsandconditionsoftheBSDLicensewhich

//accompaniesthisdistribution.Thefulltextofthelicensemay

//befoundat:

//http://opensource.org/licenses/bsd-license.php

//

//THEPROGRAMISDISTRIBUTEDUNDERTHEBSDLICENSEONAN"ASIS"BASIS,

//WITHOUTWARRANTIESORREPRESENTATIONSOFANYKIND,EITHEREXPRESS

//ORIMPLIED.

//

/=#

#langdefen-US"English,US"

#langdeffr-FR"Français"

#stringSTR_PROCESSOR_VERSION

#languageen-US"NT32EmulatedProcessor"

3HIIStringPacksEDKIIMulti-String.UNIFileFormatSpecification

12Revision1.40

Page 13: Table of Contents - GitHub Pages

#languagefr-FR"ProcesseurÉmuléparNT32"

3HIIStringPacksEDKIIMulti-String.UNIFileFormatSpecification

13Revision1.40

Page 14: Table of Contents - GitHub Pages

4REDACTEDFormerly"Meta-DataUNIFiles".Thischapterintentionallyremoved.

4RedactedEDKIIMulti-String.UNIFileFormatSpecification

14Revision1.40

Page 15: Table of Contents - GitHub Pages

5FONTSUPPORTThischapterdefinestheoptionalattributesandentriesinEDKIIUnicodefilestosupportfontselection.

SyntaxThefollowingsectionsdescribeextensionstothe.uniformat.

Theextensionsaddsupportforfontsintothe.uniformatbyintroducingthe#fontdefand#fontcommands,extendingthe#stringcommandandaddingnewescapecharactersintothestrings.

FontsEverystringisassociatedwithafont.Eachfonthasafontidentifier,afontname,asize(inpixelheight)andastyle(normal,bold,etc.).Bydefault,stringswillbeassociatedwiththefontidentifiersysdefault.Usuallythisisassociatedwiththefontsysdefault,19,normal(thestandardUEFIfont).

Thedefaultfontassociatedwithstringscanbechangedfromsysdefaulttoanotherfontidentifierusingthe#fontcommand.Allstringsafterthe#fontcommandwillusethespecifiedfontidentifier.

Stringscanuseadifferent#fontidentifierbyusingthefontattributeofthe#stringcommand(beforethefirst#languageattribute).Astringinaspecificlanguagecanuseadifferentfontidentifierbyusingthe#fontattributeafterthelanguageattribute.

Characterswithinastringcanuseadifferentfontidentifier,adifferentfontsizeoradifferentfontstylebyusingthe\fescapesequencesdescribedbelow.TheseescapecharactersextendthosedescribedintheEDK2BuildSpecification.

Table1.uniFileFontEscapeCharacters

FontControlCharacter Description

\" Insertadouble-quote.

\\ Insertasinglebackslash.

\br Breakingcode.

\f!identifier! Selectthefontidentifierforthecharacterswhichfollow.

\fb Togglethecurrentboldstyleforcharactersthatfollowinthecurrentstring.

\fd Togglethecurrentdouble-underlinestyle.Ifthecurrentstyleisunderline,thestylebecomesdouble-underline.

\fe Togglethecurrentembossstyleforthecharactersthatfollow.

\fh!integer! Selectthefontsize(inpixels)forthecharactersthatfollow.

\fi Togglethecurrentitalicstyleforthecharactersthatfollowinthecurrentstring.

\fs Togglethecurrentshadowstyleforthecharactersthatfollowinthecurrentstring.

\fu Togglethecurrentunderlinestyleforthecharactersthatfollowinthecurrentstring.

\n Insertacarriage-returnandline-feed.

\narrow Displaythefollowingcharactersas"narrow"characters.

\nbr Non-breakingcode.

5FontSupportEDKIIMulti-String.UNIFileFormatSpecification

15Revision1.40

Page 16: Table of Contents - GitHub Pages

\nbr Non-breakingcode.

\r Insertacarriage-return.

\wide Displaythefollowingcharactersas"wide"characters

Fontidentifiersarecreatedbyusingthe#fontdef.

5.1#fontSetthedefaultfonttousewithallsubsequent#strings.

Syntax"#font"<MS>font-identifier

Attributesfont-identifier

Cstyleidentifierassociatedwiththefont.

5.2#fontdefAssociatedafontidentifierwithaspecificfontfamily,sizeandstyle.

Syntax

"#fontdef"<MS>_font-identifier_<MS><FontOptions><EOL>

<FontOptions>::=font-name<MS>font-size[<MS>font-style-list]

font-style-list::=<UDblQuote>[fs-entries]<UDblQuote>

fs-entries::=font-style["|"font-style]*

font-style::={"bold"}{"italic"}{"underline"}{"dblunder"}

{"shadow"}{"emboss"}{"normal"}

font-size::=(1-9)(0-9)*

Attributesfont-identifier

C-styleidentifier.

font-name

Quotedstringthatspecifiesafontfamilyname.Forexample,"Arial"or"TimesNewRoman"

font-size

Unsignedintegerthatspecifiestheheightofthefontcharactercell,inpixels.Forexample,theUEFIstandardfontissize19becausethecellis19pixelshigh.

font-style

Quotedstringthatcontainszeroormorekeywordsthatspecifythefontstyle,separatedbya"|".If"normal"isused,thenitmaynotbecombinedwithanyotherfontstyle.Ifthereisnofontstylespecified,then"normal"isassumed.

5FontSupportEDKIIMulti-String.UNIFileFormatSpecification

16Revision1.40

Page 17: Table of Contents - GitHub Pages

5.3#stringExtensionsTheEDKIIbuildcommandisresponsibleforparsingthe.unifilesspecifiedinINFfiles'[Sources]sections.ThetoolusespythonobjectstoconvertthesyntaxintheHIIstringfilestobytearraysintheAutoGen.cfileforeachmodule.

RefertotheEDKIIBuildSpecificationfordetailsontheprocessofcreatingthebytearrays.

Syntax

<UnicodeLines>::="#string"<MS><Identifier><ME>

[<FontId>]

[<LangLine>]+

<LangLine>::="#language"<MS>lang-code<ME><FontString>

<FontString>::=[<FontId>][<strings>]+

<FontId>::=["#font"<MS>font-identifier><ME>]

<strings>::=<String><ME>

[Extensionto#stringcommandintheEDK2BuildSpecification]Thefontattributespecifiesthedefaultfontthatwillbeusedforthecharactersinstring.If#fontisnotspecified,thenthedefaultfontidentifierwillbeused.

Ifthe#fontattributeappearsbeforethefirst#languageidentifier,thenitappliestoallcharactersforalllanguages.Ifthe#fontattributeappearsaftera#languageidentifier,itappliesonlytothestringcharactersinthatlanguage.Itispermissiblefor#fonttoappearinmorethanoneplace,inwhichcasethelanguage-specificfontidentifierwillhavepriority.

DescriptionThe#fontdefcommandintroducesafontidentifierandassociatesitwithafontofaparticularfamily,sizeandstyle.Ifthefontidentifierhasbeenpreviouslydefined,thenthenewdefinitionisignored.

5FontSupportEDKIIMulti-String.UNIFileFormatSpecification

17Revision1.40