OpenCores
URL https://opencores.org/ocsvn/funbase_ip_library/funbase_ip_library/trunk

Subversion Repositories funbase_ip_library

[/] [funbase_ip_library/] [trunk/] [TUT/] [ip.application/] [vopd/] [1.0/] [src/] [common.c] - Rev 145

Compare with Previous | Blame | View Log

/**
 *
 * @file   common.c
 * @author Lasse Lehtonen
 *
 * @brief VOPD - Common stuff for all nodes.
 *
 */
 
 
#include "common.h"
 
#include <assert.h>
#include <limits.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <errno.h>
#include <time.h> 
 
void connect_fwd(int local, int tx_port, mcapi_pktchan_recv_hndl_t* send_hndl,
                 int remote, int rx_port)
{
   mcapi_endpoint_t local_send_endpoint; 
 
   mcapi_endpoint_t remote_recv_endpoint;
   mcapi_request_t  request;
   mcapi_request_t  send_request;
 
   mcapi_status_t   status;
   size_t           size;
 
 
   printf("Node %d: Creating tx port %d\n", local, tx_port);
   local_send_endpoint = mcapi_create_endpoint(tx_port, &status);
   mcapi_assert_success(status);
 
   printf("Node %d: Creating remote rx port %d\n", local, rx_port);
   remote_recv_endpoint = mcapi_get_endpoint(remote, rx_port, &status);
   mcapi_assert_success(status);
 
   printf("Node %d: Connecting %d:%d to %d:%d\n",local, local, tx_port,
          remote, rx_port);
   mcapi_connect_pktchan_i(local_send_endpoint, remote_recv_endpoint,
                           &request, &status);
   mcapi_assert_success(status);
 
   mcapi_wait(&request, &size, &status, WAIT_TIMEOUT);     
   mcapi_assert_success(status);
 
   printf("Node %d: Connection complete\n", local);
 
   printf("Node %d: Opening send endpoint\n", local);
   mcapi_open_pktchan_send_i(send_hndl, local_send_endpoint, &send_request,
                             &status);
 
   mcapi_wait(&send_request, &size, &status, WAIT_TIMEOUT);        
   mcapi_assert_success(status);
 
   printf("Node %d: MCAPI forward connection complete! \n", local);
 
}
 
 
 
void connect_rev(int local, int rx_port, mcapi_pktchan_recv_hndl_t* recv_hndl)
{
   mcapi_endpoint_t local_recv_endpoint;
   mcapi_request_t  recv_request;
   mcapi_status_t   status;
   size_t           size;
 
   printf("Node %d: Creating local rx port %d\n", local, rx_port);
   local_recv_endpoint = mcapi_create_endpoint(rx_port, &status);
   mcapi_assert_success(status);
 
   printf("Node %d: Opening receive endpoint\n", local);
   mcapi_open_pktchan_recv_i(recv_hndl, local_recv_endpoint, &recv_request,
                             &status);
 
   mcapi_wait(&recv_request, &size, &status, WAIT_TIMEOUT);        
   mcapi_assert_success(status);
 
   printf("Node %d: MCAPI reverse connection complete! \n", local);
 
}
 
 
void cleanup()
{
   mcapi_status_t status;
   mcapi_finalize(&status);
}
 
// Local Variables:
// mode: c++
// c-file-style: "ellemtel"
// c-basic-offset: 3
// End:
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.