Of all the gin joints in all the towns in all the world, Thomas Letan had to 
walk into mine at 02:02:13 on Wednesday 11 June 2014 and say:

> Hello everyone.
> 
> I am currently working on UEFI and more precisely on SMM with UEFI.
> To handle correctly #SMI, I have to load some piece of code in RAM. In
> order to do some tests, I wrote my assembly code, compile it with nasm,
> get the binary content thanks to objdump and save it in a char[]
> variable. Not very clean way to do it, IMHO.
> 
> Is there an “EDKII way” to do it? For what I saw, the C files of EDKII
> do not contain a single line of asm, which are written in a separate file.
> 
> Thank you for your time
> Thomas

I don't think there is an "EDKII way" to do what you're doing. The problem is 
that the EDKII is meant to be built using a number of different C compiler 
implementations, and embedded assembly usage is not part of the ANSI C 
specification so there's no portable syntax for it. GNU C does it one way, 
Microsoft C does it another, the Wind River Diab C compiler does it yet 
another (as I have had to learn), the SunPRO C compiler probably also does it 
yet another, and so on. I think the Intel C compiler (icc) actually imitates 
the GCC syntax, but that's a rare exception.

This is also why there are two versions of each Intel assembly code file in 
the EDKII: there's one written in AT&T syntax for the GNU assembler and 
another written in Intel syntax for the Microsoft assembler.

The code that goes into the EDKII itself has to be written like this so that 
everybody can use it. But if you're writing this code for a custom project 
that is proprietary (and hence will have its distribution tightly controlled 
and you're not going to contribute it for inclusion in EDKII) and your project 
mandates a specific set of compiler tools, then I suppose there's nothing to 
stop you from using your chosen compiler's embedded assembly syntax to include 
the code in your C files.

-Bill

-- 
=============================================================================
-Bill Paul            (510) 749-2329 | Senior Member of Technical Staff,
                 wp...@windriver.com | Master of Unix-Fu - Wind River Systems
=============================================================================
   "I put a dollar in a change machine. Nothing changed." - George Carlin
=============================================================================

------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to