High Performance OPC UA Server SDK
1.4.0.256
|
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.
Name | Description |
---|---|
Linux | This works on all kind of Linux platforms. It automatically adapts to the system endianness 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.
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 endianness 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 memory 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 |
pfile.[c,h] | Provides an implementation for file IO. This is used by the settings file parser. | Optional |
phostname.[c,h] | Provides access to the system's hostname. This is used for automatic certificate generation and for substituting "[hostname]" placeholders in the settings file. | 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.