uint_32 RTCS_shutdown ( uint_32 sock, /*[IN] socket handle for this socket */ uint_32 how /*[IN] specifies whether or not connection should be immediate */ ) { /* Body */ register SOCKET_STRUCT_PTR socket_ptr = (SOCKET_STRUCT_PTR)sock; uint_32 error; error = RTCS_OK; #if RTCSCFG_CHECK_VALIDITY if ((sock==0) || (sock ==RTCS_SOCKET_ERROR)) { return RTCSERR_SOCK_INVALID; } /* Endif */ if (socket_ptr->VALID != SOCKET_VALID) { return RTCSERR_SOCK_INVALID; } /* Endif */ #endif if (socket_ptr->PROTOCOL->SOCK_SHUTDOWN) { error = socket_ptr->PROTOCOL->SOCK_SHUTDOWN(sock, how); } /* Endif */ SOCK_Free_sock_struct(socket_ptr); return error; } /* Endbody */
uint32_t RTCS_shutdown ( uint32_t sock, /*[IN] socket handle for this socket */ uint32_t how /*[IN] specifies whether or not connection should be immediate */ ) { register SOCKET_STRUCT_PTR socket_ptr = (SOCKET_STRUCT_PTR)sock; uint32_t error; error = RTCS_OK; if ((sock==0) || (sock == RTCS_SOCKET_ERROR) || (socket_ptr->VALID != SOCKET_VALID)) { return RTCSERR_SOCK_INVALID; } if (socket_ptr->PROTOCOL->SOCK_SHUTDOWN) { error = socket_ptr->PROTOCOL->SOCK_SHUTDOWN(sock, how); } SOCK_Free_sock_struct(socket_ptr); return error; }
uint_32 RTCS_socket ( uint_32 pf, /*[IN] specifies the protocol family */ uint_32 type, /*[IN] specifies the type of communication */ uint_32 protocol /*[IN] select a specific protocol */ ) { /* Body */ SOCKET_STRUCT_PTR socket_ptr; uint_32 error; RTCSLOG_API(RTCSLOG_TYPE_FNENTRY, RTCSLOG_FN_SOCKET, type); socket_ptr = SOCK_Get_sock_struct((RTCS_SOCKET_CALL_STRUCT_PTR)type, RTCS_task_getid()); if (socket_ptr == NULL) { RTCSLOG_API(RTCSLOG_TYPE_FNEXIT, RTCSLOG_FN_SOCKET, RTCS_SOCKET_ERROR); return RTCS_SOCKET_ERROR; } /* Endif */ if (socket_ptr->PROTOCOL->SOCK_SOCKET) { error = socket_ptr->PROTOCOL->SOCK_SOCKET((uint_32)socket_ptr); if (error) { SOCK_Free_sock_struct(socket_ptr); RTCSLOG_API(RTCSLOG_TYPE_FNEXIT, RTCSLOG_FN_SOCKET, RTCS_SOCKET_ERROR); return RTCS_SOCKET_ERROR; } /* Endif */ } /* Endif */ RTCSLOG_API(RTCSLOG_TYPE_FNEXIT, RTCSLOG_FN_SOCKET, (uint_32)socket_ptr); return (uint_32)socket_ptr; } /* Endbody */