On Wed, 6 Aug 2008 11:04:16 -0500 (CDT) "W. Michael Petullo" <[EMAIL PROTECTED]> wrote:
> 1. How do I know exactly what subset of libc is available to me as a > GRUB developer? Obviously, system calls would not be expected to work > because the operating system has not yet been loaded, but I would > expect libmath routines to be usable by GRUB. What about other > libraries? No libc is available. Only functions implemented by GRUB itself are available. See ``kern/misc.c`` and ``include/grub/misc.h`` in the GRUB 2 source tree for implementations of the most important things that are normally provided by libc, such as strcpy (grub_strcpy), memcmp (grub_memcmp), etc. link to online svn for misc.c: http://svn.savannah.gnu.org/viewvc/trunk/grub2/kern/misc.c?revision=1774&root=grub&view=markup GRUB implements dynamic memory allocation through grub_malloc, grub_free, grub_realloc. See ``kern/mm.c``. No math library is available, but I think you could create a 'math' module in GRUB and implement the required math functions there. The main thing is to keep the GRUB core small. It needs to fit in 32 KB, I think. GRUB has its own file I/O api (no stdio -- instead use grub_file_open, grub_file_read, etc.). If you want to see how to use the GRUB library stuff, look at some of the built in commands such as ``commands/ls.c``, etc. Regards, Colin _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel