Lines Matching refs:sock

83 #define IS_SOCKET_PROTO_TLS(sock)                (((sock)->protocol == PROTOCOL_TLS) || \  argument
84 ((sock)->protocol == PROTOCOL_DTLS))
85 #define SAL_SOCKOPS_PROTO_TLS_VALID(sock, name) (proto_tls && (proto_tls->ops->name) && IS_SOCKET_… argument
87 #define SAL_SOCKOPT_PROTO_TLS_EXEC(sock, name, optval, optlen) \ argument
89 if (SAL_SOCKOPS_PROTO_TLS_VALID(sock, name)){ \
90 return proto_tls->ops->name((sock)->user_data_tls, (optval), (optlen)); \
94 #define SAL_SOCKET_OBJ_GET(sock, socket) \ argument
96 (sock) = sal_get_socket(socket); \
97 if ((sock) == RT_NULL) { \
441 struct sal_socket *sock; in socket_init() local
457 sock = *res; in socket_init()
458 sock->domain = family; in socket_init()
459 sock->type = type; in socket_init()
460 sock->protocol = protocol; in socket_init()
468 sock->netdev = netdv_def; in socket_init()
483 sock->netdev = netdev; in socket_init()
542 struct sal_socket *sock; in socket_free() local
544 sock = st->sockets[idx]; in socket_free()
546 rt_free(sock); in socket_free()
551 struct sal_socket *sock; in socket_new() local
567 sock = st->sockets[idx]; in socket_new()
568 sock->socket = idx + SAL_SOCKET_OFFSET; in socket_new()
569 sock->magic = SAL_SOCKET_MAGIC; in socket_new()
570 sock->netdev = RT_NULL; in socket_new()
571 sock->user_data = RT_NULL; in socket_new()
573 sock->user_data_tls = RT_NULL; in socket_new()
583 struct sal_socket *sock; in socket_delete() local
593 sock = sal_get_socket(socket); in socket_delete()
594 RT_ASSERT(sock != RT_NULL); in socket_delete()
595 sock->magic = 0; in socket_delete()
596 sock->netdev = RT_NULL; in socket_delete()
604 struct sal_socket *sock; in sal_accept() local
608 SAL_SOCKET_OBJ_GET(sock, socket); in sal_accept()
611 SAL_NETDEV_IS_UP(sock->netdev); in sal_accept()
614 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, accept); in sal_accept()
616 new_socket = pf->skt_ops->accept((int)(size_t)sock->user_data, addr, addrlen); in sal_accept()
632 retval = socket_init(sock->domain, sock->type, sock->protocol, &new_sock); in sal_accept()
644 new_sock->netdev = sock->netdev; in sal_accept()
670 struct sal_socket *sock; in sal_bind() local
678 SAL_SOCKET_OBJ_GET(sock, socket); in sal_bind()
701 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, local_pf, bind); in sal_bind()
712 … new_socket = input_pf->skt_ops->socket(input_pf->family, sock->type, sock->protocol); in sal_bind()
717 sock->netdev = new_netdev; in sal_bind()
718 sock->user_data = (void *)(size_t)new_socket; in sal_bind()
723 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, bind); in sal_bind()
724 return pf->skt_ops->bind((int)(size_t)sock->user_data, name, namelen); in sal_bind()
729 struct sal_socket *sock; in sal_shutdown() local
734 SAL_SOCKET_OBJ_GET(sock, socket); in sal_shutdown()
738 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, shutdown); in sal_shutdown()
740 if (pf->skt_ops->shutdown((int)(size_t)sock->user_data, how) == 0) in sal_shutdown()
743 if (SAL_SOCKOPS_PROTO_TLS_VALID(sock, closesocket)) in sal_shutdown()
745 if (proto_tls->ops->closesocket(sock->user_data_tls) < 0) in sal_shutdown()
764 struct sal_socket *sock; in sal_getpeername() local
768 SAL_SOCKET_OBJ_GET(sock, socket); in sal_getpeername()
771 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, getpeername); in sal_getpeername()
773 return pf->skt_ops->getpeername((int)(size_t)sock->user_data, name, namelen); in sal_getpeername()
778 struct sal_socket *sock; in sal_getsockname() local
782 SAL_SOCKET_OBJ_GET(sock, socket); in sal_getsockname()
785 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, getsockname); in sal_getsockname()
787 return pf->skt_ops->getsockname((int)(size_t)sock->user_data, name, namelen); in sal_getsockname()
792 struct sal_socket *sock; in sal_getsockopt() local
796 SAL_SOCKET_OBJ_GET(sock, socket); in sal_getsockopt()
799 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, getsockopt); in sal_getsockopt()
801 return pf->skt_ops->getsockopt((int)(size_t)sock->user_data, level, optname, optval, optlen); in sal_getsockopt()
806 struct sal_socket *sock; in sal_setsockopt() local
810 SAL_SOCKET_OBJ_GET(sock, socket); in sal_setsockopt()
813 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, setsockopt); in sal_setsockopt()
821 SAL_SOCKOPT_PROTO_TLS_EXEC(sock, set_cret_list, optval, optlen); in sal_setsockopt()
825 SAL_SOCKOPT_PROTO_TLS_EXEC(sock, set_ciphersurite, optval, optlen); in sal_setsockopt()
829 SAL_SOCKOPT_PROTO_TLS_EXEC(sock, set_peer_verify, optval, optlen); in sal_setsockopt()
833 SAL_SOCKOPT_PROTO_TLS_EXEC(sock, set_dtls_role, optval, optlen); in sal_setsockopt()
844 return pf->skt_ops->setsockopt((int) sock->user_data, level, optname, optval, optlen); in sal_setsockopt()
847 return pf->skt_ops->setsockopt((int)(size_t)sock->user_data, level, optname, optval, optlen); in sal_setsockopt()
853 struct sal_socket *sock; in sal_connect() local
858 SAL_SOCKET_OBJ_GET(sock, socket); in sal_connect()
861 SAL_NETDEV_IS_UP(sock->netdev); in sal_connect()
863 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, connect); in sal_connect()
865 ret = pf->skt_ops->connect((int)(size_t)sock->user_data, name, namelen); in sal_connect()
867 if (ret >= 0 && SAL_SOCKOPS_PROTO_TLS_VALID(sock, connect)) in sal_connect()
869 if (proto_tls->ops->connect(sock->user_data_tls) < 0) in sal_connect()
883 struct sal_socket *sock; in sal_listen() local
887 SAL_SOCKET_OBJ_GET(sock, socket); in sal_listen()
890 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, listen); in sal_listen()
892 return pf->skt_ops->listen((int)(size_t)sock->user_data, backlog); in sal_listen()
897 struct sal_socket *sock; in sal_sendmsg() local
901 SAL_SOCKET_OBJ_GET(sock, socket); in sal_sendmsg()
904 SAL_NETDEV_IS_UP(sock->netdev); in sal_sendmsg()
906 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, sendmsg); in sal_sendmsg()
909 if (SAL_SOCKOPS_PROTO_TLS_VALID(sock, send)) in sal_sendmsg()
913 if ((ret = proto_tls->ops->send(sock->user_data_tls, message, flags)) < 0) in sal_sendmsg()
921 return pf->skt_ops->sendmsg((int)(size_t)sock->user_data, message, flags); in sal_sendmsg()
924 return pf->skt_ops->sendmsg((int)(size_t)sock->user_data, message, flags); in sal_sendmsg()
930 struct sal_socket *sock; in sal_recvmsg() local
934 SAL_SOCKET_OBJ_GET(sock, socket); in sal_recvmsg()
937 SAL_NETDEV_IS_UP(sock->netdev); in sal_recvmsg()
939 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, recvmsg); in sal_recvmsg()
942 if (SAL_SOCKOPS_PROTO_TLS_VALID(sock, recv)) in sal_recvmsg()
946 if ((ret = proto_tls->ops->recv(sock->user_data_tls, message, flags)) < 0) in sal_recvmsg()
954 return pf->skt_ops->recvmsg((int)(size_t)sock->user_data, message, flags); in sal_recvmsg()
957 return pf->skt_ops->recvmsg((int)(size_t)sock->user_data, message, flags); in sal_recvmsg()
964 struct sal_socket *sock; in sal_recvfrom() local
968 SAL_SOCKET_OBJ_GET(sock, socket); in sal_recvfrom()
971 SAL_NETDEV_IS_UP(sock->netdev); in sal_recvfrom()
973 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, recvfrom); in sal_recvfrom()
976 if (SAL_SOCKOPS_PROTO_TLS_VALID(sock, recv)) in sal_recvfrom()
980 if ((ret = proto_tls->ops->recv(sock->user_data_tls, mem, len)) < 0) in sal_recvfrom()
988 return pf->skt_ops->recvfrom((int)(size_t)sock->user_data, mem, len, flags, from, fromlen); in sal_recvfrom()
991 return pf->skt_ops->recvfrom((int)(size_t)sock->user_data, mem, len, flags, from, fromlen); in sal_recvfrom()
998 struct sal_socket *sock; in sal_sendto() local
1002 SAL_SOCKET_OBJ_GET(sock, socket); in sal_sendto()
1005 SAL_NETDEV_IS_UP(sock->netdev); in sal_sendto()
1007 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, sendto); in sal_sendto()
1010 if (SAL_SOCKOPS_PROTO_TLS_VALID(sock, send)) in sal_sendto()
1014 if ((ret = proto_tls->ops->send(sock->user_data_tls, dataptr, size)) < 0) in sal_sendto()
1022 return pf->skt_ops->sendto((int) sock->user_data, dataptr, size, flags, to, tolen); in sal_sendto()
1025 return pf->skt_ops->sendto((int)(size_t)sock->user_data, dataptr, size, flags, to, tolen); in sal_sendto()
1033 struct sal_socket *sock; in sal_socket() local
1044 sock = sal_get_socket(socket); in sal_socket()
1045 if (sock == RT_NULL) in sal_socket()
1052 retval = socket_init(domain, type, protocol, &sock); in sal_socket()
1061 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, socket); in sal_socket()
1067 if (SAL_SOCKOPS_PROTO_TLS_VALID(sock, socket)) in sal_socket()
1069 sock->user_data_tls = proto_tls->ops->socket(socket); in sal_socket()
1070 if (sock->user_data_tls == RT_NULL) in sal_socket()
1077 sock->user_data = (void *)(size_t)proto_socket; in sal_socket()
1078 return sock->socket; in sal_socket()
1116 struct sal_socket *sock; in sal_closesocket() local
1121 SAL_SOCKET_OBJ_GET(sock, socket); in sal_closesocket()
1125 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, closesocket); in sal_closesocket()
1127 if (pf->skt_ops->closesocket((int)(size_t)sock->user_data) == 0) in sal_closesocket()
1130 if (SAL_SOCKOPS_PROTO_TLS_VALID(sock, closesocket)) in sal_closesocket()
1132 if (proto_tls->ops->closesocket(sock->user_data_tls) < 0) in sal_closesocket()
1162 struct sal_socket *sock; in sal_ioctlsocket() local
1168 SAL_SOCKET_OBJ_GET(sock, socket); in sal_ioctlsocket()
1177 if (!strcmp(ifr->ifr_ifrn.ifrn_name, sock->netdev->name)) in sal_ioctlsocket()
1181 addr_in->sin_addr.s_addr = sock->netdev->ip_addr.u_addr.ip4.addr; in sal_ioctlsocket()
1183 addr_in->sin_addr.s_addr = sock->netdev->ip_addr.addr; in sal_ioctlsocket()
1218 if (!strcmp(ifr->ifr_ifrn.ifrn_name, sock->netdev->name)) in sal_ioctlsocket()
1222 netdev_set_ipaddr(sock->netdev, &input_ipaddr); in sal_ioctlsocket()
1248 if (!strcmp(ifr->ifr_ifrn.ifrn_name, sock->netdev->name)) in sal_ioctlsocket()
1252 addr_in->sin_addr.s_addr = sock->netdev->netmask.u_addr.ip4.addr; in sal_ioctlsocket()
1254 addr_in->sin_addr.s_addr = sock->netdev->netmask.addr; in sal_ioctlsocket()
1288 if (!strcmp(ifr->ifr_ifrn.ifrn_name, sock->netdev->name)) in sal_ioctlsocket()
1292 netdev_set_netmask(sock->netdev, &input_ipaddr); in sal_ioctlsocket()
1318 if (!strcmp(ifr->ifr_ifrn.ifrn_name,sock->netdev->name)) in sal_ioctlsocket()
1322 if (!strcmp("lo", sock->netdev->name)) in sal_ioctlsocket()
1333 rt_memcpy(addr->sa_data, sock->netdev->hwaddr, sock->netdev->hwaddr_len); in sal_ioctlsocket()
1370 if (!strcmp(ifr->ifr_ifrn.ifrn_name, sock->netdev->name)) in sal_ioctlsocket()
1372 ifr->ifr_ifru.ifru_mtu = sock->netdev->mtu; in sal_ioctlsocket()
1395 if (!strcmp(ifr->ifr_ifrn.ifrn_name, sock->netdev->name)) in sal_ioctlsocket()
1398 if (sock->netdev->flags & NETDEV_FLAG_UP) in sal_ioctlsocket()
1400 if (!(sock->netdev->flags & NETDEV_FLAG_ETHARP)) in sal_ioctlsocket()
1486 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, ioctlsocket); in sal_ioctlsocket()
1488 return pf->skt_ops->ioctlsocket((int)(size_t)sock->user_data, cmd, arg); in sal_ioctlsocket()
1494 struct sal_socket *sock; in sal_poll() local
1499 SAL_SOCKET_OBJ_GET(sock, socket); in sal_poll()
1502 SAL_NETDEV_IS_UP(sock->netdev); in sal_poll()
1504 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, poll); in sal_poll()