Hi Richard,
Thank you for all of the helpful comments! v4 will be much cleaner as a
result.
A few follow-ups inline.
On 6/7/24 12:57 PM, Richard Henderson wrote:
On 6/6/24 07:02, Don Porter wrote:
+
+ /**
+ * @mon_init_page_table_iterator: Callback to configure a page
table
+ * iterator for use by a monitor function.
+ * Returns true on success, false if not supported (e.g., no
paging disabled
+ * or not implemented on this CPU).
+ */
+ bool (*mon_init_page_table_iterator)(Monitor *mon,
+ struct mem_print_state
*state);
I don't understand the purpose of this one as a target-specific hook.
The iterator needs some architecture-specific initialization, such as
getting the virtual
and physical address width.
+ /**
+ * @flush_page_table_iterator_state: Prints the last entry,
+ * if one is present. Useful for iterators that aggregate
information
+ * across page table entries.
+ */
+ bool (*mon_flush_page_print_state)(CPUState *cs,
+ struct mem_print_state *state);
Is this specific to "info pg" or not?
It appears to be, but the description suggests it is not.
It is.
Thank you,
Don