FRSH_RECEIVE_ENDPOINT_TYPE
} frsh_endpoint_type_t;
-typedef struct {
+typedef struct fna_endpoint_data {
frsh_endpoint_type_t endpoint_type; // send_endpoint or receive_endpoint
fna_vres_id_t vres; // only for send_endpoints
bool is_bound; // only for send_endpoints
frsh_endpoint_network_status_t *network_status,
frsh_protocol_status_t *protocol_status);
+/**
+ * fna_send_endpoint_bind_t()
+ *
+ * This operation is a called from frsh_send_endpoint_bind and binds send
+ * edpoint to vres.
+ *
+ * @param[in] endpoint the endpoint object.
+ * @param[in] vres The internal virtual resource id
+ *
+ * @return
+ * 0 if there are no errors \n
+ * FNA_ERR_INTERNAL_ERROR: protocol dependent internal errors \n
+ * FNA_ERR_NOT_INITIALIZED: if the protocol is not initialized \n
+ * FNA_ERR_RESOURCE_ID_INVALID: if we are not in charge of resource_id \n
+ * FNA_ERR_BAD_ARGUMENT: if pointers are NULL \n
+ **/
+typedef
+int fna_send_endpoint_bind_t(fna_endpoint_data_t *endpoint, fna_vres_id_t vres);
+
+/**
+ * fna_send_endpoint_unbind_t()
+ *
+ * This operation is a called from frsh_send_endpoint_bind.
+ *
+ * @param[in] endpoint the endpoint object.
+ *
+ * @return
+ * 0 if there are no errors \n
+ * FNA_ERR_INTERNAL_ERROR: protocol dependent internal errors \n
+ * FNA_ERR_NOT_INITIALIZED: if the protocol is not initialized \n
+ * FNA_ERR_RESOURCE_ID_INVALID: if we are not in charge of resource_id \n
+ * FNA_ERR_BAD_ARGUMENT: if pointers are NULL \n
+ **/
+typedef
+int fna_send_endpoint_unbind_t(fna_endpoint_data_t *endpoint);
+
+/**
+ * fna_send_endpoint_create_callback()
+ *
+ * This operation is a called from frsh_send_endpoint_create with a
+ * send_endpoint structure already filled.
+ *
+ * @param[in] endpoint the endpoint object.
+ *
+ * @return
+ * 0 if there are no errors \n
+ * FNA_ERR_INTERNAL_ERROR: protocol dependent internal errors \n
+ * FNA_ERR_NOT_INITIALIZED: if the protocol is not initialized \n
+ * FNA_ERR_RESOURCE_ID_INVALID: if we are not in charge of resource_id \n
+ * FNA_ERR_BAD_ARGUMENT: if pointers are NULL \n
+ **/
+typedef int fna_send_endpoint_create_callback_t
+ (fna_endpoint_data_t *endpoint);
+
/**
* fna_receive_endpoint_create_callback()
*
typedef int fna_receive_endpoint_create_callback_t
(fna_endpoint_data_t *endpoint);
+/**
+ * fna_endpoint_destroy()
+ *
+ * This operation is a called from frsh_send(receive)_endpoint_destroy.
+ *
+ * @param[in] endpoint the endpoint object.
+ *
+ * @return
+ * 0 if there are no errors \n
+ * FNA_ERR_INTERNAL_ERROR: protocol dependent internal errors \n
+ * FNA_ERR_NOT_INITIALIZED: if the protocol is not initialized \n
+ * FNA_ERR_RESOURCE_ID_INVALID: if we are not in charge of resource_id \n
+ * FNA_ERR_BAD_ARGUMENT: if pointers are NULL \n
+ **/
+typedef int fna_endpoint_destroy_t
+ (fna_endpoint_data_t *endpoint);
+
/**
* fna_receive_endpoint_get_pending_messages
*
fna_receive_sync_t *fna_receive_sync;
fna_receive_async_t *fna_receive_async;
fna_send_endpoint_get_status_t *fna_send_endpoint_get_status;
+ fna_send_endpoint_bind_t *fna_send_endpoint_bind;
+ fna_send_endpoint_unbind_t *fna_send_endpoint_unbind;
+ fna_endpoint_destroy_t *fna_endpoint_destroy;
+ fna_send_endpoint_create_callback_t *fna_send_endpoint_created;
fna_receive_endpoint_create_callback_t *fna_receive_endpoint_created;
fna_receive_endpoint_get_status_t *fna_receive_endpoint_get_status;
fna_network_get_max_message_size_t *fna_network_get_max_message_size;