/* * Per poll loop file descriptor add */ int fcf_add_fd_ppc(int fd, short events, pollfd_callback cb){ int i = fcf_add_fd (fd, events, cb); if(i >= 0){ fdx[i].cb_cat = PPC; } return i; }
static int init_virtdev_device(const char *devname, int port, pollfd_callback cb) { printf ("probing %s: (waiting for connection localhost:%d)\n", devname, port); int fd = getsocket(port); if (fd >= 0) { int rc = fcf_add_fd(fd, POLLIN, cb); if (rc >= 0) { return fd; } } return -1; }
void logger_init() { open_logfile(); setbuf(fp, NULL); // Outgoing socket (WiFi) open_socket(); // Initialize sequence number sequence = 0; // Add sequence number to the first packet memcpy(&log_buffer[log_buffer_size], &sequence, sizeof(uint32_t)); log_buffer_size += sizeof(uint32_t); int tfd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK); struct itimerspec newval; newval.it_interval.tv_sec = 0; newval.it_interval.tv_nsec = LOG_TIMEOUT_NS; newval.it_value.tv_sec = 0; newval.it_value.tv_nsec = LOG_TIMEOUT_NS; timerfd_settime(tfd, 0, &newval, NULL); fcf_add_fd(tfd, POLLIN, log_timeout); }
static int initvirtdev (const char* devname, int port, pollfd_callback cb) { printf ("probing %s: (waiting for connection localhost:%d)\n", devname, port); int fd = getsocket(port); int rc = fcf_add_fd(fd, POLLIN, cb); return rc; }