INOS
inosdefine.h
Go to the documentation of this file.
1//******************************************************************************
26//******************************************************************************
27
28#if !defined( INC_INOSDEFINE_H )
29#define INC_INOSDEFINE_H
30
31//------------------------------------------------------------------------------
32// defines
33//------------------------------------------------------------------------------
34
38#define INOS_LITTLE_ENDIAN 1234
39
43#define INOS_BIG_ENDIAN 4321
44
48#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
49#define INOS_BYTE_ORDER INOS_LITTLE_ENDIAN
50#else
51#define INOS_BYTE_ORDER INOS_BIG_ENDIAN
52// Define 'WORDS_BIGENDIAN', which seems to be a standard by GNU autotools and
53// is therefore widely used by open source software
54#define WORDS_BIGENDIAN 1
55#endif
56
60#define INOS_INLINE inline __attribute__((always_inline))
61
65#define INOS_NOEXCEPT noexcept
66
67//------------------------------------------------------------------------------
68// 32/64 bit related
69//------------------------------------------------------------------------------
70
71#if !defined(__ASSEMBLER__)
72#if defined(INOS_64)
73#if defined(INOS_WINDOWS)
74typedef signed long long intptr;
75typedef unsigned long long uintptr;
76#else
77typedef signed long intptr;
78typedef unsigned long uintptr;
79#endif
80#else // end of 64 bit
81typedef signed long intptr;
82typedef unsigned long uintptr;
83#endif
84#endif
85
86//------------------------------------------------------------------------------
87// CPU defines
88//------------------------------------------------------------------------------
89
94#define DF_INOS_CPU_CACHE_LINE_SIZE 32
95
100#define DF_INOS_CPU_CACHE_LINE_MASK 0xffffffe0
101
105#define DF_INOS_MEMORY_ALLOC_ALIGNMENT 16
106
107//------------------------------------------------------------------------------
108// TARGET offsets
109//------------------------------------------------------------------------------
110
114#define DF_INOS_TARGET_OFFSET_OPTIONS 0x00000040
115
119#define DF_INOS_TARGET_OFFSET_VERSION 0x00000080
120
121//------------------------------------------------------------------------------
122// TARGET defines
123//------------------------------------------------------------------------------
124
128#define DF_INOS_TARGET_CHAR_FLOATING 0x00000001
129
133#define DF_INOS_TARGET_CHAR_LITTLE_ENDIAN 0x00000002
134
138#define DF_INOS_TARGET_CHAR_64BIT 0x00000004
139
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
147
148//------------------------------------------------------------------------------
149// SAFETY defines
150//------------------------------------------------------------------------------
151
155#define DF_INOS_SAFETY_INVALID_UID 0xffffffff
156
157//------------------------------------------------------------------------------
158// KERNEL defines
159//------------------------------------------------------------------------------
160
164#define DF_INOS_MAX_CORES 4
165#define DF_INOS_MAX_CORES_MASK ((1<<DF_INOS_MAX_CORES)-1)
166
170#define DF_INOS_CORE_DEFAULT 0xFF
171
175#define DF_INOS_MAX_WATCHPOINTS 1
176
177//--- CINOSKernel --------------------------------------------------------------
178
182#define DF_INOS_TASK_PRIO_HIGHEST 0
183
187#define DF_INOS_TASK_PRIO_LOWEST 31
188
192#define DF_INOS_TASK_PRIO_REALTIME_HIGHEST 0
193
201#define DF_INOS_TASK_PRIO_ICC 3
202
206#define DF_INOS_TASK_PRIO_REALTIME 8
207
211#define DF_INOS_TASK_PRIO_REALTIME_LOWEST 15
212
216#define DF_INOS_TASK_PRIO_COMMUNICATION_HIGHEST 16
217
221#define DF_INOS_TASK_PRIO_COMMUNICATION 20
222
226#define DF_INOS_TASK_PRIO_COMMUNICATION_LOWEST 23
227
231#define DF_INOS_TASK_PRIO_USER_HIGHEST 24
232
236#define DF_INOS_TASK_PRIO_USER 28
237
241#define DF_INOS_TASK_PRIO_USER_LOWEST 30
242
246#define DF_INOS_TASK_PRIO_BACKGROUND 31
247
251#if defined(INOS_MULTICORE)
252#define INOS_MULTICORE_KERNEL 1
253#else
254#undef INOS_MULTICORE_KERNEL
255#endif
256
257//------------------------------------------------------------------------------
258// INCO defines
259//------------------------------------------------------------------------------
260
261//--- INCO protocol numbers ----------------------------------------------------
262
266#define DF_INCO_PROTOCOL_CLASSIC 0
267
271#define DF_INCO_PROTOCOL_STRIPPED 1
272
276#define DF_INCO_PROTOCOL_SPLITTED 2
277
281#define DF_INCO_PROTOCOL_RESERVED 16
282
283//--- INCO device numbers ------------------------------------------------------
284
288#define DF_INCO_DEVICE_NUMBER_COM0 0
289
293#define DF_INCO_DEVICE_NUMBER_INFOLINK 1
294
298#define DF_INCO_DEVICE_NUMBER_COM1 2
299
303#define DF_INCO_DEVICE_NUMBER_ETH0 3
304
308#define DF_INCO_DEVICE_NUMBER_GINLINK 4
309
313#define DF_INCO_DEVICE_NUMBER_PDP 5
314
318#define DF_INCO_DEVICE_NUMBER_COP 6
319
323#define DF_INCO_DEVICE_NUMBER_ETH1 7
324
328#define DF_INCO_DEVICE_NUMBER_GIN_COP 8
329
333#define DF_INCO_DEVICE_NUMBER_ETH2 10
334
338#define DF_INCO_DEVICE_NUMBER_ETH3 11
339
343#define DF_INCO_DEVICE_NUMBER_ETH4 12
344
348#define DF_INCO_DEVICE_NUMBER_GINLINK1 13
349
353#define DF_INCO_DEVICE_NUMBER_GINLINK2 14
354
358#define DF_INCO_DEVICE_NUMBER_GINLINK3 15
359
363#define DF_INCO_DEVICE_NUMBER_CORE0X 0x10
364
368#define DF_INCO_DEVICE_NUMBER_CORE10 0x11
369
373#define DF_INCO_DEVICE_NUMBER_CORE20 0x12
374
378#define DF_INCO_DEVICE_NUMBER_CORE30 0x13
379
383#define DF_INCO_DEVICE_NUMBER_CORE40 0x14
384
388#define DF_INCO_DEVICE_NUMBER_CORE50 0x15
389
393#define DF_INCO_DEVICE_NUMBER_CORE60 0x16
394
398#define DF_INCO_DEVICE_NUMBER_CORE70 0x17
399
403#define DF_INCO_DEVICE_NUMBER_CORE80 0x18
404
408#define DF_INCO_DEVICE_NUMBER_CORE90 0x19
409
413#define DF_INCO_DEVICE_NUMBER_COREA0 0x1A
414
418#define DF_INCO_DEVICE_NUMBER_COREB0 0x1B
419
423#define DF_INCO_DEVICE_NUMBER_COREC0 0x1C
424
428#define DF_INCO_DEVICE_NUMBER_CORED0 0x1D
429
433#define DF_INCO_DEVICE_NUMBER_COREE0 0x1E
434
438#define DF_INCO_DEVICE_NUMBER_COREF0 0x1F
439
443#define DF_INCO_DEVICE_NUMBER_ETHERCAT 0x20
444
448#define DF_INCO_DEVICE_NUMBER_ETHERCAT1 0x21
449
453#define DF_INCO_DEVICE_NUMBER_ETHERCAT2 0x22
454
458#define DF_INCO_DEVICE_NUMBER_ETHERCAT3 0x23
459
463#define DF_INCO_DEVICE_NUMBER_LOOPBACK 0xFF
464
465//------------------------------------------------------------------------------
466// Axis param extension id's
467//------------------------------------------------------------------------------
468
472#define DF_INOS_PARAM_EXTENSION_NAME "extension"
476#define DF_INOS_PARAM_EXTENSION_ID_INPUT_SHAPING 1
480#define DF_INOS_PARAM_EXTENSION_NAME_INPUT_SHAPING "shaping"
481
482 //------------------------------------------------------------------------------
483 // misc
484 //------------------------------------------------------------------------------
485
489#define DF_INOS_ETHERNET_SHUTDOWN (-2)
490
494#ifndef MDNS_MAX_SERVICES
495#define MDNS_MAX_SERVICES 3
496#endif
497
498//------------------------------------------------------------------------------
499// singleton's
500//------------------------------------------------------------------------------
501
505#define INCO (*pINCOItems)
506
510#define DISPATCHER (*CINCODispatcher::m_pInstance[GetCoreId()])
511
515#define DISPATCHER_EMG (*CINCODispatcher::m_pInstanceEmg[GetCoreId()])
516
520#if defined(INOS_CPU_CORTEXA9)
521#define ICC (*CINOSHwIcc::m_pInstance[GetCoreId(true)])
522#else
523#define ICC (*CINOSHwIcc::m_pInstance[GetCoreId()])
524#endif
525
526//------------------------------------------------------------------------------
527// target resource singleton's
528//------------------------------------------------------------------------------
529
533#define ENVIRONMENT CINOSMcTargetEnvironment::Instance()
534
538#define SYSTEM CINOSMcTargetSystem::Instance()
539
543#define DTB CINOSMcTargetDtb::Instance()
544
548#define DT2 CINOSMcTargetDt2::Instance()
549
553#define DATA CINOSMcTargetData::Instance()
554
558#define NVRAM CINOSMcTargetNvRam::Instance()
559
563#define IMAGE CINOSMcTargetImage::Instance()
564
568#define IMAGETRANSFER CINOSMcTargetImageTransfer::Instance()
569
573#define COMM CINOSMcTargetComm::Instance()
574
578#define MCTARGET CINOSMcTarget::Instance()
579
583#define SLAVE CINOSMcTargetFieldbusSlave::Instance()
584
588#define KRNLOG CINOSMcTargetKernelLogger::Instance()
589
593#define MS CINOS1ms::Instance()
594
598#define LVDT CINOSLVDT::Instance()
599
603#define MOTION CINOSMcTargetMotionController::Instance()
604
608#define SAFETY CINOSMcTargetSafety::Instance()
609
613#define SYNC CINOSMcTargetTimeSync::Instance()
614
618#define ASYNC (*CINCOAsyncResultMgr::Instance())
619
623#define MOVEPATH CINOSMcTargetMovePath::Instance()
624
628#if defined(INOS_CPU_CORTEXA72) || defined(INOS_CPU_P50XX) || defined(INOS_CPU_P2020) || defined(INOS_CPU_PPC750) || defined(INOS_DESKTOP)
629#define DBG CINOSHwDbg::Instance()
630#define DBG_CLASS CINOSHwDbg
631#else
632#define DBG (*g_pBreakpoints)
633#define DBG_CLASS CINOSBreakpoints
634#endif
635
639#if defined(FEATURE_INOS_CANBUS)
640#define CAN CINOSMcTargetCanbus::Instance()
641#endif
642
646#define IRQ CINOSHwIrq::Instance()
647
651#if defined(FEATURE_INOS_ONNX)
652#define ONNX CINOSMcTargetOnnx::Instance()
653#endif
654
655//------------------------------------------------------------------------------
656// target related includes
657//------------------------------------------------------------------------------
658
659#if defined(INOS_CPU_CORTEXA9)
660#include <inosdefine_cortexa9.h>
661#elif defined(INOS_CPU_CORTEXA72)
662#include <inosdefine_cortexa72.h>
663#elif defined(INOS_CPU_P50XX)
664#include <inosdefine_p50xx.h>
665#elif defined(INOS_CPU_P2020)
666#include <inosdefine_p2020.h>
667#elif defined(INOS_CPU_PPC750)
668#include <inosdefine_ppc750.h>
669#elif defined(INOS_WINDOWS)
670#include <inosdefine_windows.h>
671#elif defined(INOS_LINUX)
672#include <inosdefine_linux.h>
673#endif
674#include <inosdefine_deprecated.h>
675
676//------------------------------------------------------------------------------
677// end of file
678//------------------------------------------------------------------------------
679
680#endif // INC_INOSDEFINE_H
Definition cinosmcmodule.h:1900