High Performance OPC UA Server SDK  1.1.1.177
Platform Module

The platform layer module is the basis for all other code.

If you want to port the SDK to a new operating system you need to implement a new platform backend.

Currently Available Backends:

Name Description
Linux This works on all kind of Linux platforms. It automatically adapts to the system endeniass and was tested with x86, x86_64, ARM and PPC. It compiles with GCC and Clang.
Windows This works on PC based Windows x86/x86_64 systems and makes use of Win32 API calls. It was tested with varisous MS Visual Studio versions and MinGW.

Further platforms will be added in future versions.

Platform Functionalities

The following table gives an overview about the different platform functionalities. Each functionality is implemented in a separate file. Platform functions are grouped by functionality and placed in separate files. This makes it easy to find the functions and to exclude optional functionality by omitting optional files during the build process.

File Description Optional / Mandatory
pplatform.h Global defines like endianess configuration and compiler configurations. Mandatory
pplatform.c Global platform init and cleanup functions and a panic printf. Mandatory
pmemory.[c,h] Generic memory function mappings. Only needed at startup to allocate memory which is then managed by the SDK memery pools. Mandatory
pipcmem.[c,h] IPC memory functions. Provides a shared memory block for IPC communication. Must be shared in multi-process mode. Can be private and single-process mode. Mandatory
ptime.[c,h] Provides a time and tickcount functionality. Mandatory
pguid.[c,h] Provides a GUID generation implementation. Mandatory
pshutdown.[c,h] Provides functionality to trigger shutdown or configuration reloads. Mandatory
psemaphore.[c,h] Provides a semaphore implementation used for IPC queues. Mandatory
pmutex.[c,h] Provides a implementation of global mutexes which are used to synchronize data access of multiple processes. Optional, Only for multi-process mode
pprocess.[c,h] Provides an implementation to start and stop child processes. Optional, Only for multi-process mode
psandbox.[c,h] Provides an implementation to enter Linux Secure Computing Mode or comparable mechanisms. Optional

The folder platform/template contains all necessary stubs for implementing a new platform backend. Each function contains a doxygen comment which describes the function and its parameters. If something is unclear its best to have a look at the existing platform layer implementations.

For more details on porting the SDK please read the SDK Porting Guide.