About SpaceShadow Products

The SpaceShadow Company provides real-time software for embedded applications. Our main goal is to deliver reliable, predictable, deterministic, safe and efficient products that also allow reducing the power consumption. All products, provided by SpaceShadow, are designed to work on different platforms and are separated from the hardware dependent layer. Sirius RTOS (real-time operating system kernel) is available now. The product provides the features that are characteristic for modern RTOS (e.g. priority inversion avoidance mechanism, critical section abandon control, deadlock detection etc.). It is an ideal solution for embedded system design and development in every field of business needs.


The whole product documentation is available online. If SpaceShadow improves or changes the product, the documentation will be immediately posted on the website in the documentation section. Each document has assigned an individual URL address. Once created document, will never be moved or removed. Any changes (like updates or marking is as obsolete) will be noticed in the document, without changing its web address. This allows our customers to get an access to the current documentation at any time via the Internet. On the left side of the web page, in the tree, each user can find the chosen document in a simply way.

Source file location

All source files are delivered in separate directories. The user can locate them into another directory, defining the individual structure of the application sources. All header files are included by their names (without specifying their path). The paths of header files should therefore be set at compile time as the extra include directories. The name of all source files of the product begins with a prefix, specific to the product. This avoids conflicts between the naming convention and the one, used by customer. To use a product in your application, you should only add all product source files to the project and include an XX_API.h file (where XX is a prefix of the product), in each source file in which the product functions will be used.

Product configuration

Each product can be individually configured and optimized for a specific use. The configuration process is realized by redefining the constants specific for the product. All constants have assigned a default value. When the user decides to specify the other than a default value, all constants should be defined with new a value in the global configuration file (Config.h), which is shared by all products. The constants are always preprocessor definitions, so new value definition is realized through #define directive of C language.

Naming convention

Our products can be used in different applications. A well-chosen identifiers for functions, types, constants, (etc.) enable the user to understand what is the system purpose, how it works and how to use the source code for the specific application.

The name of the all functions and variables begins with two or three lowercase letter prefix that identifies the product. The words in name are separated by using medial capitalization, thus rendering "some words" as either "SomeWords" (The example name: osWaitForObject, where the os prefix identifies the Operating System product).

All of the basic types like INT32, PVOID, SIZE, etc. are always written with uppercase letters. Types of structures or function pointers begin with the upper case 'T' letter, and the rest of the name is written by using medial capitalization. The example: TTaskProc.

The configuration constants and definitions are always written with the upper case, with two or three letter prefix and words separated by the underscore character (_). The example: AR_USE_64_BIT.

SpaceShadow documentation