1 #ifndef _FWP_ENDPOINT_H
2 #define _FWP_ENDPOINT_H
4 #define FWP_ANY_NODE INADDR_ANY
7 FWP_EPOINT_BESTEFFORT = 0,
8 FWP_EPOINT_RELIABLE = 1,
9 } fwp_endpoint_reliability_t;
12 typedef struct fwp_endpoint fwp_endpoint_t;
13 /** fwp endpoint descriptor type */
14 typedef struct fwp_endpoint* fwp_endpoint_d_t;
16 typedef unsigned int fwp_addr_t;
22 struct fwp_endpoint_attr {
23 unsigned int reliability;
24 unsigned int max_connections;
26 } fwp_endpoint_attr_t;
28 /*TODO: extract FWP_DEBUG from fwp_util.h */
32 int fwp_endpoint_get_params(fwp_endpoint_d_t epointd, unsigned int *node,
33 unsigned int *port, fwp_endpoint_attr_t *attr);
34 int fwp_send_endpoint_create(unsigned int node, unsigned int port,
35 fwp_endpoint_attr_t *attr,
36 fwp_endpoint_t **epoint);
37 int fwp_receive_endpoint_create(/*unsigned int node,*/ unsigned int port,
38 fwp_endpoint_attr_t *attr,
39 fwp_endpoint_t **epoint);
40 int fwp_endpoint_destroy(fwp_endpoint_d_t epointd);
42 int fwp_send_endpoint_bind(fwp_vres_d_t vresd, fwp_endpoint_d_t epointd);
43 int fwp_send_endpoint_unbind(fwp_endpoint_d_t epointd);
45 ssize_t fwp_recv(fwp_endpoint_t *endpoint,
46 void *buffer, const size_t buffer_size,
47 unsigned int *from, int flags);
48 int fwp_send(fwp_endpoint_t *fwp_epoint, const void *msg, const size_t size, int flags);
50 int fwp_endpoint_attr_init(fwp_endpoint_attr_t *attr);
52 static inline int fwp_endpoint_attr_setreliability(fwp_endpoint_attr_t *attr,
55 attr->reliability = reliability;
59 /* Sets queueing policy */
60 /*int fwp_endpoint_attr_setqpolicy(fwp_endpoint_attr_t *attr);*/
61 #ifdef _FWP_INTERNALS_
63 int fwp_endpoint_table_init(unsigned int nr_endpoints);
65 #endif /*_FWP_INTERNALS_*/
66 #endif /*_FWP_ENDPOINT_H */