/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2001 - 2013 Tensilica Inc.
*/
/* Use the .._no_isync functions with caution. Generally, these are * handy for bulk invalidates followed by a single 'isync'. The * caller must follow up with an 'isync', which can be relatively * expensive on some Xtensa implementations.
*/ staticinlinevoid invalidate_itlb_entry_no_isync (unsigned entry)
{ /* Caller must follow up with 'isync'. */
__asm__ __volatile__ ("iitlb %0\n" : : "a" (entry) );
}
staticinlinevoid invalidate_dtlb_entry_no_isync (unsigned entry)
{ /* Caller must follow up with 'isync'. */
__asm__ __volatile__ ("idtlb %0\n" : : "a" (entry) );
}
/* * DO NOT USE THESE FUNCTIONS. These instructions aren't part of the Xtensa * ISA and exist only for test purposes.. * You may find it helpful for MMU debugging, however. * * 'at' is the unmodified input register * 'as' is the output register, as follows (specific to the Linux config): * * as[31..12] contain the virtual address * as[11..08] are meaningless * as[07..00] contain the asid
*/
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.