udev_sysdeps.h revision 726687ad48bdececed1e7e44387c50e009e28208
/*
* wrapping of libc features and kernel interfaces
*
* Copyright (C) 2005-2006 Kay Sievers <kay.sievers@vrfy.org>
*
* under the terms of the GNU General Public License as published by the
* Free Software Foundation version 2 of the License.
*
* This program 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 this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef _UDEV_SYSDEPS_H_
#define _UDEV_SYSDEPS_H_
#include <string.h>
#include <unistd.h>
#include <stdint.h>
/* needed until Inotify! syscalls reach glibc */
#ifndef __NR_inotify_init
#if defined(__i386__)
# define __NR_inotify_init 291
# define __NR_inotify_add_watch 292
# define __NR_inotify_rm_watch 293
#elif defined(__x86_64__)
# define __NR_inotify_init 253
# define __NR_inotify_add_watch 254
# define __NR_inotify_rm_watch 255
# define __NR_inotify_init 275
# define __NR_inotify_add_watch 276
# define __NR_inotify_rm_watch 277
# define __NR_inotify_init 1277
# define __NR_inotify_add_watch 1278
# define __NR_inotify_rm_watch 1279
# define __NR_inotify_init 284
# define __NR_inotify_add_watch 285
# define __NR_inotify_rm_watch 286
# define __NR_inotify_init 444
# define __NR_inotify_add_watch 445
# define __NR_inotify_rm_watch 446
# define __NR_inotify_init 151
# define __NR_inotify_add_watch 152
# define __NR_inotify_rm_watch 156
# define __NR_inotify_init 290
# define __NR_inotify_add_watch 291
# define __NR_inotify_rm_watch 292
# define __NR_inotify_init 290
# define __NR_inotify_add_watch 291
# define __NR_inotify_rm_watch 292
# define __NR_inotify_init 269
# define __NR_inotify_add_watch 270
# define __NR_inotify_rm_watch 271
# include <sgidefs.h>
# if _MIPS_SIM == _MIPS_SIM_ABI32
# define __NR_Linux 4000
# define __NR_Linux 5000
# define __NR_Linux 6000
# endif
#else
#warning "inotify unsupported on this architecture!"
#endif
#endif /* __NR_inotify_init */
/* dummy if we don't have the syscalls defined */
#ifndef __NR_inotify_init
static inline int inotify_init(void)
{
return -1;
}
{
return -1;
}
#else
#ifndef __GLIBC__
#else
static inline int inotify_init(void)
{
return syscall(__NR_inotify_init);
}
{
}
#endif /* __GLIBC__ */
#endif /* __NR_inotify_init */
#ifndef IN_CREATE
#endif /* IN_CREATE */
/* needed for our signal handlers to work */
#ifdef __i386__
#else
#define asmlinkage
#endif /* __i386__ */
/* headers are broken on some architectures */
#ifndef __FD_SET
#endif
#ifndef __FD_CLR
#endif
#ifndef __FD_ISSET
#endif
#ifndef __FD_ZERO
#endif
#ifndef NETLINK_KOBJECT_UEVENT
#define NETLINK_KOBJECT_UEVENT 15
#endif
#ifndef SO_RCVBUFFORCE
#define SO_RCVBUFFORCE 0x100b
#else
#define SO_RCVBUFFORCE 33
#endif
#endif
#endif