static int comedi_rt_get_irq(struct comedi_irq_struct *it) { rt_request_global_irq(it->irq, handle_void_irq_ptrs[it->irq]); rt_startup_irq(it->irq); return 0; }
static int comedi_rt_get_irq(struct comedi_irq_struct *it) { int ret; ret = rt_request_global_irq_arg(it->irq, it->handler, it->flags, it->device, it->dev_id); if (ret < 0) { rt_printk("rt_request_global_irq_arg() returned %d\n", ret); return ret; } rt_startup_irq(it->irq); return 0; }
int init_module(void) { int ret; unsigned long local_ip = rt_inet_aton(local_ip_s); unsigned long server_ip = rt_inet_aton(server_ip_s); rtf_create(PRINT, 40000); rt_sem_init(&tx_sem, 0); rt_printk ("local ip address %s=%8x\n", local_ip_s, (unsigned int) local_ip); rt_printk ("server ip address %s=%8x\n", server_ip_s, (unsigned int) server_ip); /* create rt-socket */ sock=rt_socket(AF_INET,SOCK_DGRAM,0); /* bind the rt-socket to local_addr */ memset(&local_addr, 0, sizeof(struct sockaddr_in)); local_addr.sin_family = AF_INET; local_addr.sin_port = htons(RCV_PORT); local_addr.sin_addr.s_addr = local_ip; ret=rt_socket_bind(sock, (struct sockaddr *) &local_addr, sizeof(struct sockaddr_in)); /* set server-addr */ memset(&server_addr, 0, sizeof(struct sockaddr_in)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(SRV_PORT); server_addr.sin_addr.s_addr = server_ip; // set up receiving rt_socket_callback(sock, echo_rcv, NULL); rt_set_oneshot_mode(); start_rt_timer(TIMERTICKS); ret=rt_task_init(&rt_task,(void *)process,0,4096,10,0,NULL); rt_task_resume(&rt_task); rt_request_global_irq(parirq, parport_irq_handler); rt_startup_irq(parirq); outb(0xFF, PAR_DATA); outb(0x14 + KHZ0_1, PAR_CONTROL); return ret; }
int init_module(void) { unsigned int add_rtskbs = 30; int ret; unsigned long local_ip; unsigned long server_ip; if (strlen(local_ip_s) != 0) local_ip = rt_inet_aton(local_ip_s); else local_ip = INADDR_ANY; server_ip = rt_inet_aton(server_ip_s); rtf_create(PRINT_FIFO, 40000); rt_sem_init(&tx_sem, 0); rt_printk("local ip address %s=%8x\n", local_ip_s, (unsigned int) local_ip); rt_printk("server ip address %s=%8x\n", server_ip_s, (unsigned int) server_ip); /* create rt-socket */ rt_printk("create rtsocket\n"); if ((sock = socket_rt(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) { rt_printk("socket not created\n"); return sock; } /* extend the socket pool */ ret = ioctl_rt(sock, RTNET_RTIOC_EXTPOOL, &add_rtskbs); if (ret != (int)add_rtskbs) { close_rt(sock); rt_printk("ioctl_rt(RTNET_RTIOC_EXTPOOL) = %d\n", ret); return -1; } /* bind the rt-socket to local_addr */ local_addr.sin_family = AF_INET; local_addr.sin_port = htons(RCV_PORT); local_addr.sin_addr.s_addr = local_ip; if ((ret = bind_rt(sock, (struct sockaddr *)&local_addr, sizeof(struct sockaddr_in))) < 0) { close_rt(sock); rt_printk("can't bind rtsocket\n"); return ret; } /* set server-addr */ server_addr.sin_family = AF_INET; server_addr.sin_port = htons(SRV_PORT); server_addr.sin_addr.s_addr = server_ip; rt_task_init(&xmit_task,(void *)process,0,4096,10,0,NULL); rt_task_resume(&xmit_task); rt_task_init(&recv_task,(void *)echo_rcv,0,4096,9,0,NULL); rt_task_resume(&recv_task); rt_request_global_irq(parirq, parport_irq_handler); rt_startup_irq(parirq); outb(0xFF, PAR_DATA); outb(0x14 + KHZ0_1, PAR_CONTROL); return ret; }
int init_module(void) { unsigned int nonblock = 1; unsigned int add_rtskbs = 30; int ret; unsigned long local_ip; unsigned long server_ip; if (strlen(local_ip_s) != 0) local_ip = rt_inet_aton(local_ip_s); else local_ip = INADDR_ANY; server_ip = rt_inet_aton(server_ip_s); rtf_create(PRINT_FIFO, 40000); rt_sem_init(&tx_sem, 0); rt_printk ("local ip address %s=%8x\n", local_ip_s, (unsigned int) local_ip); rt_printk ("server ip address %s=%8x\n", server_ip_s, (unsigned int) server_ip); /* create rt-socket */ rt_printk("create rtsocket\n"); if ((sock=rt_socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) { rt_printk("socket not created\n"); return sock; } /* switch to non-blocking */ ret = rt_setsockopt(sock, SOL_SOCKET, RT_SO_NONBLOCK, &nonblock, sizeof(nonblock)); rt_printk("rt_setsockopt(RT_SO_NONBLOCK) = %d\n", ret); /* extend the socket pool */ ret = rt_setsockopt(sock, SOL_SOCKET, RT_SO_EXTPOOL, &add_rtskbs, sizeof(add_rtskbs)); if (ret != (int)add_rtskbs) { rt_socket_close(sock); rt_printk("rt_setsockopt(RT_SO_EXTPOOL) = %d\n", ret); return -1; } /* bind the rt-socket to local_addr */ memset(&local_addr, 0, sizeof(struct sockaddr_in)); local_addr.sin_family = AF_INET; local_addr.sin_port = htons(RCV_PORT); local_addr.sin_addr.s_addr = local_ip; if ( (ret=rt_socket_bind(sock, (struct sockaddr *) &local_addr, sizeof(struct sockaddr_in)))<0 ) { rt_socket_close(sock); rt_printk("can't bind rtsocket\n"); return ret; } /* set server-addr */ memset(&server_addr, 0, sizeof(struct sockaddr_in)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(SRV_PORT); server_addr.sin_addr.s_addr = server_ip; /* set up receiving */ rt_socket_callback(sock, echo_rcv, NULL); ret=rt_task_init(&rt_task,(void *)process,0,4096,10,0,NULL); rt_task_resume(&rt_task); rt_request_global_irq(parirq, parport_irq_handler); rt_startup_irq(parirq); outb(0xFF, PAR_DATA); outb(0x14 + KHZ0_1, PAR_CONTROL); return ret; }