1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
/*
Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com>
This file is part of GlusterFS.
This file is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3 or
later), or the GNU General Public License, version 2 (GPLv2), in all
cases as published by the Free Software Foundation.
*/
#ifndef __CHANGELOG_RPC_COMMON_H
#define __CHANGELOG_RPC_COMMON_H
#include "rpcsvc.h"
#include "rpc-clnt.h"
#include <glusterfs/gf-event.h>
#include <glusterfs/call-stub.h>
#include "changelog-xdr.h"
#include "xdr-generic.h"
#include "changelog.h"
/**
* Let's keep this non-configurable for now.
*/
#define NR_ROTT_BUFFS 4
#define NR_DISPATCHERS (NR_ROTT_BUFFS - 1)
enum changelog_rpc_procnum {
CHANGELOG_RPC_PROC_NULL = 0,
CHANGELOG_RPC_PROBE_FILTER = 1,
CHANGELOG_RPC_PROC_MAX = 2,
};
#define CHANGELOG_RPC_PROGNUM 1885957735
#define CHANGELOG_RPC_PROGVER 1
/**
* reverse connection: data xfer path
*/
enum changelog_reverse_rpc_procnum {
CHANGELOG_REV_PROC_NULL = 0,
CHANGELOG_REV_PROC_EVENT = 1,
CHANGELOG_REV_PROC_MAX = 2,
};
#define CHANGELOG_REV_RPC_PROCNUM 1886350951
#define CHANGELOG_REV_RPC_PROCVER 1
typedef struct changelog_rpc {
rpcsvc_t *svc;
struct rpc_clnt *rpc;
char sock[UNIX_PATH_MAX]; /* tied to server */
} changelog_rpc_t;
/* event poller */
void *
changelog_rpc_poller(void *);
/* CLIENT API */
struct rpc_clnt *
changelog_rpc_client_init(xlator_t *, void *, char *, rpc_clnt_notify_t);
int
changelog_rpc_sumbit_req(struct rpc_clnt *, void *, call_frame_t *,
rpc_clnt_prog_t *, int, struct iovec *, int,
struct iobref *, xlator_t *, fop_cbk_fn_t, xdrproc_t);
int
changelog_invoke_rpc(xlator_t *, struct rpc_clnt *, rpc_clnt_prog_t *, int,
void *);
/* SERVER API */
int
changelog_rpc_sumbit_reply(rpcsvc_request_t *, void *, struct iovec *, int,
struct iobref *, xdrproc_t);
rpcsvc_t *
changelog_rpc_server_init(xlator_t *, char *, void *, rpcsvc_notify_t,
struct rpcsvc_program **);
void
changelog_rpc_server_destroy(xlator_t *, rpcsvc_t *, char *, rpcsvc_notify_t,
struct rpcsvc_program **);
#endif
|