Introduce VARFSEG for variables that will reside in the f-segment.

Introduce a variable declaration that will force variables (that are
compiled in 32bit mode) to be emitted into the f-segment.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Convert VAR16VISIBLE, VAR16EXPORT, and VAR32VISIBLE to VARFSEG.

Convert all users of the alternative variable exports to VARFSEG.
There isn't a significant distinction between the existing types of
exports, so it's simpler to just use one type going forward.

The new VARFSEG declaration is only emitting when in 32bit mode, so
update and move some variables as needed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Don't relocate "varlow" variable references at runtime.

Since the final location of the "varlow" variables are known at build
time, link the final locations into the binary during the build.  The
16bit code was already done at link time - update the build so the
32bit code is also done at link time.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Move malloc's ZoneFSeg and ZoneLow setup to malloc_init.

This reduces some duplicate code between malloc_preinit() and
csm_malloc_preinit().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Calculate "RamSize" dynamically when needed by 16bit interface.

Modify handle_1588() and handle_15e801() (the only two external
interfaces that require "RamSize") to calculate the information
dynamically from the e820 map.  All other users of the RamSize (and
RamSizeOver4G) variables are specific to QEMU, so move the
declarations to paravirt.c.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>