[TASK] Re-work dualprocshm library

- Move memory address access routine to target support module.
- Add generic macros for memory operations.
- Add macros to read/write 32 bit variables.
- Add macros to create non-cached memory.
- Add board specific memory configuration file for dualprocshm.

Signed-off-by: Gaurav Kumar Singh <gaurav@kalycito.com>
[FEATURE] Add dualprocshm support files for B&R APC2100

B&R APC2100 consists x86 processor running Windows as first processor
and NIOS2 soft processor on external PCIe card as second processor.

The memory between the processors is shared over PCIe. The memory
on the PCIe card is mapped for the Windows through 2 BARs. The
dualprocshm uses BAR0 as the shared memory and BAR1 as the common
memory.

This commit adds:

- Target support header for NIOS2 and Windows.
- Target support modules for PCP daemon and PCIe interface.
- Memory configuration file for B&R Antares interface.
[FEATURE] Add NDIS Miniport library for PCIe devices

The NDIS miniport driver initializes all the hardware resources such as
memory, interrupts etc. for the specified device. It also registers
a virtual adapter with the operating system to which other protocol
drivers like TCP/IP can bind with.
[FIX] Add 4 byte packing for Windows and 8 byte pointer variables

- Update pointer variables to use fixed 8 byte size. This avoids
  issues with different pointer sizes on 32 bit and 64 bit systems.
- Add compiler options for Windows to use fixed 4 byte packing for
  shared structures with 8 byte variables.

NOTE: This is a workaround commit to avoid issues with 64 bit Windows

Signed-off-by: Gaurav Kumar Singh <gaurav@kalycito.com>
[TASK] Add support for Windows kernel in stack

- Add Windows kernel target definitions header and target module.
- Add driver header and update driver.h to support windows kernel.

Signed-off-by: Gaurav Kumar Singh <gaurav@kalycito.com>
[FEATURE] Add driver project for Windows PCIe solution

This driver uses dualprocshm, ndislib and circbuf libraries to
create the communication interface between user application running
in Windows user space and kernel stack running on a softcore
NIOS2 processor on an external PCIe device.

Signed-off-by: Gaurav Kumar Singh <gaurav@kalycito.com>
[TASK] Add MN dual processor library support for NIOS2 processor

- Add library settings for dual processor CAL.
- Update stackfiles.settings to include CAL modules for dual processor.

Signed-off-by: Gaurav Kumar Singh <gaurav@kalycito.com>
[TASK] Add windows lock module to support PCIe

- Add PCIe specific locking macros in target definition.
- Add dual processor lock module for Windows user space.

Signed-off-by: Gaurav Kumar Singh <gaurav@kalycito.com>
[FEATURE] Add user CAL modules for PCIe interface

The CAL uses Windows IOCTLs to interact with the Windows driver.
The Windows driver is responsible for all communication to the PCIe
device.
[FEATURE] Add user library for PCIe interface

Signed-off-by: Gaurav Kumar Singh <gaurav@kalycito.com>
[TASK] Update Altera NIOS2 daemon build to include dualprocshm library

Signed-off-by: Gaurav Kumar Singh <gaurav@kalycito.com>
[TASK] Add synchronization thread for Windows

Signed-off-by: Gaurav Kumar Singh <gaurav@kalycito.com>
[TASK] Update console demo to support PCIe interface on Windows

Signed-off-by: Gaurav Kumar Singh <gaurav@kalycito.com>