Thomas Gleixner | 2522fe4 | 2019-05-28 09:57:20 -0700 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 2 | /****************************************************************************** |
| 3 | ******************************************************************************* |
| 4 | ** |
| 5 | ** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. |
Christine Caulfield | 391fbdc | 2009-05-07 10:54:16 -0500 | [diff] [blame] | 6 | ** Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved. |
David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 7 | ** |
David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 8 | ** |
| 9 | ******************************************************************************* |
| 10 | ******************************************************************************/ |
| 11 | |
| 12 | #ifndef __LOWCOMMS_DOT_H__ |
| 13 | #define __LOWCOMMS_DOT_H__ |
| 14 | |
Alexander Aring | 489d8e5 | 2021-05-21 15:08:46 -0400 | [diff] [blame] | 15 | #include "dlm_internal.h" |
| 16 | |
| 17 | #define DLM_MIDCOMMS_OPT_LEN sizeof(struct dlm_opts) |
Alexander Aring | d10a0b8 | 2021-06-02 09:45:20 -0400 | [diff] [blame] | 18 | #define DLM_MAX_APP_BUFSIZE (DLM_MAX_SOCKET_BUFSIZE - \ |
Alexander Aring | 489d8e5 | 2021-05-21 15:08:46 -0400 | [diff] [blame] | 19 | DLM_MIDCOMMS_OPT_LEN) |
| 20 | |
Alexander Aring | 37a247d | 2021-05-21 15:08:44 -0400 | [diff] [blame] | 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 | } |
Alexander Aring | 9f8f9c7 | 2020-11-02 20:04:17 -0500 | [diff] [blame] | 31 | |
Alexander Aring | 5174616 | 2021-03-01 17:05:13 -0500 | [diff] [blame] | 32 | /* switch to check if dlm is running */ |
| 33 | extern int dlm_allow_conn; |
| 34 | |
David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 35 | int dlm_lowcomms_start(void); |
Alexander Aring | 9d23246 | 2021-03-01 17:05:20 -0500 | [diff] [blame] | 36 | void dlm_lowcomms_shutdown(void); |
David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 37 | void dlm_lowcomms_stop(void); |
David Teigland | 36b71a8 | 2012-07-26 12:44:30 -0500 | [diff] [blame] | 38 | void dlm_lowcomms_exit(void); |
David Teigland | 1c032c0 | 2006-04-28 10:50:41 -0400 | [diff] [blame] | 39 | int dlm_lowcomms_close(int nodeid); |
Alexander Aring | 8f2dc78 | 2021-05-21 15:08:42 -0400 | [diff] [blame] | 40 | struct dlm_msg *dlm_lowcomms_new_msg(int nodeid, int len, gfp_t allocation, |
| 41 | char **ppc, void (*cb)(struct dlm_mhandle *mh), |
| 42 | struct dlm_mhandle *mh); |
| 43 | void dlm_lowcomms_commit_msg(struct dlm_msg *msg); |
| 44 | void dlm_lowcomms_put_msg(struct dlm_msg *msg); |
Alexander Aring | 2874d1a | 2021-05-21 15:08:43 -0400 | [diff] [blame] | 45 | int dlm_lowcomms_resend_msg(struct dlm_msg *msg); |
Christine Caulfield | 391fbdc | 2009-05-07 10:54:16 -0500 | [diff] [blame] | 46 | int dlm_lowcomms_connect_node(int nodeid); |
Alexander Aring | e125fbe | 2021-03-01 17:05:09 -0500 | [diff] [blame] | 47 | int dlm_lowcomms_nodes_set_mark(int nodeid, unsigned int mark); |
David Teigland | 36b71a8 | 2012-07-26 12:44:30 -0500 | [diff] [blame] | 48 | int dlm_lowcomms_addr(int nodeid, struct sockaddr_storage *addr, int len); |
Alexander Aring | b97f852 | 2021-08-18 16:27:13 -0400 | [diff] [blame] | 49 | void dlm_midcomms_receive_done(int nodeid); |
David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 50 | |
| 51 | #endif /* __LOWCOMMS_DOT_H__ */ |
| 52 | |