Lines Matching refs:ks
41 #define KSOCKET_VALID(ks) (ks->kso_magic == _KSOCKET_MAGIC) argument
42 #define KSTOSO(ks) (ks->kso_fd) argument
108 ksocket_t ks; in _ksocket_create() local
110 ks = umem_cache_alloc(ksocket_cache, 0); in _ksocket_create()
111 VERIFY(ks != NULL); in _ksocket_create()
112 ks->kso_magic = _KSOCKET_MAGIC; in _ksocket_create()
113 ks->kso_count = 1; in _ksocket_create()
114 ks->kso_fd = fd; in _ksocket_create()
115 return (ks); in _ksocket_create()
119 _ksocket_destroy(ksocket_t ks) in _ksocket_destroy() argument
121 ASSERT(ks->kso_count == 1); in _ksocket_destroy()
122 umem_cache_free(ksocket_cache, ks); in _ksocket_destroy()
130 ksocket_t ks; in ksocket_socket() local
143 ks = _ksocket_create(fd); in ksocket_socket()
144 *ksp = ks; in ksocket_socket()
160 ksocket_bind(ksocket_t ks, struct sockaddr *addr, socklen_t addrlen, in ksocket_bind() argument
168 if (!KSOCKET_VALID(ks)) in ksocket_bind()
171 if (bind(KSTOSO(ks), addr, addrlen) != 0) in ksocket_bind()
175 err = ksocket_bind_helper(KSTOSO(ks), addr, addrlen); in ksocket_bind()
182 ksocket_listen(ksocket_t ks, int backlog, struct cred *cr) in ksocket_listen() argument
187 if (!KSOCKET_VALID(ks)) in ksocket_listen()
190 if (listen(KSTOSO(ks), backlog) != 0) in ksocket_listen()
197 ksocket_accept(ksocket_t ks, struct sockaddr *addr, in ksocket_accept() argument
207 if (!KSOCKET_VALID(ks)) in ksocket_accept()
213 fd = accept(KSTOSO(ks), addr, addrlenp); in ksocket_accept()
223 ksocket_connect(ksocket_t ks, struct sockaddr *addr, socklen_t addrlen, in ksocket_connect() argument
229 if (!KSOCKET_VALID(ks)) in ksocket_connect()
232 if (connect(KSTOSO(ks), addr, addrlen) != 0) in ksocket_connect()
239 ksocket_send(ksocket_t ks, void *msg, size_t msglen, int flags, in ksocket_send() argument
247 if (!KSOCKET_VALID(ks)) { in ksocket_send()
253 error = send(KSTOSO(ks), msg, msglen, flags); in ksocket_send()
266 ksocket_sendto(ksocket_t ks, void *msg, size_t msglen, int flags, in ksocket_sendto() argument
274 if (!KSOCKET_VALID(ks)) { in ksocket_sendto()
280 error = sendto(KSTOSO(ks), msg, msglen, flags, name, namelen); in ksocket_sendto()
293 ksocket_sendmsg(ksocket_t ks, struct nmsghdr *msg, int flags, in ksocket_sendmsg() argument
301 if (!KSOCKET_VALID(ks)) { in ksocket_sendmsg()
307 error = sendmsg(KSTOSO(ks), msg, flags); in ksocket_sendmsg()
320 ksocket_recv(ksocket_t ks, void *msg, size_t msglen, int flags, in ksocket_recv() argument
328 if (!KSOCKET_VALID(ks)) { in ksocket_recv()
334 error = recv(KSTOSO(ks), msg, msglen, flags); in ksocket_recv()
347 ksocket_recvfrom(ksocket_t ks, void *msg, size_t msglen, int flags, in ksocket_recvfrom() argument
355 if (!KSOCKET_VALID(ks)) { in ksocket_recvfrom()
361 error = recvfrom(KSTOSO(ks), msg, msglen, flags, name, namelen); in ksocket_recvfrom()
374 ksocket_recvmsg(ksocket_t ks, struct nmsghdr *msg, int flags, size_t *recvd, in ksocket_recvmsg() argument
382 if (!KSOCKET_VALID(ks)) { in ksocket_recvmsg()
388 error = recvmsg(KSTOSO(ks), msg, flags); in ksocket_recvmsg()
401 ksocket_shutdown(ksocket_t ks, int how, struct cred *cr) in ksocket_shutdown() argument
406 if (!KSOCKET_VALID(ks)) in ksocket_shutdown()
409 if (shutdown(KSTOSO(ks), how) != 0) in ksocket_shutdown()
416 ksocket_close(ksocket_t ks, struct cred *cr) in ksocket_close() argument
423 mutex_enter(&ks->kso_lock); in ksocket_close()
425 if (!KSOCKET_VALID(ks)) { in ksocket_close()
426 mutex_exit(&ks->kso_lock); in ksocket_close()
430 ks->kso_state |= SS_CLOSING; in ksocket_close()
437 fd = ks->kso_fd; in ksocket_close()
438 ks->kso_fd = -1; in ksocket_close()
441 while (ks->kso_count > 1) in ksocket_close()
442 cv_wait(&ks->kso_closing_cv, &ks->kso_lock); in ksocket_close()
444 mutex_exit(&ks->kso_lock); in ksocket_close()
445 _ksocket_destroy(ks); in ksocket_close()
451 ksocket_getsockname(ksocket_t ks, struct sockaddr *addr, socklen_t *addrlen, in ksocket_getsockname() argument
457 if (!KSOCKET_VALID(ks)) in ksocket_getsockname()
463 if (getsockname(KSTOSO(ks), addr, addrlen) != 0) in ksocket_getsockname()
470 ksocket_getpeername(ksocket_t ks, struct sockaddr *addr, socklen_t *addrlen, in ksocket_getpeername() argument
476 if (!KSOCKET_VALID(ks)) in ksocket_getpeername()
482 if (getpeername(KSTOSO(ks), addr, addrlen) != 0) in ksocket_getpeername()
489 ksocket_setsockopt(ksocket_t ks, int level, int optname, const void *optval, in ksocket_setsockopt() argument
495 if (!KSOCKET_VALID(ks)) in ksocket_setsockopt()
501 if (setsockopt(KSTOSO(ks), level, optname, optval, optlen) != 0) in ksocket_setsockopt()
508 ksocket_ioctl(ksocket_t ks, int cmd, intptr_t arg, int *rvp, struct cred *cr) in ksocket_ioctl() argument
515 if (!KSOCKET_VALID(ks)) in ksocket_ioctl()
518 rval = ioctl(KSTOSO(ks), cmd, arg); in ksocket_ioctl()
529 ksocket_hold(ksocket_t ks) in ksocket_hold() argument
531 if (!mutex_owned(&ks->kso_lock)) { in ksocket_hold()
532 mutex_enter(&ks->kso_lock); in ksocket_hold()
533 ks->kso_count++; in ksocket_hold()
534 mutex_exit(&ks->kso_lock); in ksocket_hold()
536 ks->kso_count++; in ksocket_hold()
540 ksocket_rele(ksocket_t ks) in ksocket_rele() argument
545 VERIFY3U(ks->kso_count, >, 1); in ksocket_rele()
547 if (!mutex_owned(&ks->kso_lock)) { in ksocket_rele()
548 mutex_enter(&ks->kso_lock); in ksocket_rele()
549 if (--ks->kso_count == 1) in ksocket_rele()
550 cv_signal(&ks->kso_closing_cv); in ksocket_rele()
551 mutex_exit(&ks->kso_lock); in ksocket_rele()
553 if (--ks->kso_count == 1) in ksocket_rele()
554 cv_signal(&ks->kso_closing_cv); in ksocket_rele()