Krishna,

It is not available on the Trunk, yet.
I am finishing up the standalone file-system and console this week.
Key features of this update:

*         No runtime dependency on the Shell or shell protocol

*         Device mapping compatibility with the Shell for:

o   File system devices - FS#

o   Block devices - BLK#

o   Consistent mapping names

*         FS0: will automatically be selected as the default file system

*         Each file system will have its own Current Working Directory

o   Default (initial) path is "\"

o   Updated whenever the chdir() function is called

*         Better handling of UTF-16 and UTF-8 character streams

There are still a few system calls and other library routines with Shell 
dependencies.  They are next to be addressed.
Finally, there are some environmental requirements from the C standard 
resulting in a lot of library interdependencies.  As a final step, I will be 
making the libraries as independent as possible.

Currently, the LibCtype, LibTime, and LibWhar libraries have no dependencies.  
They can be used without any other StdLib libraries or other operational 
dependencies.

As I finish each phase, the code will be tested, reviewed, then committed to 
the EDK II Trunk on www.tianocore.org<http://www.tianocore.org>.
Each of the updates will be announced on this mail list.

I am still accepting "Wish List" items for functionality to add to StdLib.
Some of the suggestions include a regular expression library, for C,  and 
dynamic loading for Python.

Daryl McDaniel

"I don't know the key to success, but the key to failure is trying to please 
everybody"
-- Bill Cosby.


From: s.v.krishna reddy [mailto:[email protected]]
Sent: Monday, December 16, 2013 4:53 AM
To: [email protected]
Subject: Re: [edk2] StdLib & Drivers & non-Shell Apps

Hi Daryl,
I'm not sure whether this is completed. Could you confirm whether Standalone 
LIBC for DXE drivers available on the Trunk?
Thanks,
Krishna.

On Sat, Jan 26, 2013 at 8:02 AM, Mcdaniel, Daryl 
<[email protected]<mailto:[email protected]>> wrote:
Luis,

Unfortunately, all I can say is that I am working on it.

If you, or anyone else reading this list, have any specific items in your "wish 
list" for StdLib, please post it to the list.
I can't say that everything will be incorporated, but my primary goal is to 
make the libraries as useful to the community as possible.
The "driver friendly", or Standalone, version of StdLib will supplement or 
replace the existing StdLib on www.tianocore.org<http://www.tianocore.org>.

Daryl McDaniel

"In the pun, two strings of thought are tangled into one acoustic knot."
-- Arthur Koestler

-----Original Message-----
From: Pollo, Luis Fernando [mailto:[email protected]<mailto:[email protected]>]
Sent: Friday, January 25, 2013 4:11 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: [edk2] StdLib & Drivers & non-Shell Apps

Hi Daryl,

A driver-friendly StdLib is great news! Sorry if this has been discussed on the 
list before, but are you planning to release this as part of TianoCore? If so, 
when do you think it would be available?

Thanks,
Luis
________________________________
From: Tim Lewis [[email protected]<mailto:[email protected]>]
Sent: Friday, January 25, 2013 4:20 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: [edk2] StdLib & Drivers & non-Shell Apps

Daryl -

I would also point out that there is a difference between UEFI applications and 
UEFI drivers, for the purposes of the C library. For example, UEFI applications 
share entry point styles with UEFI shell apps, not drivers, UEFI applications 
can still get command-line arguments (in many cases), UEFI applications can 
still redirect ConIn/ConOut/ErrOut and can still use file systems, all without 
using the UEFI shell API.

Also UEFI applications are not likely to use a driver/protocol, since they 
often exist on a disk rather than built-in the ROM and may not be used in a 
system which has the protocol. And the size overhead for containing both 
branches of code can be a problem, so a FeatureFlag PCD would be preferable.

Tim

From: Mcdaniel, Daryl 
[mailto:[email protected]<mailto:[email protected]>]
Sent: Friday, January 25, 2013 9:26 AM
To: [email protected]<mailto:[email protected]>
Subject: Re: [edk2] StdLib & Drivers & non-Shell Apps

For the Standalone StdLib, which I am working on, I take the approach that one 
will modify the library class definitions in the project's .dsc file to point 
to either the Shell hosted or the Standalone library instances.  Once finished, 
the Standalone libraries will be able to be used in drivers as long as their 
UEFI dependencies are met.  The two sets of libraries are

The way things are currently working out, the only library that will be 
different is LibC since the refactored, standalone, libraries are the same for 
both hosted and standalone environments.

The benefit to this is that the change(s) needed to go between hosted or 
standalone is confined to a single file; the project .dsc file.
So, my vote is for you to keep the library classes the same and select between 
the implementation instances in the [LibraryClasses] section of the .dsc file.

The Standalone StdLib also installs itself as a driver/protocol (if that build 
option was set) so that the overhead is only incurred once if there are 
multiple drivers or applications using StdLib.

Daryl


From: Tim Lewis [mailto:[email protected]<mailto:[email protected]>]
Sent: Thursday, January 24, 2013 10:01 PM
To: 
[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>
Subject: [edk2] StdLib & Drivers & non-Shell Apps

Folks - I am fairly far along in creating a basic version of the StdLib which 
works for Drivers and non-Shell apps. Yes, there are many functions that are 
missing, but good ol' malloc/free and strcpy are there.

The troubling case seems to be non-shell UEFI applications. Because both shell 
and non-shell applications compile as UEFI_APPLICATION, I can't use 
LibraryClass to distinguish between them. Yes, I can tell between them at 
runtime by whether or not the Shell protocols are present. But it requires that 
I link against the ShellPkg, and takes up extra space, even if the app is 
designed to be run directly from the UEFI Boot Manager (with the App bit set in 
the load option, etc.) For drivers, the LibraryClass idea works fine for 
excluding unnecessary code and the dependency on the shellpkg.

So, is my only option to create another whole library class (LibCApp?) along 
with the library classes for LibStdLibApp, LibStdioApp, etc.

I think that this effort is very useful, because I port a lot of code back and 
forth between shell apps and drivers and non-UEFI. From an architecture 
standpoint, I could see adding a new MODULE_TYPE (UEFI_BOOT_APPLICATION).

Any other ideas?

Tim

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET<http://ASP.NET>, C# 2012, HTML5, 
CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
edk2-devel mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET<http://ASP.NET>, C# 2012, HTML5, 
CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
edk2-devel mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to