Specifications
System Macros Invoked by Drivers
INVALIDATE_TB
INVALIDATE_TB
Allows a single page-table entry (PTE) to be modified while any translation buffer
entry that maps it is invalidated, or invalidates the entire translation buffer.
Format
INVALIDATE_TB [addr, inst1 [,inst2] [,inst3] [,inst4] [,inst5] [,inst6] [,save_r2=YES]
[,checks=YES]]
Parameters
[addr]
Virtual address mapped by the PTE for which invalidation is required. If addr is
blank, then the macro invalidates all PTEs in the translation buffer.
[inst1]
First instruction that modifies the PTE.
[inst2]
Second instruction that modifies the PTE.
[inst3]
Third instruction that modifies the PTE.
[inst4]
Fourth instruction that modifies the PTE.
[inst5]
Fifth instruction that modifies the PTE.
[inst6]
Sixth instruction that modifies the PTE.
[save_r2=YES]
Indication that the value in R2 at the invocation of this macro should be
preserved across the macro call. By default, INVALIDATE_TB preserves the
value in R2; any value but YES supplied in this argument overrides this behavior.
[checks=YES]
Argument enabling or disabling the generation of assembly-time warning
messages that indicate misuse of the macro. When any value but YES is supplied
in the checks argument, the INVALIDATE_TB macro does not generate these
messages.
Description
When privileged code alters page mapping information, modifying a valid PTE in
an active page table, it must notify the operating system. The operating system
then takes suitable steps to invalidate all translation buffer entries that reference
this PTE.
The INVALIDATE_TB macro allows you modify a single PTE and invalidate a
single translation buffer cache entry by supplying the virtual address mapped
by the PTE in the addr argument and at least one instruction argument.
INVALIDATE_TB executes up to six instructions that modify the PTE while
2–41