Re: Flushing the data cache
Greetings! This is exactly what I needed. Thanks!
On a separate note -- are there issues with fakeroot or its equivalent
on ia64 currently? I can build acl2 there fine by hand as an ordinary
user, but get a SIGILL when using fakeroot. The later error also
appears to have hit the autobuild.
David Mosberger <firstname.lastname@example.org> writes:
> >>>>> On Wed, 13 Nov 2002 19:04:44 -0500, Camm Maguire <email@example.com> said:
> Camm> Greetings! GCL loads binary modules into its data section,
> Camm> and then attempts executing the code thus loaded. On some
> Camm> RISC machines, it needs to flush the data cache after writing
> Camm> and before executing. Some samples are included at the end of
> Camm> this post.
> Camm> What I'm looking for is the analog on ia64, which does appear
> Camm> to be necessary after all. Can anyone help?
> I attached the GNU C routine which flushes the cache in the address
> range [ADDR,ADDR+LEN). Hope that helps.
> static void
> flush_cache (void *addr, unsigned long len)
> void *end = (char *) addr + len;
> while (addr < end)
> asm volatile ("fc %0" :: "r"(addr));
> addr = (char *) addr + 32;
> asm volatile (";;sync.i;;srlz.i;;");
Camm Maguire firstname.lastname@example.org
"The earth is but one country, and mankind its citizens." -- Baha'u'llah