Lines Matching defs:ks

42 #define	KSOCKET_VALID(ks) (ks->kso_magic == _KSOCKET_MAGIC)
43 #define KSTOSO(ks) (ks->kso_fd)
109 ksocket_t ks;
111 ks = umem_cache_alloc(ksocket_cache, 0);
112 VERIFY(ks != NULL);
113 ks->kso_magic = _KSOCKET_MAGIC;
114 ks->kso_count = 1;
115 ks->kso_fd = fd;
116 return (ks);
120 _ksocket_destroy(ksocket_t ks)
122 ASSERT(ks->kso_count == 1);
123 umem_cache_free(ksocket_cache, ks);
131 ksocket_t ks;
144 ks = _ksocket_create(fd);
145 *ksp = ks;
161 ksocket_bind(ksocket_t ks, struct sockaddr *addr, socklen_t addrlen,
169 if (!KSOCKET_VALID(ks))
172 if (bind(KSTOSO(ks), addr, addrlen) != 0)
176 err = ksocket_bind_helper(KSTOSO(ks), addr, addrlen);
183 ksocket_listen(ksocket_t ks, int backlog, struct cred *cr)
188 if (!KSOCKET_VALID(ks))
191 if (listen(KSTOSO(ks), backlog) != 0)
198 ksocket_accept(ksocket_t ks, struct sockaddr *addr,
208 if (!KSOCKET_VALID(ks))
214 fd = accept(KSTOSO(ks), addr, addrlenp);
224 ksocket_connect(ksocket_t ks, struct sockaddr *addr, socklen_t addrlen,
230 if (!KSOCKET_VALID(ks))
233 if (connect(KSTOSO(ks), addr, addrlen) != 0)
240 ksocket_send(ksocket_t ks, void *msg, size_t msglen, int flags,
248 if (!KSOCKET_VALID(ks)) {
254 error = send(KSTOSO(ks), msg, msglen, flags);
267 ksocket_sendto(ksocket_t ks, void *msg, size_t msglen, int flags,
275 if (!KSOCKET_VALID(ks)) {
281 error = sendto(KSTOSO(ks), msg, msglen, flags, name, namelen);
294 ksocket_sendmsg(ksocket_t ks, struct nmsghdr *msg, int flags,
303 if (!KSOCKET_VALID(ks)) {
311 len = sendmsg(KSTOSO(ks), msg, flags);
342 ksocket_recv(ksocket_t ks, void *msg, size_t msglen, int flags,
350 if (!KSOCKET_VALID(ks)) {
356 error = recv(KSTOSO(ks), msg, msglen, flags);
369 ksocket_recvfrom(ksocket_t ks, void *msg, size_t msglen, int flags,
377 if (!KSOCKET_VALID(ks)) {
383 error = recvfrom(KSTOSO(ks), msg, msglen, flags, name, namelen);
396 ksocket_recvmsg(ksocket_t ks, struct nmsghdr *msg, int flags, size_t *recvd,
404 if (!KSOCKET_VALID(ks)) {
410 error = recvmsg(KSTOSO(ks), msg, flags);
423 ksocket_shutdown(ksocket_t ks, int how, struct cred *cr)
428 if (!KSOCKET_VALID(ks))
431 if (shutdown(KSTOSO(ks), how) != 0)
438 ksocket_close(ksocket_t ks, struct cred *cr)
445 mutex_enter(&ks->kso_lock);
447 if (!KSOCKET_VALID(ks)) {
448 mutex_exit(&ks->kso_lock);
452 ks->kso_state |= SS_CLOSING;
459 fd = ks->kso_fd;
460 ks->kso_fd = -1;
463 while (ks->kso_count > 1)
464 cv_wait(&ks->kso_closing_cv, &ks->kso_lock);
466 mutex_exit(&ks->kso_lock);
467 _ksocket_destroy(ks);
473 ksocket_getsockname(ksocket_t ks, struct sockaddr *addr, socklen_t *addrlen,
479 if (!KSOCKET_VALID(ks))
485 if (getsockname(KSTOSO(ks), addr, addrlen) != 0)
492 ksocket_getpeername(ksocket_t ks, struct sockaddr *addr, socklen_t *addrlen,
498 if (!KSOCKET_VALID(ks))
504 if (getpeername(KSTOSO(ks), addr, addrlen) != 0)
511 ksocket_setsockopt(ksocket_t ks, int level, int optname, const void *optval,
517 if (!KSOCKET_VALID(ks))
523 if (setsockopt(KSTOSO(ks), level, optname, optval, optlen) != 0)
530 ksocket_ioctl(ksocket_t ks, int cmd, intptr_t arg, int *rvp, struct cred *cr)
537 if (!KSOCKET_VALID(ks))
540 rval = ioctl(KSTOSO(ks), cmd, arg);
551 ksocket_hold(ksocket_t ks)
553 if (!mutex_owned(&ks->kso_lock)) {
554 mutex_enter(&ks->kso_lock);
555 ks->kso_count++;
556 mutex_exit(&ks->kso_lock);
558 ks->kso_count++;
562 ksocket_rele(ksocket_t ks)
567 VERIFY3U(ks->kso_count, >, 1);
569 if (!mutex_owned(&ks->kso_lock)) {
570 mutex_enter(&ks->kso_lock);
571 if (--ks->kso_count == 1)
572 cv_signal(&ks->kso_closing_cv);
573 mutex_exit(&ks->kso_lock);
575 if (--ks->kso_count == 1)
576 cv_signal(&ks->kso_closing_cv);