示例#1
0
/*
 *    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;
}
示例#3
0
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;
}