#define RELAY_GET_SUBBUF_SIZE _IOR(0xF5, 0x03,__u32)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
-#include <linux/inotify.h>
+#include <sys/inotify.h>
+#if 0 /* should now be provided by libc. */
/* From the inotify-tools 2.6 package */
static inline int inotify_init (void)
{
{
return syscall (__NR_inotify_rm_watch, fd, wd);
}
+#endif //0
#define HAS_INOTIFY
#else
static inline int inotify_init (void)
unsigned int consumed_old;
int err;
long ret;
- unsigned long len, offset;
+ unsigned long len;
+ off_t offset;
err = ioctl(pair->channel, RELAY_GET_SUBBUF, &consumed_old);
len = pair->subbuf_size;
offset = 0;
while (len > 0) {
- printf_verbose("splice chan to pipe offset %lu\n", offset);
+ printf_verbose("splice chan to pipe offset %lu\n",
+ (unsigned long)offset);
ret = splice(pair->channel, &offset, thread_pipe[1], NULL,
len, SPLICE_F_MOVE);
printf_verbose("splice chan to pipe ret %ld\n", ret);
if(ret = open_channel_trace_pairs(channel_name, trace_name, &fd_pairs,
&inotify_fd, &inotify_watch_array))
goto close_channel;
-
+ if (fd_pairs.num_pairs == 0) {
+ printf("No channel available for reading, exiting\n");
+ ret = -ENOENT;
+ goto close_channel;
+ }
if(ret = map_channels(&fd_pairs, 0, fd_pairs.num_pairs))
goto close_channel;
return 0;