/* * include/linux/eventfd.h * * Copyright (C) 2007 Davide Libenzi * */ #ifndef _LINUX_EVENTFD_H #define _LINUX_EVENTFD_H #ifdef CONFIG_EVENTFD /* For O_CLOEXEC and O_NONBLOCK */ #include /* * CAREFUL: Check include/asm-generic/fcntl.h when defining * new flags, since they might collide with O_* ones. We want * to re-use O_* flags that couldn't possibly have a meaning * from eventfd, in order to leave a free define-space for * shared O_* flags. */ #define EFD_SEMAPHORE (1 << 0) #define EFD_CLOEXEC O_CLOEXEC #define EFD_NONBLOCK O_NONBLOCK #define EFD_SHARED_FCNTL_FLAGS (O_CLOEXEC | O_NONBLOCK) #define EFD_FLAGS_SET (EFD_SHARED_FCNTL_FLAGS | EFD_SEMAPHORE) struct file *eventfd_fget(int fd); int eventfd_signal(struct file *file, int n); #else /* CONFIG_EVENTFD */ #define eventfd_fget(fd) ERR_PTR(-ENOSYS) static inline int eventfd_signal(struct file *file, int n) { return 0; } #endif /* CONFIG_EVENTFD */ #endif /* _LINUX_EVENTFD_H */