From 1ca7d9eac6864c606a49b00b0f767d955807fdc0 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 4 Apr 2014 20:32:08 -0400 Subject: [PATCH] add routine to fault in whole mapping in reverse --- maps-fault.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/maps-fault.c b/maps-fault.c index 0a3eb67..cf4043c 100644 --- a/maps-fault.c +++ b/maps-fault.c @@ -108,6 +108,17 @@ static void read_every_other_page(struct map *map) memcpy(buf, p + i, page_size); } +static void read_mapping_reverse(struct map *map) +{ + char *p = map->ptr; + unsigned int i; + char buf[page_size]; + + for (i = (map->size - page_size); i > 0; i -= page_size) + memcpy(buf, p + i, page_size); +} + + /*****************************************************************************/ static const struct faultfn write_faultfns[] = { @@ -123,6 +134,7 @@ static const struct faultfn read_faultfns[] = { { .func = read_one_page }, { .func = read_whole_mapping }, { .func = read_every_other_page }, + { .func = read_mapping_reverse }, }; /* -- 2.11.4.GIT