[DRIVERS] Minor improvements to linux portability headers

This patch does minor improvements to linux/device.h and linux/workqueue.h
header files.

We also add linux compatible dev_notify() helper macro.

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] Minor typo fixes in input configuration files.

Signed-off-by: Anup Patel <anup@brainfault.org>
[TOP] Remove .o extension from VMM_MODNAME define

The VMM_MODNAME represents name of the module being compiled. It is
derived from filename of the source file containing VMM_DECLARE_MODULE()
macro. Currently, we were having .o extension in the VMM_MODNAME which
is not nice to have hence this patch removes .o extension from VMM_MODNAME.

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] Introduce linux/bug.h portability header

This patch adds linux/bug.h portability header for driver porting
and few other improvements to linux portability headers.

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] Add vmm_sdelay() API

This patch adds delay API for soft-delay in-terms of seconds.

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] Add VMM_ENXIO error code

This patch adds linux-like error code for "non-existant IO" error case.

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] More improvements to linux compatible headers

This patch adds asm/uaccess.h, linux/ctype.h, and linux/proc_fs.h
linux compatible headers.

Also, the header linux/timer.h is further improved.

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] input: Improve multi-touch support

This patch makes multi-touch support in input device framework
in-sync with latest linux kernel (3.7.4 or higher).

Signed-off-by: Anup Patel <anup@brainfault.org>
[COMMANDS] Improve output of 'input devices' command

The name and physaddr of input devices can be longer hence this
patch updates output of 'input devices' command accordingly.

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] input: Add PS/2 mouse drivers

This patch adds linux compatible PS/2 mouse drivers ported from
Linux 3.7.4 or higher.

The newly added mouse drivers have been tested on QEMU and ARM
Fast Models.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] Enable PS/2 mouse drivers where possible

This patch enables PS/2 mouse drivers for realview-eb-mpcore,
realview-pb-a8, vexpress-a9 and vexpress-a15 hosts.

Signed-off-by: Anup Patel <anup@brainfault.org>
[x86] Register reset & shutdown callbacks

    The arch_board_reset() and arch_board_shutdown() are
    depricated.

    Now we have to use vmm_register_system_reset() and
    vmm_register_system_shutdown() to provide reset & shutdown
    callbacks.

    This patch fixes x86_64_generic board as per above.

    Signed-off-by: Anup Patel <anup@brainfault.org>
    Signed-off-by: Himanshu Chauhan <hschauhan@nulltrace.org>
    Acked-by: Himanshu Chauhan <hschauhan@nulltrace.org>
[x86] Make arch_defterm_getc() sleepable.

The arch_defterm_getc() is always called in Orphan (or Thread) context
so as a small optimization we sleep waiting for input characters in
defterm fifo.

Also, its quite inefficient to constantly poll defterm fifo.

Signed-off-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Himanshu Chauhan <hschauhan@nulltrace.org>
Merge x86-next from https://github.com/hschauhan/xvisor-x86_64
[CORE] Add Banner3 and Graffiti banner styles

This patch adds two more banner styles namely Banner3 and Graffiti.

The patch also makes Roman banner style as default.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] Use Roman font style banner for all ARM hosts

This patch enables Roman font style banner for all ARM hosts
in their defconfigs.

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] vio: Minor cosmetic changes in vmm_vinput

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] vio: First-cut implementation of virtual display framework

This patch introduces first version of virtual display framework.

The virtual display subsystem has two important entites namely
vmm_vdisplay and vmm_surface.

GUI rendering daemons (VNC daemon or FB daemon or ...) create
vmm_surface instance and add/bind it to a vmm_vdisplay instance.
More than one GUI rendering daemons can add their vmm_surface
instances to a single vmm_vdisplay instance. The GUI rendering
daemons will also use vmm_vdisplay_one_update() API to periodically
update/sync vmm_surface instance with vmm_vdisplay instance.

Display (or framebuffer) emulators create vmm_vdisplay instance
to emulate a virtual display. The display emulator will also use
vmm_vdisplay_surface_xxx() APIs to give hints to vmm_surface
instances about changes in virtual display.

Signed-off-by: Anup Patel <anup@brainfault.org>
[COMMANDS] Minor beautification to 'vserial list' command

Signed-off-by: Anup Patel <anup@brainfault.org>
[EMULATORS] Avoid direct use of arch_cpu_to_xxxx() APIs

Generally, we prefer use of core APIs wherever possible
instead of directly using arch_xxx() APIs.

On similar lines, we replace use of arch_cpu_to_xxxx() APIs
with vmm_cpu_to_xxxx() APIs.

Signed-off-by: Anup Patel <anup@brainfault.org>