Lines Matching refs:info
66 if_register_bpf(struct interface_info *info, int flags)
85 if (ioctl(sock, BIOCSETIF, info->ifp) < 0)
87 info->name, filename);
133 if_register_send(struct interface_info *info)
141 info->wfdesc = if_register_bpf(info, O_WRONLY);
144 if (ioctl(info->wfdesc, BIOCVERSION, &v) < 0)
158 if (ioctl(info->wfdesc, BIOCSETWF, &p) < 0)
161 if (ioctl(info->wfdesc, BIOCLOCK, NULL) < 0)
165 if (cap_rights_limit(info->wfdesc, &rights) < 0 && errno != ENOSYS)
176 info->ufdesc = sock;
215 if_register_receive(struct interface_info *info)
224 info->rfdesc = if_register_bpf(info, O_RDONLY);
227 if (ioctl(info->rfdesc, BIOCVERSION, &v) < 0)
239 if (ioctl(info->rfdesc, BIOCIMMEDIATE, &flag) < 0)
243 if (ioctl(info->rfdesc, BIOCGBLEN, &sz) < 0)
245 info->rbuf_max = sz;
246 info->rbuf = malloc(info->rbuf_max);
247 if (!info->rbuf)
249 (unsigned long)info->rbuf_max);
250 info->rbuf_offset = 0;
251 info->rbuf_len = 0;
264 if (ioctl(info->rfdesc, BIOCSETF, &p) < 0)
267 if (ioctl(info->rfdesc, BIOCLOCK, NULL) < 0)
271 if (cap_rights_limit(info->rfdesc, &rights) < 0 && errno != ENOSYS)
273 if (cap_ioctls_limit(info->rfdesc, cmds, 2) < 0 && errno != ENOSYS)