targets/beremiz.h
author Edouard Tisserant <edouard.tisserant@gmail.com>
Tue, 17 Aug 2021 12:29:36 +0200
branchsvghmi
changeset 3295 0375d801fff7
parent 3294 e3db472b0dfb
child 3732 929276eea252
permissions -rw-r--r--
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.
#ifndef _BEREMIZ_H_
#define _BEREMIZ_H_

/* Beremiz' header file for use by extensions */

#include "iec_types.h"

#define LOG_LEVELS 4
#define LOG_CRITICAL 0
#define LOG_WARNING 1
#define LOG_INFO 2
#define LOG_DEBUG 3

extern unsigned long long common_ticktime__;

#ifdef TARGET_LOGGING_DISABLE
static inline int LogMessage(uint8_t level, char* buf, uint32_t size)
{
	(void)level;
	(void)buf;
	(void)size;
	return 0;
}
#else
int     LogMessage(uint8_t level, char* buf, uint32_t size);
#endif

long AtomicCompareExchange(long* atomicvar,long compared, long exchange);
void *create_RT_to_nRT_signal(char* name);
void delete_RT_to_nRT_signal(void* handle);
int wait_RT_to_nRT_signal(void* handle);
int unblock_RT_to_nRT_signal(void* handle);
void nRT_reschedule(void);

#endif