author | Edouard Tisserant <edouard@beremiz.fr> |
Thu, 08 Aug 2024 14:56:13 +0200 | |
changeset 4004 | 19f8192b7d68 |
parent 3732 | 929276eea252 |
permissions | -rw-r--r-- |
2504
f3aced6c5f8b
fix problems with recursive beremiz.h inclusion
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2503
diff
changeset
|
1 |
#ifndef _BEREMIZ_H_ |
f3aced6c5f8b
fix problems with recursive beremiz.h inclusion
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2503
diff
changeset
|
2 |
#define _BEREMIZ_H_ |
f3aced6c5f8b
fix problems with recursive beremiz.h inclusion
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2503
diff
changeset
|
3 |
|
1001 | 4 |
/* Beremiz' header file for use by extensions */ |
5 |
||
6 |
#include "iec_types.h" |
|
7 |
||
8 |
#define LOG_LEVELS 4 |
|
9 |
#define LOG_CRITICAL 0 |
|
10 |
#define LOG_WARNING 1 |
|
11 |
#define LOG_INFO 2 |
|
12 |
#define LOG_DEBUG 3 |
|
13 |
||
14 |
extern unsigned long long common_ticktime__; |
|
2175
667f7de69cf6
Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1050
diff
changeset
|
15 |
|
667f7de69cf6
Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1050
diff
changeset
|
16 |
#ifdef TARGET_LOGGING_DISABLE |
2503
6ffeffb6d635
remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2175
diff
changeset
|
17 |
static inline int LogMessage(uint8_t level, char* buf, uint32_t size) |
6ffeffb6d635
remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2175
diff
changeset
|
18 |
{ |
6ffeffb6d635
remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2175
diff
changeset
|
19 |
(void)level; |
6ffeffb6d635
remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2175
diff
changeset
|
20 |
(void)buf; |
6ffeffb6d635
remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2175
diff
changeset
|
21 |
(void)size; |
6ffeffb6d635
remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2175
diff
changeset
|
22 |
return 0; |
6ffeffb6d635
remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2175
diff
changeset
|
23 |
} |
2175
667f7de69cf6
Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1050
diff
changeset
|
24 |
#else |
667f7de69cf6
Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1050
diff
changeset
|
25 |
int LogMessage(uint8_t level, char* buf, uint32_t size); |
667f7de69cf6
Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1050
diff
changeset
|
26 |
#endif |
667f7de69cf6
Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1050
diff
changeset
|
27 |
|
1050
56bef276055e
Made declaration from beremiz.h available to C pragmas in POUs. Added AtomicCompareExchange to beremiz.h
Edouard Tisserant
parents:
1002
diff
changeset
|
28 |
long AtomicCompareExchange(long* atomicvar,long compared, long exchange); |
3294
e3db472b0dfb
Runtime+SVGHMI: Added a generic way to wakeup non-real-time threads from real-time PLC thread. Replace SVGHMI specific calls in Linux and Xenomai implementations of plc_main.c. Fixed xenomai build, xeno-config making problems with --no-auto-init argument.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2504
diff
changeset
|
29 |
void *create_RT_to_nRT_signal(char* name); |
e3db472b0dfb
Runtime+SVGHMI: Added a generic way to wakeup non-real-time threads from real-time PLC thread. Replace SVGHMI specific calls in Linux and Xenomai implementations of plc_main.c. Fixed xenomai build, xeno-config making problems with --no-auto-init argument.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2504
diff
changeset
|
30 |
void delete_RT_to_nRT_signal(void* handle); |
e3db472b0dfb
Runtime+SVGHMI: Added a generic way to wakeup non-real-time threads from real-time PLC thread. Replace SVGHMI specific calls in Linux and Xenomai implementations of plc_main.c. Fixed xenomai build, xeno-config making problems with --no-auto-init argument.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2504
diff
changeset
|
31 |
int wait_RT_to_nRT_signal(void* handle); |
e3db472b0dfb
Runtime+SVGHMI: Added a generic way to wakeup non-real-time threads from real-time PLC thread. Replace SVGHMI specific calls in Linux and Xenomai implementations of plc_main.c. Fixed xenomai build, xeno-config making problems with --no-auto-init argument.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2504
diff
changeset
|
32 |
int unblock_RT_to_nRT_signal(void* handle); |
3295
0375d801fff7
Runtime+SVGHMI: Add generic wakeup of threads from PLC thread to windows implementation of plc_main.c. Also added nRT_reschedule to abstract sched_yield.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3294
diff
changeset
|
33 |
void nRT_reschedule(void); |
1001 | 34 |
|
3732
929276eea252
Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents:
3295
diff
changeset
|
35 |
|
929276eea252
Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents:
3295
diff
changeset
|
36 |
#ifdef REALTIME_LINUX |
929276eea252
Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents:
3295
diff
changeset
|
37 |
|
929276eea252
Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents:
3295
diff
changeset
|
38 |
#ifndef PLC_THREAD_PRIORITY |
929276eea252
Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents:
3295
diff
changeset
|
39 |
#define PLC_THREAD_PRIORITY 80 |
2504
f3aced6c5f8b
fix problems with recursive beremiz.h inclusion
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2503
diff
changeset
|
40 |
#endif |
3732
929276eea252
Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents:
3295
diff
changeset
|
41 |
|
929276eea252
Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents:
3295
diff
changeset
|
42 |
#endif |
929276eea252
Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents:
3295
diff
changeset
|
43 |
|
929276eea252
Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents:
3295
diff
changeset
|
44 |
#endif |