/* Note that the following two definitions are _highly_ dependent on the contexts in which they are used in the kernel. I personally
think it is criminal how loosely defined these macros are. */
/* We need to flush the kernel's icache after loading modules. The only other use of this macro is in load_aout_interp which is not used on Alpha.
Note that this definition should *not* be used for userspace icache flushing. While functional, it is _way_ overkill. The icache is tagged with ASNs and it suffices to allocate a new ASN
for the process. */ #ifndef CONFIG_SMP #define flush_icache_range(start, end) imb() #else #define flush_icache_range(start, end) smp_imb() externvoid smp_imb(void); #endif
/* We need to flush the userspace icache after setting breakpoints in ptrace.
Instead of indiscriminately using imb, take advantage of the fact
that icache entries are tagged with the ASN and load a new mm context. */ /* ??? Ought to use this in arch/alpha/kernel/signal.c too. */
/* * Both implementations of flush_icache_user_page flush the entire * address space, so one call, no matter how many pages.
*/ staticinlinevoid flush_icache_pages(struct vm_area_struct *vma, struct page *page, unsignedint nr)
{
flush_icache_user_page(vma, page, 0, 0);
} #define flush_icache_pages flush_icache_pages
#include <asm-generic/cacheflush.h>
#endif/* _ALPHA_CACHEFLUSH_H */
Messung V0.5
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.