Commit | Line | Data |
---|---|---|
3fa91327 DG |
1 | /* |
2 | * Copyright (C) 2011 - David Goulet <dgoulet@efficios.com> | |
3 | * | |
4 | * This program is free software; you can redistribute it and/or modify it | |
5 | * under the terms of the GNU General Public License as published by the Free | |
6 | * Software Foundation; only version 2 of the License. | |
7 | * | |
8 | * This program is distributed in the hope that it will be useful, but WITHOUT | |
9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
11 | * more details. | |
12 | * | |
13 | * You should have received a copy of the GNU General Public License along with | |
14 | * this program; if not, write to the Free Software Foundation, Inc., 59 Temple | |
15 | * Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | */ | |
17 | ||
18 | #ifndef _COMPAT_CLONE_H | |
19 | #define _COMPAT_CLONE_H | |
20 | ||
21 | #ifdef __linux__ | |
22 | ||
23 | #include <sched.h> | |
24 | ||
89831a74 MD |
25 | static inline |
26 | int lttng_clone_files(int (*fn)(void *), void *child_stack, void *arg) | |
27 | { | |
28 | return clone(fn, child_stack, CLONE_FILES | SIGCHLD, arg); | |
29 | } | |
30 | ||
7657ae75 | 31 | #elif defined(__FreeBSD__) |
3fa91327 DG |
32 | |
33 | #include <unistd.h> | |
34 | ||
89831a74 MD |
35 | static inline |
36 | int lttng_clone_files(int (*fn)(void *), void *child_stack, void *arg) | |
3fa91327 | 37 | { |
89831a74 | 38 | return rfork(RFPROC | RFTHREAD); |
3fa91327 DG |
39 | } |
40 | ||
41 | #else | |
7657ae75 | 42 | #error "Please add support for your OS." |
3fa91327 DG |
43 | #endif /* __linux__ , __FreeBSD__ */ |
44 | ||
45 | #endif /* _COMPAT_CLONE_H */ |