/usr/include/glusterfs/rpc/rpcsvc-common.h is in glusterfs-common 3.13.2-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | /*
Copyright (c) 2008-2012 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 _RPCSVC_COMMON_H
#define _RPCSVC_COMMON_H
#include <pthread.h>
#include "list.h"
#include "compat.h"
#include "glusterfs.h"
#include "dict.h"
#include "xlator.h"
typedef enum {
RPCSVC_EVENT_ACCEPT,
RPCSVC_EVENT_DISCONNECT,
RPCSVC_EVENT_TRANSPORT_DESTROY,
RPCSVC_EVENT_LISTENER_DEAD,
} rpcsvc_event_t;
struct rpcsvc_state;
typedef int (*rpcsvc_notify_t) (struct rpcsvc_state *, void *mydata,
rpcsvc_event_t, void *data);
struct drc_globals;
typedef struct drc_globals rpcsvc_drc_globals_t;
/* Contains global state required for all the RPC services.
*/
typedef struct rpcsvc_state {
/* Contains list of (program, version) handlers.
* other options.
*/
pthread_mutex_t rpclock;
unsigned int memfactor;
/* List of the authentication schemes available. */
struct list_head authschemes;
/* Reference to the options */
dict_t *options;
/* Allow insecure ports. */
gf_boolean_t allow_insecure;
gf_boolean_t register_portmap;
gf_boolean_t root_squash;
uid_t anonuid;
gid_t anongid;
glusterfs_ctx_t *ctx;
/* list of connections which will listen for incoming connections */
struct list_head listeners;
/* list of programs registered with rpcsvc */
struct list_head programs;
/* list of notification callbacks */
struct list_head notify;
int notify_count;
xlator_t *xl; /* xlator */
void *mydata;
rpcsvc_notify_t notifyfn;
struct mem_pool *rxpool;
rpcsvc_drc_globals_t *drc;
/* per-client limit of outstanding rpc requests */
int outstanding_rpc_limit;
gf_boolean_t addr_namelookup;
/* determine whether throttling is needed, by default OFF */
gf_boolean_t throttle;
} rpcsvc_t;
/* DRC START */
enum drc_op_type {
DRC_NA = 0,
DRC_IDEMPOTENT = 1,
DRC_NON_IDEMPOTENT = 2
};
typedef enum drc_op_type drc_op_type_t;
enum drc_type {
DRC_TYPE_NONE = 0,
DRC_TYPE_IN_MEMORY = 1
};
typedef enum drc_type drc_type_t;
enum drc_lru_factor {
DRC_LRU_5_PC = 20,
DRC_LRU_10_PC = 10,
DRC_LRU_25_PC = 4,
DRC_LRU_50_PC = 2
};
typedef enum drc_lru_factor drc_lru_factor_t;
enum drc_xid_state {
DRC_XID_MONOTONOUS = 0,
DRC_XID_WRAPPED = 1
};
typedef enum drc_xid_state drc_xid_state_t;
enum drc_op_state {
DRC_OP_IN_TRANSIT = 0,
DRC_OP_CACHED = 1
};
typedef enum drc_op_state drc_op_state_t;
enum drc_policy {
DRC_LRU = 0
};
typedef enum drc_policy drc_policy_t;
/* Default policies for DRC */
#define DRC_DEFAULT_TYPE DRC_TYPE_IN_MEMORY
#define DRC_DEFAULT_CACHE_SIZE 0x20000
#define DRC_DEFAULT_LRU_FACTOR DRC_LRU_25_PC
/* DRC END */
#endif /* #ifndef _RPCSVC_COMMON_H */
|