3 // Copyright (C) 2007 Daniel Hokka Zakrisson
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; version 2 of the License.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 #ifndef H_UTIL_VSERVER_SRC_SYS_UNSHARE_H
20 #define H_UTIL_VSERVER_SRC_SYS_UNSHARE_H
23 #include "lib/syscall-wrap.h"
26 # if defined(__alpha__)
27 # define __NR_unshare 465
28 # elif defined(__arm__)
29 # define __NR_unshare 337
30 # elif defined(__avr32__)
31 # define __NR_unshare 258
32 # elif defined(__blackfin__)
33 # define __NR_unshare 310
34 # elif defined(__frv__)
35 # define __NR_unshare 310
36 # elif defined(__h8300__)
37 # define __NR_unshare 310
38 # elif defined(__i386__)
39 # define __NR_unshare 310
40 # elif defined(__ia64__)
41 # define __NR_unshare 1296
42 # elif defined(__m68knommu__)
43 # define __NR_unshare 303
44 # elif defined(__m68k__)
45 # define __NR_unshare 303
46 # elif defined(__mips__) && (_MIPS_SIM == _MIPS_SIM_ABI32)
47 # define __NR_unshare 303
48 # elif defined(__mips__) && (_MIPS_SIM == _MIPS_SIM_ABI64)
49 # define __NR_unshare 262
50 # elif defined(__mips__) && (_MIPS_SIM == _MIPS_SIM_NABI32)
51 # define __NR_unshare 266
52 # elif defined(__parisc__)
53 # define __NR_unshare 288
54 # elif defined(__powerpc__)
55 # define __NR_unshare 282
56 # elif defined(__s390__)
57 # define __NR_unshare 303
58 # elif defined(__sh64__)
59 # define __NR_unshare 338
60 # elif defined(__sh__)
61 # define __NR_unshare 310
62 # elif defined(__sparc64__)
63 # define __NR_unshare 299
64 # elif defined(__sparc__)
65 # define __NR_unshare 299
66 # elif defined(__x86_64__)
67 # define __NR_unshare 272
69 # error Sorry, don't know unshare's syscall number for this architecture.
73 #define __NR_sys_unshare __NR_unshare
75 #ifndef ENSC_SYSCALL_TRADITIONAL
78 inline static UNUSED ALWAYSINLINE
79 _syscall1(int, sys_unshare, int, flags)
81 inline static UNUSED ALWAYSINLINE
82 int sys_unshare(int flags)
84 return syscall(__NR_sys_unshare, flags);
88 #undef __NR_sys_unshare
90 #define ENSC_HAVE_SYSUNSHARE 1
92 #endif // H_UTIL_VSERVER_SRC_SYS_UNSHARE_H