evl.h 888 Bytes
Newer Older
Philippe Gerum's avatar
Philippe Gerum committed
1
2
3
4
5
6
/*
 * SPDX-License-Identifier: MIT
 *
 * Copyright (C) 2018 Philippe Gerum  <rpm@xenomai.org>
 */

7
8
#ifndef _EVL_EVL_H
#define _EVL_EVL_H
Philippe Gerum's avatar
Philippe Gerum committed
9
10

#include <signal.h>
11
12
#include <evl/clock.h>
#include <evl/mutex.h>
Philippe Gerum's avatar
Philippe Gerum committed
13
#include <evl/event.h>
14
#include <evl/sem.h>
15
#include <evl/flags.h>
16
17
#include <evl/syscall.h>
#include <evl/thread.h>
18
#include <evl/sched.h>
19
20
21
#include <evl/xbuf.h>
#include <evl/poll.h>
#include <evl/proxy.h>
Philippe Gerum's avatar
Philippe Gerum committed
22

23
#define __EVL__  10	/* API version */
24

25
#define EVL_KABI_PREREQ  19
26

27
28
struct evl_version {
	int api_level;	/* libevl.so: __EVL__ */
29
	int abi_level;	/* core: EVL_KABI_PREREQ, -1 for ESHI */
30
	const char *version_string;
31
};
Philippe Gerum's avatar
Philippe Gerum committed
32
33
34
35
36
37
38
39
40
41
42

#ifdef __cplusplus
extern "C" {
#endif

int evl_init(void);

void evl_sigdebug_handler(int sig, siginfo_t *si, void *ctxt);

unsigned int evl_detect_fpu(void);

43
44
struct evl_version evl_get_version(void);

Philippe Gerum's avatar
Philippe Gerum committed
45
46
47
48
#ifdef __cplusplus
}
#endif

49
#endif /* _EVL_EVL_H */