Add support to map the contents of a file

Add a package HW.File with a single procedure Map():

   procedure Map
     (Path     : in     String;
      Addr     : in     Word64;
      Len      : in     Natural;
      Readable : in     Boolean := False;
      Writable : in     Boolean := False;
      Map_Copy : in     Boolean := False;
      Success  :    out Boolean)
   with
      Pre => (Readable or Writable) and
             (if Map_Copy then Readable and not Writable);

If `Map_Copy` is `False`, it should map `Len` bytes from the start of
the file given by `Path` into the application's address space at `Addr`
using mmap(). If `Map_Copy` is `True`, anonymous memory should be map-
ped instead and be filled with a copy of the file's content using
read().

The current implementation is backed by C code to reduce dependencies
to external libraries (e.g. Florist is not packaged by a famous Linux
distro).

While we are at it, also add a configuration file for common POSIX
environments (configs/posix).

Change-Id: Ic10c35b35d3216dab6a5b2baba7ba619c885b346
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/18779
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/configs/defconfig b/configs/defconfig
index eb8cafb..c0db7c3 100644
--- a/configs/defconfig
+++ b/configs/defconfig
@@ -4,3 +4,4 @@
 CONFIG_HWBASE_DYNAMIC_MMIO		=
 CONFIG_HWBASE_TIMER_CLOCK_GETTIME	= y
 CONFIG_HWBASE_TIMER_MUTIME		=
+CONFIG_HWBASE_POSIX_FILE		=