grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Grub for ia64 - function descriptors


From: Hollis Blanchard
Subject: Re: Grub for ia64 - function descriptors
Date: Fri, 29 Sep 2006 00:10:32 -0500

On Thu, 2006-09-28 at 15:45 +0200, address@hidden wrote:
> 
>           if (grub_strcmp (name, "grub_mod_init") == 0)
>             mod->init = (void (*) (grub_dl_t)) sym->st_value;
> 
> This won't work on ia64 AFAIK.

Can't this problem be solved with an architecture-specific macro?

FWIW, 64-bit PowerPC also uses function descriptors. They look something
like:
        long code_address
        long table_of_contents
        long unused

The table_of_contents (TOC) value needs to be placed into r2 when
jumping at code_address (and of course the old one needs to be restored
when returning). I assume IA64 is similar here, and given that, a
module_jump function implemented in assembly by each architecture would
solve this problem.

(Generally speaking, the TOC on ppc64 only varies across separately
linked modules.)

(This issue does not apply to GRUB on ppc64 systems, since those systems
still use 32-bit firmware and thus 32-bit GRUB.)

-Hollis





reply via email to

[Prev in Thread] Current Thread [Next in Thread]