[DRIVERS] Add umode_t and dma_addr_t to linux/types.h

Provide linux compatible umode_t and dma_addr_t types.

Signed-off-by: Ankit Jindal <thatsjindal@gmail.com>
[DRIVERS] Add pm_message_t to linux/pm.h

Provide linux compatible pm_message_t for driver porting.

Signed-off-by: Ankit Jindal <thatsjindal@gmail.com>
[ARCH] Add atomic_add_unless() to arch_atomic.h

This patch adds derived atomic operation atomic_add_unless()
to arch_atomic.h for all archs.

This new atomic operation will be used for implementing linux
compatible kref APIs.

Signed-off-by: Ankit Jindal <thatsjindal@gmail.com>
[DRIVERS] Add more linux compatible atomic operations to asm/atomic.h

This patch adds number of linux-like atomic operations such as:
1. atomic_inc_and_test()
2. atomic_dec_and_test()
3. atomic_sub_and_test()
4. atomic_add_negative()

All the above atomic operations are directly expressed in terms of
Xvisor atomic operations.

Signed-off-by: Ankit Jindal <thatsjindal@gmail.com>
[DRIVERS] Add linux-like __xxx() byteorder to asm/byteorder.h

We already have most of the linux compatible byteorder APIs
in asm/byteorder.h but quite a few drivers use __xxx() varients
of these byteorder APIs hence this patch.

Signed-off-by: Ankit Jindal <thatsjindal@gmail.com>
[DRIVERS] Define module to vmm_module to make drivers happy

Lot of linux driver keep track of module pointer hence #define
module to vmm_module to make them happy.

Signed-off-by: Ankit Jindal <thatsjindal@gmail.com>
[DRIVERS] Add place holder linux/moduleparam.h

Signed-off-by: Ankit Jindal <thatsjindal@gmail.com>
[DRIVERS] Add place holder linux/kmod.h

Signed-off-by: Ankit Jindal <thatsjindal@gmail.com>
[DRIVERS] Add linux compatible kref APIs

Quite a few driver frameworks use kref APIs for reference
counting hence this patch adds linux compatible kref for
porting drivers.

Signed-off-by: Ankit Jindal <thatsjindal@gmail.com>