Quoting Hollis Blanchard <[EMAIL PROTECTED]>:

> On Thu, 2006-09-28 at 15:45 +0200, [EMAIL PROTECTED] 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).
Indeed, same issue.

>I assume IA64 is similar here, and given that, a
> module_jump function implemented in assembly by each architecture would
> solve this problem.
I'd prefer modules to export pointers. Seems to be easier to deal.

Tristan.


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to