1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /****************************************************************************** |
3 | ******************************************************************************* |
4 | ** |
5 | ** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. |
6 | ** Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved. |
7 | ** |
8 | ** |
9 | ******************************************************************************* |
10 | ******************************************************************************/ |
11 | |
12 | #ifndef __LOWCOMMS_DOT_H__ |
13 | #define __LOWCOMMS_DOT_H__ |
14 | |
15 | #include "dlm_internal.h" |
16 | |
17 | #define DLM_MIDCOMMS_OPT_LEN sizeof(struct dlm_opts) |
18 | #define DLM_MAX_APP_BUFSIZE (DLM_MAX_SOCKET_BUFSIZE - \ |
19 | DLM_MIDCOMMS_OPT_LEN) |
20 | |
21 | #define CONN_HASH_SIZE 32 |
22 | |
23 | /* This is deliberately very simple because most clusters have simple |
24 | * sequential nodeids, so we should be able to go straight to a connection |
25 | * struct in the array |
26 | */ |
27 | static inline int nodeid_hash(int nodeid) |
28 | { |
29 | return nodeid & (CONN_HASH_SIZE-1); |
30 | } |
31 | |
32 | /* check if dlm is running */ |
33 | bool dlm_lowcomms_is_running(void); |
34 | |
35 | int dlm_lowcomms_start(void); |
36 | void dlm_lowcomms_shutdown(void); |
37 | void dlm_lowcomms_shutdown_node(int nodeid, bool force); |
38 | void dlm_lowcomms_stop(void); |
39 | void dlm_lowcomms_init(void); |
40 | void dlm_lowcomms_exit(void); |
41 | int dlm_lowcomms_close(int nodeid); |
42 | struct dlm_msg *dlm_lowcomms_new_msg(int nodeid, int len, gfp_t allocation, |
43 | char **ppc, void (*cb)(void *data), |
44 | void *data); |
45 | void dlm_lowcomms_commit_msg(struct dlm_msg *msg); |
46 | void dlm_lowcomms_put_msg(struct dlm_msg *msg); |
47 | int dlm_lowcomms_resend_msg(struct dlm_msg *msg); |
48 | int dlm_lowcomms_connect_node(int nodeid); |
49 | int dlm_lowcomms_nodes_set_mark(int nodeid, unsigned int mark); |
50 | int dlm_lowcomms_addr(int nodeid, struct sockaddr_storage *addr, int len); |
51 | void dlm_midcomms_receive_done(int nodeid); |
52 | struct kmem_cache *dlm_lowcomms_writequeue_cache_create(void); |
53 | struct kmem_cache *dlm_lowcomms_msg_cache_create(void); |
54 | |
55 | #endif /* __LOWCOMMS_DOT_H__ */ |
56 | |
57 | |