3 /* main mpeer structs */
6 struct xseg_request *req;
17 uint32_t defer_portno;
18 struct peer_req *peer_reqs;
23 void fail(struct peerd *peer, struct peer_req *pr);
24 void complete(struct peerd *peer, struct peer_req *pr);
25 void defer_request(struct peerd *peer, struct peer_req *pr);
26 void pending(struct peerd *peer, struct peer_req *req);
27 void log_pr(char *msg, struct peer_req *pr);
28 int canDefer(struct peerd *peer);
29 int submit_peer_req(struct peerd *peer, struct peer_req *pr);
30 struct peer_req *alloc_peer_req(struct peerd *peer);
31 void free_peer_req(struct peerd *peer, struct peer_req *pr);
32 void get_submits_stats();
33 void get_responds_stats();
35 static inline struct peerd * __get_peerd(void * custom_peerd)
37 return (struct peerd *) ((unsigned long) custom_peerd - offsetof(struct peerd, priv));
40 /********************************
41 * mandatory peer functions *
42 ********************************/
44 /* peer main function */
45 int custom_peer_init(struct peerd *peer, int argc, char *argv[]);
47 /* dispatch function that cannot block
48 * defers blocking calls to helper threads
50 int dispatch(struct peerd *peer, struct peer_req *pr, struct xseg_request *xseg);