Go to the documentation of this file.
28#if !defined( INC_INOSDEFINE_H )
29#define INC_INOSDEFINE_H
38#define INOS_LITTLE_ENDIAN 1234
43#define INOS_BIG_ENDIAN 4321
48#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
49#define INOS_BYTE_ORDER INOS_LITTLE_ENDIAN
51#define INOS_BYTE_ORDER INOS_BIG_ENDIAN
54#define WORDS_BIGENDIAN 1
60#define INOS_INLINE inline __attribute__((always_inline))
65#define INOS_NOEXCEPT noexcept
71#if !defined(__ASSEMBLER__)
73#if defined(INOS_WINDOWS)
74typedef signed long long intptr;
75typedef unsigned long long uintptr;
77typedef signed long intptr;
78typedef unsigned long uintptr;
81typedef signed long intptr;
82typedef unsigned long uintptr;
94#define DF_INOS_CPU_CACHE_LINE_SIZE 32
100#define DF_INOS_CPU_CACHE_LINE_MASK 0xffffffe0
105#define DF_INOS_MEMORY_ALLOC_ALIGNMENT 16
114#define DF_INOS_TARGET_OFFSET_OPTIONS 0x00000040
119#define DF_INOS_TARGET_OFFSET_VERSION 0x00000080
128#define DF_INOS_TARGET_CHAR_FLOATING 0x00000001
133#define DF_INOS_TARGET_CHAR_LITTLE_ENDIAN 0x00000002
138#define DF_INOS_TARGET_CHAR_64BIT 0x00000004
143#define DF_INOS_TARGET_CHAR_RES0 0x00000010
144#define DF_INOS_TARGET_CHAR_RES1 0x00001000
145#define DF_INOS_TARGET_CHAR_RES2 0x00100000
146#define DF_INOS_TARGET_CHAR_RES3 0x10000000
155#define DF_INOS_SAFETY_INVALID_UID 0xffffffff
164#define DF_INOS_MAX_CORES 4
165#define DF_INOS_MAX_CORES_MASK ((1<<DF_INOS_MAX_CORES)-1)
170#define DF_INOS_MAX_IRQS 1024
175#define DF_INOS_CORE_DEFAULT 0xFF
180#define DF_INOS_MAX_WATCHPOINTS 1
187#define DF_INOS_TASK_PRIO_HIGHEST 0
192#define DF_INOS_TASK_PRIO_LOWEST 31
197#define DF_INOS_TASK_PRIO_REALTIME_HIGHEST 0
199#if defined(INOS_CPU_ARMV8)
203#define DF_INOS_TASK_PRIO_ICC 0
212#define DF_INOS_TASK_PRIO_ICC 3
218#define DF_INOS_TASK_PRIO_REALTIME 8
223#define DF_INOS_TASK_PRIO_REALTIME_LOWEST 15
228#define DF_INOS_TASK_PRIO_COMMUNICATION_HIGHEST 16
233#define DF_INOS_TASK_PRIO_COMMUNICATION 20
238#define DF_INOS_TASK_PRIO_COMMUNICATION_DISPATCHER 20
243#define DF_INOS_TASK_PRIO_COMMUNICATION_LOWEST 23
248#define DF_INOS_TASK_PRIO_USER_HIGHEST 24
253#define DF_INOS_TASK_PRIO_USER 28
258#define DF_INOS_TASK_PRIO_USER_LOWEST 30
263#define DF_INOS_TASK_PRIO_BACKGROUND 31
268#if defined(INOS_MULTICORE)
269#define INOS_MULTICORE_KERNEL 1
271#undef INOS_MULTICORE_KERNEL
283#define DF_INCO_PROTOCOL_CLASSIC 0
288#define DF_INCO_PROTOCOL_STRIPPED 1
293#define DF_INCO_PROTOCOL_SPLITTED 2
298#define DF_INCO_PROTOCOL_RESERVED 16
305#define DF_INCO_DEVICE_NUMBER_COM0 0
310#define DF_INCO_DEVICE_NUMBER_INFOLINK 1
315#define DF_INCO_DEVICE_NUMBER_COM1 2
320#define DF_INCO_DEVICE_NUMBER_ETH0 3
325#define DF_INCO_DEVICE_NUMBER_GINLINK 4
330#define DF_INCO_DEVICE_NUMBER_PDP 5
335#define DF_INCO_DEVICE_NUMBER_COP 6
340#define DF_INCO_DEVICE_NUMBER_ETH1 7
345#define DF_INCO_DEVICE_NUMBER_GIN_COP 8
350#define DF_INCO_DEVICE_NUMBER_ETH2 10
355#define DF_INCO_DEVICE_NUMBER_ETH3 11
360#define DF_INCO_DEVICE_NUMBER_ETH4 12
365#define DF_INCO_DEVICE_NUMBER_GINLINK1 13
370#define DF_INCO_DEVICE_NUMBER_GINLINK2 14
375#define DF_INCO_DEVICE_NUMBER_GINLINK3 15
380#define DF_INCO_DEVICE_NUMBER_CORE0X 0x10
385#define DF_INCO_DEVICE_NUMBER_CORE10 0x11
390#define DF_INCO_DEVICE_NUMBER_CORE20 0x12
395#define DF_INCO_DEVICE_NUMBER_CORE30 0x13
400#define DF_INCO_DEVICE_NUMBER_CORE40 0x14
405#define DF_INCO_DEVICE_NUMBER_CORE50 0x15
410#define DF_INCO_DEVICE_NUMBER_CORE60 0x16
415#define DF_INCO_DEVICE_NUMBER_CORE70 0x17
420#define DF_INCO_DEVICE_NUMBER_CORE80 0x18
425#define DF_INCO_DEVICE_NUMBER_CORE90 0x19
430#define DF_INCO_DEVICE_NUMBER_COREA0 0x1A
435#define DF_INCO_DEVICE_NUMBER_COREB0 0x1B
440#define DF_INCO_DEVICE_NUMBER_COREC0 0x1C
445#define DF_INCO_DEVICE_NUMBER_CORED0 0x1D
450#define DF_INCO_DEVICE_NUMBER_COREE0 0x1E
455#define DF_INCO_DEVICE_NUMBER_COREF0 0x1F
460#define DF_INCO_DEVICE_NUMBER_ETHERCAT 0x20
465#define DF_INCO_DEVICE_NUMBER_ETHERCAT1 0x21
470#define DF_INCO_DEVICE_NUMBER_ETHERCAT2 0x22
475#define DF_INCO_DEVICE_NUMBER_ETHERCAT3 0x23
480#define DF_INCO_DEVICE_NUMBER_LOOPBACK 0xFF
489#define DF_INOS_PARAM_EXTENSION_NAME "extension"
493#define DF_INOS_PARAM_EXTENSION_ID_INPUT_SHAPING 1
497#define DF_INOS_PARAM_EXTENSION_NAME_INPUT_SHAPING "shaping"
506#define DF_INOS_ETHERNET_SHUTDOWN (-2)
511#ifndef MDNS_MAX_SERVICES
512#define MDNS_MAX_SERVICES 3
522#define INCO (*pINCOItems)
527#define DISPATCHER (*CINCODispatcher::m_pInstance[GetCoreId()])
532#define DISPATCHER_EMG (*CINCODispatcher::m_pInstanceEmg[GetCoreId()])
537#if defined(INOS_CPU_CORTEXA9)
538#define ICC (*CINOSHwIcc::m_pInstance[GetCoreId(true)])
540#define ICC (*CINOSHwIcc::m_pInstance[GetCoreId()])
550#define ENVIRONMENT CINOSMcTargetEnvironment::Instance()
555#define SYSTEM CINOSMcTargetSystem::Instance()
560#define DTB CINOSMcTargetDtb::Instance()
565#define DT2 CINOSMcTargetDt2::Instance()
570#define DATA CINOSMcTargetData::Instance()
575#define NVRAM CINOSMcTargetNvRam::Instance()
580#define IMAGE CINOSMcTargetImage::Instance()
585#define IMAGETRANSFER CINOSMcTargetImageTransfer::Instance()
590#define COMM CINOSMcTargetComm::Instance()
595#define MCTARGET CINOSMcTarget::Instance()
600#define SLAVE CINOSMcTargetFieldbusSlave::Instance()
605#define KRNLOG CINOSMcTargetKernelLogger::Instance()
610#define MS CINOS1ms::Instance()
615#define LVDT CINOSLVDT::Instance()
620#define MOTION CINOSMcTargetMotionController::Instance()
625#define SAFETY CINOSMcTargetSafety::Instance()
630#define SYNC CINOSMcTargetTimeSync::Instance()
635#define ASYNC (*CINCOAsyncResultMgr::Instance())
640#define MOVEPATH CINOSMcTargetMovePath::Instance()
645#if defined(INOS_CPU_ARMV8) || defined(INOS_CPU_P50XX) || defined(INOS_CPU_P2020) || defined(INOS_CPU_PPC750) || defined(INOS_DESKTOP)
646#define DBG CINOSHwDbg::Instance()
647#define DBG_CLASS CINOSHwDbg
649#define DBG (*g_pBreakpoints)
650#define DBG_CLASS CINOSBreakpoints
656#if defined(FEATURE_INOS_CANBUS)
657#define CAN CINOSMcTargetCanbus::Instance()
663#define IRQ CINOSHwIrq::Instance()
668#if defined(FEATURE_INOS_ONNX)
669#define ONNX CINOSMcTargetOnnx::Instance()
676#if defined(INOS_CPU_CORTEXA9)
677#include <inosdefine_cortexa9.h>
678#elif defined(INOS_CPU_ARMV8)
679#include <inosdefine_armv8.h>
680#if defined(INOS_CPU_AGILEX5)
681#include <inosdefine_agilex5.h>
683#elif defined(INOS_CPU_P50XX)
684#include <inosdefine_p50xx.h>
685#elif defined(INOS_CPU_P2020)
686#include <inosdefine_p2020.h>
687#elif defined(INOS_CPU_PPC750)
688#include <inosdefine_ppc750.h>
689#elif defined(INOS_WINDOWS)
690#include <inosdefine_windows.h>
691#elif defined(INOS_LINUX)
692#include <inosdefine_linux.h>
694#include <inosdefine_deprecated.h>