This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Gcl-devel] Re: BFD relocations


> Greetings!  I found an earlier cache flushing snippet for another
> arch:
>
> #define CLEAR_CACHE do { unsigned long ps = getpagesize(); \
> 			 char *beg = (char *)((unsigned long )(memory->cfd.cfd_start) & ~(ps-1)); \
> 			 char *end =  ROUND_UP(memory->cfd.cfd_start + \
> 				          memory->cfd.cfd_size,ps); \
> 			   mprotect(beg,end-beg,PROT_READ|PROT_WRITE|PROT_EXEC);} while(0)
> 
> Can mprotect be used in this way to portably flush the data cache?

I very much doubt it.  I don't see any real connection between page
protection and the cache.  Some OS might decide that changing
protection is a reason to flush the cache; another might not.  For
some CPU targets this may be necessary or useful, for others it may be
entirely superfluous.

	 paul



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]