From 750d10daacfc0285f83204161811f5e2ea531712 Mon Sep 17 00:00:00 2001 From: Marco d'Itri Date: Thu, 6 Apr 2006 19:52:41 +0200 Subject: add inotify support for hppa and MIPS and log if inotify is not available --- udev_libc_wrapper.h | 22 ++++++++++++++++++++++ udevd.c | 6 +++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/udev_libc_wrapper.h b/udev_libc_wrapper.h index fc66670a3c..ed8070947f 100644 --- a/udev_libc_wrapper.h +++ b/udev_libc_wrapper.h @@ -65,6 +65,28 @@ # define __NR_inotify_init 290 # define __NR_inotify_add_watch 291 # define __NR_inotify_rm_watch 292 +#elif defined (__hppa__) +# define __NR_inotify_init 269 +# define __NR_inotify_add_watch 270 +# define __NR_inotify_rm_watch 271 +#elif defined (__mips__) +# include +# if _MIPS_SIM == _MIPS_SIM_ABI32 +# define __NR_Linux 4000 +# define __NR_inotify_init (__NR_Linux + 284) +# define __NR_inotify_add_watch (__NR_Linux + 285) +# define __NR_inotify_rm_watch (__NR_Linux + 286) +# elif _MIPS_SIM == _MIPS_SIM_ABI64 +# define __NR_Linux 5000 +# define __NR_inotify_init (__NR_Linux + 243) +# define __NR_inotify_add_watch (__NR_Linux + 244) +# define __NR_inotify_rm_watch (__NR_Linux + 245) +# elif _MIPS_SIM == _MIPS_SIM_NABI32 +# define __NR_Linux 6000 +# define __NR_inotify_init (__NR_Linux + 247) +# define __NR_inotify_add_watch (__NR_Linux + 248) +# define __NR_inotify_rm_watch (__NR_Linux + 249) +# endif #else #warning "inotify unsupported on this architecture!" #endif diff --git a/udevd.c b/udevd.c index 8741a0901b..2129d3c66a 100644 --- a/udevd.c +++ b/udevd.c @@ -971,8 +971,12 @@ int main(int argc, char *argv[], char *envp[]) /* watch rules directory */ inotify_fd = inotify_init(); - if (inotify_fd > 0) + if (inotify_fd >= 0) inotify_add_watch(inotify_fd, udev_rules_filename, IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE); + else if (errno == ENOSYS) + err("the kernel does not support inotify, udevd can't monitor configuration file changes"); + else + err("inotify_init failed: %s", strerror(errno)); /* maximum limit of forked childs */ value = getenv("UDEVD_MAX_CHILDS"); -- cgit v1.2.3-54-g00ecf