Prototype for function that applies a walk filter
#include <qvm/gasp.h>
typedef void(* gasp_walk_filter_t)(uint64_t *guest_loc, size_t *length);
A walk filter is used to have gasp_walk_*_filtered() return a subset of the memory that an unfiltered walk would normally return. The filter function is called with an intermediate physical memory address range. The filter can allow the entire block to be written by returning the parameters unmodified, or it can return the first subrange that it will allow. The latter action will cause the filter function to be called again with the remainder of the original range.
In these examples, guest_loc is 10 and length is 5, so locations 10 to 14 are originally requested.