[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Encryption Support for GRUB
From: |
Colin D Bennett |
Subject: |
Re: Encryption Support for GRUB |
Date: |
Wed, 6 Aug 2008 10:11:35 -0700 |
On Wed, 6 Aug 2008 11:04:16 -0500 (CDT)
"W. Michael Petullo" <address@hidden> 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