2010-08-17 05:33:07 +04:00
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2010-04-22 00:15:06 +04:00
2010-01-30 04:48:05 +03:00
# ifndef foomissinghfoo
# define foomissinghfoo
2010-04-22 00:15:06 +04:00
/***
This file is part of systemd .
Copyright 2010 Lennart Poettering
systemd is free software ; you can redistribute it and / or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 2 of the License , or
( at your option ) any later version .
systemd is distributed in the hope that it will be useful , but
WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
General Public License for more details .
You should have received a copy of the GNU General Public License
along with systemd ; If not , see < http : //www.gnu.org/licenses/>.
* * */
2010-01-30 04:48:05 +03:00
/* Missing glibc definitions to access certain kernel APIs */
# include <sys/resource.h>
2010-04-22 00:15:06 +04:00
# include <sys/syscall.h>
2010-07-01 19:44:13 +04:00
# include <fcntl.h>
2010-07-04 18:44:58 +04:00
# include <unistd.h>
2010-08-31 03:33:39 +04:00
# include <linux/oom.h>
# ifdef HAVE_AUDIT
# include <libaudit.h>
# endif
2010-01-30 04:48:05 +03:00
2010-07-16 05:07:53 +04:00
# include "macro.h"
2011-03-17 05:13:01 +03:00
# ifdef ARCH_MIPS
# include <asm/sgidefs.h>
# endif
2010-01-30 04:48:05 +03:00
# ifndef RLIMIT_RTTIME
# define RLIMIT_RTTIME 15
# endif
2010-07-01 02:29:17 +04:00
# ifndef F_LINUX_SPECIFIC_BASE
# define F_LINUX_SPECIFIC_BASE 1024
# endif
# ifndef F_SETPIPE_SZ
# define F_SETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 7)
# endif
# ifndef F_GETPIPE_SZ
# define F_GETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 8)
# endif
2010-07-01 19:44:13 +04:00
# ifndef IP_FREEBIND
# define IP_FREEBIND 15
# endif
2010-08-31 03:33:39 +04:00
# ifndef OOM_SCORE_ADJ_MIN
# define OOM_SCORE_ADJ_MIN (-1000)
# endif
# ifndef OOM_SCORE_ADJ_MAX
# define OOM_SCORE_ADJ_MAX 1000
# endif
2010-04-22 00:15:06 +04:00
2010-08-11 03:43:23 +04:00
# ifndef AUDIT_SERVICE_START
2010-08-31 03:33:39 +04:00
# define AUDIT_SERVICE_START 1130 /* Service (daemon) start */
2010-08-11 03:43:23 +04:00
# endif
# ifndef AUDIT_SERVICE_STOP
2010-08-31 03:33:39 +04:00
# define AUDIT_SERVICE_STOP 1131 /* Service (daemon) stop */
2010-08-11 03:43:23 +04:00
# endif
2011-05-18 03:07:31 +04:00
# ifndef TIOCVHANGUP
# define TIOCVHANGUP 0x5437
# endif
2011-05-20 15:37:04 +04:00
# ifndef IP_TRANSPARENT
# define IP_TRANSPARENT 19
# endif
2010-08-31 03:33:39 +04:00
static inline int pivot_root ( const char * new_root , const char * put_old ) {
return syscall ( SYS_pivot_root , new_root , put_old ) ;
}
2010-09-23 17:01:41 +04:00
# ifdef __x86_64__
2011-03-17 05:13:01 +03:00
# ifndef __NR_fanotify_init
# define __NR_fanotify_init 300
# endif
# ifndef __NR_fanotify_mark
# define __NR_fanotify_mark 301
# endif
# elif defined _MIPS_SIM
# if _MIPS_SIM == _MIPS_SIM_ABI32
# ifndef __NR_fanotify_init
# define __NR_fanotify_init 4336
# endif
# ifndef __NR_fanotify_mark
# define __NR_fanotify_mark 4337
# endif
# elif _MIPS_SIM == _MIPS_SIM_NABI32
# ifndef __NR_fanotify_init
# define __NR_fanotify_init 6300
# endif
# ifndef __NR_fanotify_mark
# define __NR_fanotify_mark 6301
# endif
# elif _MIPS_SIM == _MIPS_SIM_ABI64
# ifndef __NR_fanotify_init
# define __NR_fanotify_init 5295
# endif
# ifndef __NR_fanotify_mark
# define __NR_fanotify_mark 5296
# endif
# endif
2010-09-23 17:01:41 +04:00
# else
2011-03-17 05:13:01 +03:00
# ifndef __NR_fanotify_init
# define __NR_fanotify_init 338
# endif
# ifndef __NR_fanotify_mark
# define __NR_fanotify_mark 339
# endif
2010-09-23 17:01:41 +04:00
# endif
static inline int fanotify_init ( unsigned int flags , unsigned int event_f_flags ) {
2010-09-23 17:49:08 +04:00
return syscall ( __NR_fanotify_init , flags , event_f_flags ) ;
2010-09-23 17:01:41 +04:00
}
2010-09-23 17:49:08 +04:00
static inline int fanotify_mark ( int fanotify_fd , unsigned int flags , uint64_t mask ,
2010-09-23 17:01:41 +04:00
int dfd , const char * pathname ) {
2011-04-20 13:59:18 +04:00
# if defined _MIPS_SIM && _MIPS_SIM == _MIPS_SIM_ABI32
union {
uint64_t _64 ;
uint32_t _32 [ 2 ] ;
} _mask ;
_mask . _64 = mask ;
return syscall ( __NR_fanotify_mark , fanotify_fd , flags ,
_mask . _32 [ 0 ] , _mask . _32 [ 1 ] , dfd , pathname ) ;
# else
2010-09-23 17:49:08 +04:00
return syscall ( __NR_fanotify_mark , fanotify_fd , flags , mask , dfd , pathname ) ;
2011-04-20 13:59:18 +04:00
# endif
2010-09-23 17:01:41 +04:00
}
2010-09-23 19:11:19 +04:00
# ifndef BTRFS_IOCTL_MAGIC
# define BTRFS_IOCTL_MAGIC 0x94
# endif
# ifndef BTRFS_PATH_NAME_MAX
# define BTRFS_PATH_NAME_MAX 4087
# endif
struct btrfs_ioctl_vol_args {
int64_t fd ;
char name [ BTRFS_PATH_NAME_MAX + 1 ] ;
} ;
# ifndef BTRFS_IOC_DEFRAG
# define BTRFS_IOC_DEFRAG _IOW(BTRFS_IOCTL_MAGIC, 2, struct btrfs_ioctl_vol_args)
# endif
# ifndef BTRFS_SUPER_MAGIC
# define BTRFS_SUPER_MAGIC 0x9123683E
# endif
2011-03-14 05:27:28 +03:00
# ifndef MS_MOVE
# define MS_MOVE 8192
# endif
2011-05-05 14:29:44 +04:00
# ifndef MS_PRIVATE
# define MS_PRIVATE (1 << 18)
# endif
2011-08-01 07:06:15 +04:00
static inline pid_t gettid ( void ) {
return ( pid_t ) syscall ( SYS_gettid ) ;
}
2010-01-30 04:48:05 +03:00
# endif