[CORE] Fixup IO access functions

The IO access functions are very important to architectures like
x86.

This patch fixes prototype of all IO access functions and adds
few legacy memory read/write operations.

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] Fix drivers to reflect changes vmm_host_io.h

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] Add vmm_readq and vmm_writeq for 64-bit machines

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] Added __initdata variable attribute for boot time data

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] Remove vmm_host_ram_xxx() API declarations from vmm_host_aspace.h

The vmm_host_ram_xxx() were declared at two places vmm_host_ram.h and
vmm_host_aspace.h

This patch removes this duplicate declarations.

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] fb: Add apertures to vmm_fb_info and related APIs

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] More linux-compatible headers for porting vesafb driver

Signed-off-by: Anup Patel <anup@brainfault.org>
[x86] Minor beautifications in x86_64 generic board

Signed-off-by: Anup Patel <anup@brainfault.org>
[LIBS] Added strpbrk() and strsep() APIs to stringlib

Signed-off-by: Anup Patel <anup@brainfault.org>
[x86] Add separate source file for stubs and hacks

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] Include vmm_host_aspace.h in linux/ioport.h

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] Added flags for specifying normal write-through memory

This patch adds define VMM_MEMORY_FLAGS_NORMAL_WT for specifying
flags required for a norma write-through memory.

With this patch, we have three types flags for host memory:
VMM_MEMORY_FLAGS_NORMAL -> Normal RAM  (cacheable & writeback)
VMM_MEMORY_FLAGS_NORMAL_WT -> Normal + Writethrough (cacheable & writhrough)
VMM_MEMORY_FLAGS_IO -> Device registers

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] Fix compile warning in request_region() of linux/ioport.h

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] Added VESA 2.0 frame buffer driver.

This patch addes VESA 2.0 or VBE 2.0 video driver ported from linux.

The driver is not functional yet since it requires x86 arch code to
populate screen information.

Signed-off-by: Anup Patel <anup@brainfault.org>
[x86] Update defconfig to default compile vesafb driver

Signed-off-by: Anup Patel <anup@brainfault.org>
[x86] Create VTEMU instance for x86_64_generic when possible

Signed-off-by: Anup Patel <anup@brainfault.org>
[LIBS] vtemu: Export vtemu_key2str() and vtemu_key2flags() APIs

The vtemu_key2str() and vtemu_key2flags() can be used for implementing
arch_defterm_getc() for x86 machines hence exporting them.

Signed-off-by: Anup Patel <anup@brainfault.org>
[x86] Light-weight arch_defterm_getc() using VTEMU and Input handlers

Signed-off-by: Anup Patel <anup@brainfault.org>
Merge branch 'x86-next', remote-tracking branch 'upstream/master' into x86-next
[x86] Rearranged code for interrupt registration.

Rearragned the interrupt code to align more with
host IRQ subsystem. External interrupts are by
default mapped to the CPU vectors. The drivers
register based on the external IRQ number and
they don't need to bother about IOAPIC pin routing.

Register fast EOI as the IRQ handler for APIC.

Signed-off-by: Himanshu Chauhan <hschauhan@nulltrace.org>