From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1GTIER-0006G2-4p for mharc-grub-devel@gnu.org; Fri, 29 Sep 2006 09:16:47 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1GTIEQ-0006Fx-3l for grub-devel@gnu.org; Fri, 29 Sep 2006 09:16:46 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1GTIEO-0006Fl-Jz for grub-devel@gnu.org; Fri, 29 Sep 2006 09:16:44 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GTIEO-0006Fi-FG for grub-devel@gnu.org; Fri, 29 Sep 2006 09:16:44 -0400 Received: from [207.69.195.66] (helo=pop-canoe.atl.sa.earthlink.net) by monty-python.gnu.org with esmtp (Exim 4.52) id 1GTIJi-0002X6-1B for grub-devel@gnu.org; Fri, 29 Sep 2006 09:22:14 -0400 Received: from user-0vvdf2d.cable.mindspring.com ([63.246.188.77] helo=diesel.unsanctioned.org) by pop-canoe.atl.sa.earthlink.net with esmtp (Exim 3.36 #1) id 1GTIEN-0002XD-00 for grub-devel@gnu.org; Fri, 29 Sep 2006 09:16:43 -0400 From: Hollis Blanchard To: The development of GRUB 2 In-Reply-To: <1159513142.451cc4361703a@imp1-g19.free.fr> References: <1159443706.451bb4fad4e1a@imp6-g19.free.fr> <87zmck15gp.fsf@xs4all.nl> <1159451113.451bd1e94a4d9@imp1-g19.free.fr> <1159506632.21826.32.camel@diesel> <1159513142.451cc4361703a@imp1-g19.free.fr> Content-Type: text/plain Date: Fri, 29 Sep 2006 08:16:42 -0500 Message-Id: <1159535802.5255.4.camel@diesel> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 (2.6.3-1.fc5.5) Content-Transfer-Encoding: 7bit Subject: Re: Grub for ia64 - function descriptors X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Sep 2006 13:16:46 -0000 On Fri, 2006-09-29 at 08:59 +0200, tgingold@free.fr wrote: > Quoting Hollis Blanchard : > > > On Thu, 2006-09-28 at 15:45 +0200, tgingold@free.fr 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. I don't know what you mean; please elaborate (with pseudo-code if possible). -Hollis