Lines Matching refs:priv

148 slirp_priv_init(struct slirp_priv *priv)  in slirp_priv_init()  argument
152 memset(priv, 0, sizeof(*priv)); in slirp_priv_init()
153 priv->pipe[0] = priv->pipe[1] = -1; in slirp_priv_init()
154 error = pthread_mutex_init(&priv->mtx, NULL); in slirp_priv_init()
159 slirp_priv_cleanup(struct slirp_priv *priv) in slirp_priv_cleanup() argument
163 if (priv->pipe[0] != -1) { in slirp_priv_cleanup()
164 error = close(priv->pipe[0]); in slirp_priv_cleanup()
167 if (priv->pipe[1] != -1) { in slirp_priv_cleanup()
168 error = close(priv->pipe[1]); in slirp_priv_cleanup()
171 if (priv->mevp) in slirp_priv_cleanup()
172 mevent_delete(priv->mevp); in slirp_priv_cleanup()
173 if (priv->slirp != NULL) in slirp_priv_cleanup()
174 slirp_cleanup_p(priv->slirp); in slirp_priv_cleanup()
175 error = pthread_mutex_destroy(&priv->mtx); in slirp_priv_cleanup()
206 struct slirp_priv *priv; in slirp_cb_send_packet() local
209 priv = param; in slirp_cb_send_packet()
212 n = send(priv->pipe[1], buf, len, 0); in slirp_cb_send_packet()
277 struct slirp_priv *priv; in slirp_addpoll_cb() local
281 priv = param; in slirp_addpoll_cb()
283 for (i = 0; i < priv->npollfds; i++) in slirp_addpoll_cb()
284 if (priv->pollfds[i].fd == -1) in slirp_addpoll_cb()
286 if (i == priv->npollfds) { in slirp_addpoll_cb()
289 priv->npollfds += POLLFD_GROW; in slirp_addpoll_cb()
290 pollfds = realloc(priv->pollfds, in slirp_addpoll_cb()
291 sizeof(*pollfds) * priv->npollfds); in slirp_addpoll_cb()
294 for (i = priv->npollfds - POLLFD_GROW; i < priv->npollfds; i++) in slirp_addpoll_cb()
296 priv->pollfds = pollfds; in slirp_addpoll_cb()
298 i = priv->npollfds - POLLFD_GROW; in slirp_addpoll_cb()
300 pollfd = &priv->pollfds[i]; in slirp_addpoll_cb()
311 struct slirp_priv *priv; in slirp_poll_revents() local
314 priv = param; in slirp_poll_revents()
315 pollfd = &priv->pollfds[idx]; in slirp_poll_revents()
323 struct slirp_priv *priv; in slirp_pollfd_td_loop() local
330 priv = param; in slirp_pollfd_td_loop()
332 pthread_mutex_lock(&priv->mtx); in slirp_pollfd_td_loop()
334 for (size_t i = 0; i < priv->npollfds; i++) in slirp_pollfd_td_loop()
335 priv->pollfds[i].fd = -1; in slirp_pollfd_td_loop()
338 slirp_pollfds_fill_p(priv->slirp, &timeout, slirp_addpoll_cb, in slirp_pollfd_td_loop()
339 priv); in slirp_pollfd_td_loop()
341 pollfds = priv->pollfds; in slirp_pollfd_td_loop()
342 npollfds = priv->npollfds; in slirp_pollfd_td_loop()
343 pthread_mutex_unlock(&priv->mtx); in slirp_pollfd_td_loop()
355 pthread_mutex_lock(&priv->mtx); in slirp_pollfd_td_loop()
356 slirp_pollfds_poll_p(priv->slirp, error == -1, in slirp_pollfd_td_loop()
357 slirp_poll_revents, priv); in slirp_pollfd_td_loop()
441 config_one_hostfwd(struct slirp_priv *priv, const char *rule) in config_one_hostfwd() argument
453 error = slirp_add_hostxfwd_p(priv->slirp, &hostaddr, hostaddr.sa_len, in config_one_hostfwd()
468 struct slirp_priv *priv = NET_BE_PRIV(be); in _slirp_init() local
487 slirp_priv_init(priv); in _slirp_init()
489 priv->slirp = slirp_new_p(&config, &slirp_cbs, priv); in _slirp_init()
490 if (priv->slirp == NULL) { in _slirp_init()
504 error = config_one_hostfwd(priv, rule); in _slirp_init()
513 error = socketpair(PF_LOCAL, SOCK_DGRAM, 0, priv->pipe); in _slirp_init()
523 error = setsockopt(priv->pipe[1], SOL_SOCKET, SO_SNDBUF, &sndbuf, in _slirp_init()
531 be->fd = priv->pipe[0]; in _slirp_init()
532 priv->mevp = mevent_add_disabled(be->fd, EVF_READ, cb, param); in _slirp_init()
533 if (priv->mevp == NULL) { in _slirp_init()
538 error = pthread_create(&priv->pollfd_td, NULL, slirp_pollfd_td_loop, in _slirp_init()
539 priv); in _slirp_init()
548 slirp_priv_cleanup(priv); in _slirp_init()
555 struct slirp_priv *priv = NET_BE_PRIV(be); in slirp_send() local
559 pthread_mutex_lock(&priv->mtx); in slirp_send()
560 slirp_input_p(priv->slirp, iov->iov_base, in slirp_send()
562 pthread_mutex_unlock(&priv->mtx); in slirp_send()
579 pthread_mutex_lock(&priv->mtx); in slirp_send()
580 slirp_input_p(priv->slirp, pkt, (int)pktlen); in slirp_send()
581 pthread_mutex_unlock(&priv->mtx); in slirp_send()
590 struct slirp_priv *priv = NET_BE_PRIV(be); in _slirp_cleanup() local
592 slirp_priv_cleanup(priv); in _slirp_cleanup()
598 struct slirp_priv *priv = NET_BE_PRIV(be); in slirp_peek_recvlen() local
601 n = recv(priv->pipe[0], NULL, 0, MSG_PEEK | MSG_DONTWAIT | MSG_TRUNC); in slirp_peek_recvlen()
611 struct slirp_priv *priv = NET_BE_PRIV(be); in slirp_recv() local
614 n = readv(priv->pipe[0], iov, iovcnt); in slirp_recv()
624 struct slirp_priv *priv = NET_BE_PRIV(be); in slirp_recv_enable() local
626 mevent_enable(priv->mevp); in slirp_recv_enable()
632 struct slirp_priv *priv = NET_BE_PRIV(be); in slirp_recv_disable() local
634 mevent_disable(priv->mevp); in slirp_recv_disable()