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




Reply via email to