Abstract mapping/unmapping of flash regions

Flash mapping/unmapping was performed without an abstraction layer,
so even the dummy flasher caused memory mappings to be set up. Add
map/unmap functions to the external flasher abstraction.

Fix a possible scribble-over-low-memory corner case which fortunately
never triggered so far.

With this patch, --programmer dummy works fine as non-root.

Corresponding to flashrom svn r493.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
diff --git a/dummyflasher.c b/dummyflasher.c
index 4a4ea0f..3bda7a7 100644
--- a/dummyflasher.c
+++ b/dummyflasher.c
@@ -40,6 +40,19 @@
 	return 0;
 }
 
+void *dummy_map(const char *descr, unsigned long phys_addr, size_t len)
+{
+	printf("%s: Mapping %s, 0x%lx bytes at 0x%08lx\n",
+		__func__, descr, (unsigned long)len, phys_addr);
+	return (void *)phys_addr;
+}
+
+void dummy_unmap(void *virt_addr, size_t len)
+{
+	printf("%s: Unmapping 0x%lx bytes at %p\n",
+		__func__, (unsigned long)len, virt_addr);
+}
+
 void dummy_chip_writeb(uint8_t val, volatile void *addr)
 {
 	printf("%s: addr=%p, val=0x%02x\n", __func__, addr, val);