- Extract 37 of 45 PDFs under docs/ to docs-extracted/ - Preserve directory structure (apex, cdk, development, platform, etc.) - Add docs-extracted/index.md with navigation table - 8 PDFs were 0-byte/empty and could not be extracted
10 KiB
| title | source | category | pages | extracted |
|---|---|---|---|---|
| Pikeos Cxx Programming Environment | docs/pikeos-native/pikeos-cxx-programming-environment.pdf | pikeos-native | 9 | 2026-07-06T23:06:05.551097 |
Pikeos Cxx Programming Environment
Extracted from
docs/pikeos-native/pikeos-cxx-programming-environment.pdf(9 pages). Figures, diagrams, and tables may not render accurately in plain text.
CPPENV
C++ Language Programming Environment
Am Pfaffenstein 14, D-55270 Klein-Winternheim
Notice: The contents of this document are proprietary to SYSGO GmbH and shall not be disclosed, disseminated, copied, or used except for purposes expressly authorized in writing by SYSGO GmbH. C++ Language Programming Environment PikeOS D5.0, Document Version D5.0-30
c 2005 – 2019 SYSGO GmbH
SYSGO GmbH Email: office@sysgo.com Am Pfaffenstein 14 55270 Klein-Winternheim, Germany http://www.sysgo.com
All rights reserved. PikeOS is a trademark of SYSGO GmbH. The designations used to identify other software or hardware products in this publication may be trademarks of their manufacturers or sellers. Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1 Known Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Architecture Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5 Library Summary: C++ Support Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.1 C Language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.2 C++ Language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6 Library Summary: C++ Standard Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
c Copyright 2005 – 2019 SYSGO GmbH, all rights reserved.
4 Introduction
1 Introduction
The PikeOS C++ language programming environment (CPPENV) further extends the PikeOS native personality providing a C++ programming environment to the application programmer. Section 3 describes application project configuration parameters, section 4 contains a summary of the files comprising the PikeOS C++ language programming environment. The PikeOS C++ language programming environment is currently only available to PikeOS applications using the PikeOS native personality. In future releases, the C++ language programming environment will be made available to other PikeOS personalities and components.
1.1 Known Limitations
• When including PikeOS include files (for example <p4.h>), the application programmer may have to
provide appropriate linkage specifications for use in C++ context, for example
#ifdef __cplusplus
extern "C" {
#endif
#include <p4.h>
#include <vm.h>
#ifdef __cplusplus
}
#endif
or using definitions from P4EXT or CENV (provided by most P4EXT or CENV headers or by including
<p4ext/p4ext_cdefs.h> or <sys/cdefs.h>)
__BEGIN_DECLS
#include <p4.h>
__END_DECLS
• The name demangling function __cxa_demangle() is not supported.
c Copyright 2005 – 2019 SYSGO GmbH, all rights reserved.
5
2 Architecture Dependencies
C++ exception handling and stack unwinding may issue floating-point instructions on certain architectures. Threads making use of C++ exceptions should therefore be created with appropriate thread context creation flags (e.g. P4_THREAD_ARG_FPU set).
c Copyright 2005 – 2019 SYSGO GmbH, all rights reserved.
6 Project Configuration
3 Project Configuration
The use of the C++ language programming environment is currently limited to PikeOS native applications. The C++ language programming environment consists of two parts. One part consists of headers and object code libraries providing support functions for the C++ compiler (libsupcxx). The second part consists of a subset of the C++ standard library. In the configuration of PikeOS native applications support for the C++ language programming environment is enabled by configuration parameter PIKEOS_CXX. Enabling this parameter adds the definition of feature test macro PIKEOSCPPENV to the C++ compiler command line and adds the C++ compiler support library to the linker command line. If required by the application program, the PikeOS C language programming environment (PIKEOS_CENV, PIKEOS_CENV_LIBM) can be used in combination with the C++ language support. The C++ standard library subset is enabled by configuration parameter PIKEOS_CXX_STL, this parameter de- pends on PIKEOS_CXX and PIKEOS_CENV being enabled. Enabling parameter PIKEOS_CXX_STL extends the include file search path to locate the C++ standard library headers and adds the C++ standard library to the linker command line. Filename extensions .cc, .cpp, and .C are supported for C++ source files. The C++ language standard for source code and library versions is configured by parameter PIKEOS_CXX_STD. The currently supported value is c++98.
c Copyright 2005 – 2019 SYSGO GmbH, all rights reserved.
7
4 Files
C++ language support header files for the C++ language programming environment are installed in $PIKEOS_TARGET_FILES/include/c++98. The C++ language compiler support library is installed in $PIKEOS_TARGET_FILES/lib/libsupcxx-c++98.a. Header files and object code libraries for the C++ standard library are installed in$PIKEOS_TARGET_FILES/cppenv/include/c++98 and $PIKEOS_TARGET_FILES/cppenv/lib/libstdcxx-c++98.a, respectively. Makefile definitions and rules for use of the PikeOS C++ language programming environment in PikeOS native applications are found in $PIKEOS_TARGET_FILES/scripts/pikeos/cxx.mk.
c Copyright 2005 – 2019 SYSGO GmbH, all rights reserved.
8 Library Summary: C++ Support Library
5 Library Summary: C++ Support Library
5.1 C Language Support
<cassert> Diagnostics macro.
<cctype> Character type handling.
<cerrno> Error number.
<cfloat> Characteristics of floating types.
<ciso646> Empty header. The macros that appear in iso646.h in C are keywords in C++.
<climits> Limits of integer types.
<clocale> C localization utilities.
<cmath> Mathematics.
<csetjmp> Non-local goto.
<cstdarg> Handling of variable length argument lists.
<cstddef> Typedefs for types such as size_t, NULL and others.
<cstdio> C input/output functions.
<cstdlib> General purpose utilities.
<cstring> C character string handling.
Note that limitations of the PikeOS C language programming environment (CENV) are reflected by these headers, for example is limited to formatted input and output on C string buffers.
5.2 C++ Language Support
<exception> Exception handling utilities.
<new> Low-level memory management utilities.
<typeinfo> Runtime type information utilities.
c Copyright 2005 – 2019 SYSGO GmbH, all rights reserved.
9
6 Library Summary: C++ Standard Library
Algorithms that operate on containers. std::bitset class template. std::deque container. Function objects, designed for use with the standard algorithms. Container iterators. Standardized way to query properties of fundamental types. std::list container. std::map and std::multimap associative containers. Higher level memory management utilities. Numeric operations on values in containers. std::queue and std::priority_queue container adaptors. std::set and std::multiset associative containers. std::stack container adaptor. Standard exception objects. std::basic_string class template. Various utility components. Class for representing and manipulating arrays of values. std::vector container. Note that limitations of the PikeOS C language programming environment (CENV) are reflected by these headers, for example does not support wide character strings.
c Copyright 2005 – 2019 SYSGO GmbH, all rights reserved.