/* * Jump to uncached area. * When handling TLB or caches, we need to do it from an uncached area.
*/ #define jump_to_uncached() \ do { \ unsignedlong __dummy; \
\
__asm__ __volatile__( \ "mova 1f, %0\n\t" \ "add %1, %0\n\t" \ "jmp @%0\n\t" \ " nop\n\t" \ ".balign 4\n" \ "1:" \
: "=&z" (__dummy) \
: "r" (cached_to_uncached)); \
} while (0)
/* * Back to cached area.
*/ #define back_to_cached() \ do { \ unsignedlong __dummy; \
ctrl_barrier(); \
__asm__ __volatile__( \ "mov.l 1f, %0\n\t" \ "jmp @%0\n\t" \ " nop\n\t" \ ".balign 4\n" \ "1: .long 2f\n" \ "2:" \
: "=&r" (__dummy)); \
} while (0) #else #define virt_addr_uncached(kaddr) (0) #define uncached_init() do { } while (0) #define uncached_resize(size) BUG() #define jump_to_uncached() do { } while (0) #define back_to_cached() do { } while (0) #endif
#endif/* __ASM_SH_UNCACHED_H */
Messung V0.5
¤ 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.0.10Bemerkung:
(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.