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] - Blame information for rev 145

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 145 lanttu
/**
2
 *
3
 * @file   common.c
4
 * @author Lasse Lehtonen
5
 *
6
 * @brief VOPD - Common stuff for all nodes.
7
 *
8
 */
9
 
10
 
11
#include "common.h"
12
 
13
#include <assert.h>
14
#include <limits.h>
15
#include <stdlib.h>
16
#include <stdio.h>
17
#include <unistd.h>
18
#include <sys/stat.h>
19
#include <sys/types.h>
20
#include <fcntl.h>
21
#include <errno.h>
22
#include <time.h> 
23
 
24
void connect_fwd(int local, int tx_port, mcapi_pktchan_recv_hndl_t* send_hndl,
25
                 int remote, int rx_port)
26
{
27
   mcapi_endpoint_t local_send_endpoint;
28
 
29
   mcapi_endpoint_t remote_recv_endpoint;
30
   mcapi_request_t  request;
31
   mcapi_request_t  send_request;
32
 
33
   mcapi_status_t   status;
34
   size_t           size;
35
 
36
 
37
   printf("Node %d: Creating tx port %d\n", local, tx_port);
38
   local_send_endpoint = mcapi_create_endpoint(tx_port, &status);
39
   mcapi_assert_success(status);
40
 
41
   printf("Node %d: Creating remote rx port %d\n", local, rx_port);
42
   remote_recv_endpoint = mcapi_get_endpoint(remote, rx_port, &status);
43
   mcapi_assert_success(status);
44
 
45
   printf("Node %d: Connecting %d:%d to %d:%d\n",local, local, tx_port,
46
          remote, rx_port);
47
   mcapi_connect_pktchan_i(local_send_endpoint, remote_recv_endpoint,
48
                           &request, &status);
49
   mcapi_assert_success(status);
50
 
51
   mcapi_wait(&request, &size, &status, WAIT_TIMEOUT);
52
   mcapi_assert_success(status);
53
 
54
   printf("Node %d: Connection complete\n", local);
55
 
56
   printf("Node %d: Opening send endpoint\n", local);
57
   mcapi_open_pktchan_send_i(send_hndl, local_send_endpoint, &send_request,
58
                             &status);
59
 
60
   mcapi_wait(&send_request, &size, &status, WAIT_TIMEOUT);
61
   mcapi_assert_success(status);
62
 
63
   printf("Node %d: MCAPI forward connection complete! \n", local);
64
 
65
}
66
 
67
 
68
 
69
void connect_rev(int local, int rx_port, mcapi_pktchan_recv_hndl_t* recv_hndl)
70
{
71
   mcapi_endpoint_t local_recv_endpoint;
72
   mcapi_request_t  recv_request;
73
   mcapi_status_t   status;
74
   size_t           size;
75
 
76
   printf("Node %d: Creating local rx port %d\n", local, rx_port);
77
   local_recv_endpoint = mcapi_create_endpoint(rx_port, &status);
78
   mcapi_assert_success(status);
79
 
80
   printf("Node %d: Opening receive endpoint\n", local);
81
   mcapi_open_pktchan_recv_i(recv_hndl, local_recv_endpoint, &recv_request,
82
                             &status);
83
 
84
   mcapi_wait(&recv_request, &size, &status, WAIT_TIMEOUT);
85
   mcapi_assert_success(status);
86
 
87
   printf("Node %d: MCAPI reverse connection complete! \n", local);
88
 
89
}
90
 
91
 
92
void cleanup()
93
{
94
   mcapi_status_t status;
95
   mcapi_finalize(&status);
96
}
97
 
98
// Local Variables:
99
// mode: c++
100
// c-file-style: "ellemtel"
101
// c-basic-offset: 3
102
// End:
103
 

powered by: WebSVN 2.1.0

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