⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctdb_private.h

📁 samba最新软件
💻 H
📖 第 1 页 / 共 3 页
字号:
          DEBUG(0,("Out of memory for %s at %s\n", #p, __location__)); \          ctdb_set_error(ctdb, "Out of memory at %s:%d", __FILE__, __LINE__); \	  }} while (0)#define CTDB_NO_MEMORY_NULL(ctdb, p) do { if (!(p)) { \          DEBUG(0,("Out of memory for %s at %s\n", #p, __location__)); \          ctdb_set_error(ctdb, "Out of memory at %s:%d", __FILE__, __LINE__); \	  return NULL; }} while (0)#define CTDB_NO_MEMORY_FATAL(ctdb, p) do { if (!(p)) { \          DEBUG(0,("Out of memory for %s at %s\n", #p, __location__)); \          ctdb_fatal(ctdb, "Out of memory in " __location__ ); \	  }} while (0)/*  the extended header for records in the ltdb*/struct ctdb_ltdb_header {	uint64_t rsn;	uint32_t dmaster;	uint32_t laccessor;	uint32_t lacount;};enum ctdb_controls {CTDB_CONTROL_PROCESS_EXISTS          = 0, 		    CTDB_CONTROL_STATISTICS              = 1, 		    /* #2 removed */		    CTDB_CONTROL_PING                    = 3,		    CTDB_CONTROL_GETDBPATH               = 4,		    CTDB_CONTROL_GETVNNMAP               = 5,		    CTDB_CONTROL_SETVNNMAP               = 6,		    CTDB_CONTROL_GET_DEBUG               = 7,		    CTDB_CONTROL_SET_DEBUG               = 8,		    CTDB_CONTROL_GET_DBMAP               = 9,		    CTDB_CONTROL_GET_NODEMAP             = 10,		    CTDB_CONTROL_SET_DMASTER             = 11,		    /* #12 removed */		    CTDB_CONTROL_PULL_DB                 = 13,		    CTDB_CONTROL_PUSH_DB                 = 14,		    CTDB_CONTROL_GET_RECMODE             = 15,		    CTDB_CONTROL_SET_RECMODE             = 16,		    CTDB_CONTROL_STATISTICS_RESET        = 17,		    CTDB_CONTROL_DB_ATTACH               = 18,		    CTDB_CONTROL_SET_CALL                = 19,		    CTDB_CONTROL_TRAVERSE_START          = 20,		    CTDB_CONTROL_TRAVERSE_ALL            = 21,		    CTDB_CONTROL_TRAVERSE_DATA           = 22,		    CTDB_CONTROL_REGISTER_SRVID          = 23,		    CTDB_CONTROL_DEREGISTER_SRVID        = 24,		    CTDB_CONTROL_GET_DBNAME              = 25,		    CTDB_CONTROL_ENABLE_SEQNUM           = 26,		    CTDB_CONTROL_UPDATE_SEQNUM           = 27,		    /* #28 removed */		    CTDB_CONTROL_DUMP_MEMORY             = 29,		    CTDB_CONTROL_GET_PID                 = 30,		    CTDB_CONTROL_GET_RECMASTER           = 31,		    CTDB_CONTROL_SET_RECMASTER           = 32,		    CTDB_CONTROL_FREEZE                  = 33,		    CTDB_CONTROL_THAW                    = 34,		    CTDB_CONTROL_GET_VNN                 = 35,		    CTDB_CONTROL_SHUTDOWN                = 36,		    CTDB_CONTROL_GET_MONMODE             = 37,		    CTDB_CONTROL_SET_MONMODE             = 38,		    CTDB_CONTROL_MAX_RSN                 = 39,		    CTDB_CONTROL_SET_RSN_NONEMPTY        = 40,		    CTDB_CONTROL_DELETE_LOW_RSN          = 41,		    CTDB_CONTROL_TAKEOVER_IP             = 42,		    CTDB_CONTROL_RELEASE_IP              = 43,		    CTDB_CONTROL_TCP_CLIENT              = 44,		    CTDB_CONTROL_TCP_ADD                 = 45,		    CTDB_CONTROL_TCP_REMOVE              = 46,		    CTDB_CONTROL_STARTUP                 = 47,		    CTDB_CONTROL_SET_TUNABLE             = 48,		    CTDB_CONTROL_GET_TUNABLE             = 49,		    CTDB_CONTROL_LIST_TUNABLES           = 50,		    CTDB_CONTROL_GET_PUBLIC_IPS          = 51,		    CTDB_CONTROL_MODIFY_FLAGS            = 52,		    CTDB_CONTROL_GET_ALL_TUNABLES        = 53,		    CTDB_CONTROL_KILL_TCP                = 54,		    CTDB_CONTROL_GET_TCP_TICKLE_LIST     = 55,		    CTDB_CONTROL_SET_TCP_TICKLE_LIST     = 56,};/*  structure passed in ctdb_control_set_rsn_nonempty */struct ctdb_control_set_rsn_nonempty {	uint32_t db_id;	uint64_t rsn;};/*  structure passed in ctdb_control_delete_low_rsn */struct ctdb_control_delete_low_rsn {	uint32_t db_id;	uint64_t rsn;};/*  structure passed in set_call control */struct ctdb_control_set_call {	uint32_t db_id;	ctdb_fn_t fn;	uint32_t id;};/*  struct for tcp_client control */struct ctdb_control_tcp {	struct sockaddr_in src;	struct sockaddr_in dest;};/*  struct for kill_tcp control */struct ctdb_control_killtcp {	struct sockaddr_in src;	struct sockaddr_in dst;};/*  struct for tcp_add and tcp_remove controls */struct ctdb_control_tcp_vnn {	uint32_t vnn;	struct sockaddr_in src;	struct sockaddr_in dest;};/*  structure used for CTDB_SRVID_NODE_FLAGS_CHANGED */struct ctdb_node_flag_change {	uint32_t vnn;	uint32_t flags;};/*  structure to change flags on a node */struct ctdb_node_modflags {	uint32_t set;	uint32_t clear;};/*  struct for admin setting a ban */struct ctdb_ban_info {	uint32_t vnn;	uint32_t ban_time;};enum call_state {CTDB_CALL_WAIT, CTDB_CALL_DONE, CTDB_CALL_ERROR};#define CTDB_LMASTER_ANY	0xffffffff/*  state of a in-progress ctdb call*/struct ctdb_call_state {	struct ctdb_call_state *next, *prev;	enum call_state state;	uint32_t reqid;	struct ctdb_req_call *c;	struct ctdb_db_context *ctdb_db;	const char *errmsg;	struct ctdb_call call;	uint32_t generation;	struct {		void (*fn)(struct ctdb_call_state *);		void *private_data;	} async;};/* used for fetch_lock */struct ctdb_fetch_handle {	struct ctdb_db_context *ctdb_db;	TDB_DATA key;	TDB_DATA *data;	struct ctdb_ltdb_header header;};/*  operation IDs*/enum ctdb_operation {	CTDB_REQ_CALL           = 0,	CTDB_REPLY_CALL         = 1,	CTDB_REQ_DMASTER        = 2,	CTDB_REPLY_DMASTER      = 3,	CTDB_REPLY_ERROR        = 4,	CTDB_REQ_MESSAGE        = 5,	/* #6 removed */	CTDB_REQ_CONTROL        = 7,	CTDB_REPLY_CONTROL      = 8,	CTDB_REQ_KEEPALIVE      = 9,};#define CTDB_MAGIC 0x43544442 /* CTDB */#define CTDB_VERSION 1/*  packet structures*/struct ctdb_req_header {	uint32_t length;	uint32_t ctdb_magic;	uint32_t ctdb_version;	uint32_t generation;	uint32_t operation;	uint32_t destnode;	uint32_t srcnode;	uint32_t reqid;};struct ctdb_req_call {	struct ctdb_req_header hdr;	uint32_t flags;	uint32_t db_id;	uint32_t callid;	uint32_t hopcount;	uint32_t keylen;	uint32_t calldatalen;	uint8_t data[1]; /* key[] followed by calldata[] */};struct ctdb_reply_call {	struct ctdb_req_header hdr;	uint32_t status;	uint32_t datalen;	uint8_t  data[1];};struct ctdb_reply_error {	struct ctdb_req_header hdr;	uint32_t status;	uint32_t msglen;	uint8_t  msg[1];};struct ctdb_req_dmaster {	struct ctdb_req_header hdr;	uint32_t db_id;	uint64_t rsn;	uint32_t dmaster;	uint32_t keylen;	uint32_t datalen;	uint8_t  data[1];};struct ctdb_reply_dmaster {	struct ctdb_req_header hdr;	uint32_t db_id;	uint64_t rsn;	uint32_t keylen;	uint32_t datalen;	uint8_t  data[1];};struct ctdb_req_message {	struct ctdb_req_header hdr;	uint64_t srvid;	uint32_t datalen;	uint8_t data[1];};struct ctdb_req_getdbpath {	struct ctdb_req_header hdr;	uint32_t db_id;};struct ctdb_reply_getdbpath {	struct ctdb_req_header hdr;	uint32_t datalen;	uint8_t data[1];};struct ctdb_req_control {	struct ctdb_req_header hdr;	uint32_t opcode;	uint64_t srvid;	uint32_t client_id;#define CTDB_CTRL_FLAG_NOREPLY   1	uint32_t flags;	uint32_t datalen;	uint8_t data[1];};struct ctdb_reply_control {	struct ctdb_req_header hdr;	int32_t  status;	uint32_t datalen;	uint32_t errorlen;	uint8_t data[1];};struct ctdb_req_keepalive {	struct ctdb_req_header hdr;};/* internal prototypes */void ctdb_set_error(struct ctdb_context *ctdb, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);void ctdb_fatal(struct ctdb_context *ctdb, const char *msg);bool ctdb_same_address(struct ctdb_address *a1, struct ctdb_address *a2);int ctdb_parse_address(struct ctdb_context *ctdb,		       TALLOC_CTX *mem_ctx, const char *str,		       struct ctdb_address *address);uint32_t ctdb_hash(const TDB_DATA *key);uint32_t ctdb_hash_string(const char *str);void ctdb_request_call(struct ctdb_context *ctdb, struct ctdb_req_header *hdr);void ctdb_request_dmaster(struct ctdb_context *ctdb, struct ctdb_req_header *hdr);void ctdb_request_message(struct ctdb_context *ctdb, struct ctdb_req_header *hdr);void ctdb_reply_dmaster(struct ctdb_context *ctdb, struct ctdb_req_header *hdr);void ctdb_reply_call(struct ctdb_context *ctdb, struct ctdb_req_header *hdr);void ctdb_reply_error(struct ctdb_context *ctdb, struct ctdb_req_header *hdr);uint32_t ctdb_lmaster(struct ctdb_context *ctdb, const TDB_DATA *key);int ctdb_ltdb_fetch(struct ctdb_db_context *ctdb_db, 		    TDB_DATA key, struct ctdb_ltdb_header *header, 		    TALLOC_CTX *mem_ctx, TDB_DATA *data);int ctdb_ltdb_store(struct ctdb_db_context *ctdb_db, TDB_DATA key, 		    struct ctdb_ltdb_header *header, TDB_DATA data);void ctdb_queue_packet(struct ctdb_context *ctdb, struct ctdb_req_header *hdr);int ctdb_ltdb_lock_requeue(struct ctdb_db_context *ctdb_db, 			   TDB_DATA key, struct ctdb_req_header *hdr,			   void (*recv_pkt)(void *, struct ctdb_req_header *),			   void *recv_context, bool ignore_generation);int ctdb_ltdb_lock_fetch_requeue(struct ctdb_db_context *ctdb_db, 				 TDB_DATA key, struct ctdb_ltdb_header *header, 				 struct ctdb_req_header *hdr, TDB_DATA *data,				 void (*recv_pkt)(void *, struct ctdb_req_header *),				 void *recv_context, bool ignore_generation);void ctdb_input_pkt(struct ctdb_context *ctdb, struct ctdb_req_header *);struct ctdb_call_state *ctdb_call_local_send(struct ctdb_db_context *ctdb_db, 					     struct ctdb_call *call,					     struct ctdb_ltdb_header *header,					     TDB_DATA *data);int ctdbd_start(struct ctdb_context *ctdb);struct ctdb_call_state *ctdbd_call_send(struct ctdb_db_context *ctdb_db, struct ctdb_call *call);int ctdbd_call_recv(struct ctdb_call_state *state, struct ctdb_call *call);/*  queue a packet for sending*/int ctdb_queue_send(struct ctdb_queue *queue, uint8_t *data, uint32_t length);/*  setup the fd used by the queue */int ctdb_queue_set_fd(struct ctdb_queue *queue, int fd);/*  setup a packet queue on a socket */struct ctdb_queue *ctdb_queue_setup(struct ctdb_context *ctdb,				    TALLOC_CTX *mem_ctx, int fd, int alignment,				    				    ctdb_queue_cb_fn_t callback,				    void *private_data);/*

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -