2019-05-28 19:57:20 +03:00
/* SPDX-License-Identifier: GPL-2.0-only */
2006-01-18 12:30:29 +03:00
/******************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* * Copyright ( C ) Sistina Software , Inc . 1997 - 2003 All rights reserved .
2009-05-07 19:54:16 +04:00
* * Copyright ( C ) 2004 - 2009 Red Hat , Inc . All rights reserved .
2006-01-18 12:30:29 +03:00
* *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifndef __LOWCOMMS_DOT_H__
# define __LOWCOMMS_DOT_H__
2021-05-21 22:08:46 +03:00
# include "dlm_internal.h"
# define DLM_MIDCOMMS_OPT_LEN sizeof(struct dlm_opts)
2021-06-02 16:45:20 +03:00
# define DLM_MAX_APP_BUFSIZE (DLM_MAX_SOCKET_BUFSIZE - \
2021-05-21 22:08:46 +03:00
DLM_MIDCOMMS_OPT_LEN )
2021-05-21 22:08:44 +03:00
# define CONN_HASH_SIZE 32
/* This is deliberately very simple because most clusters have simple
* sequential nodeids , so we should be able to go straight to a connection
* struct in the array
*/
static inline int nodeid_hash ( int nodeid )
{
return nodeid & ( CONN_HASH_SIZE - 1 ) ;
}
2020-11-03 04:04:17 +03:00
2021-03-02 01:05:13 +03:00
/* switch to check if dlm is running */
extern int dlm_allow_conn ;
2006-01-18 12:30:29 +03:00
int dlm_lowcomms_start ( void ) ;
2021-03-02 01:05:20 +03:00
void dlm_lowcomms_shutdown ( void ) ;
2006-01-18 12:30:29 +03:00
void dlm_lowcomms_stop ( void ) ;
2012-07-26 21:44:30 +04:00
void dlm_lowcomms_exit ( void ) ;
2006-04-28 18:50:41 +04:00
int dlm_lowcomms_close ( int nodeid ) ;
2021-05-21 22:08:42 +03:00
struct dlm_msg * dlm_lowcomms_new_msg ( int nodeid , int len , gfp_t allocation ,
2021-11-02 22:17:19 +03:00
char * * ppc , void ( * cb ) ( void * data ) ,
void * data ) ;
2021-05-21 22:08:42 +03:00
void dlm_lowcomms_commit_msg ( struct dlm_msg * msg ) ;
void dlm_lowcomms_put_msg ( struct dlm_msg * msg ) ;
2021-05-21 22:08:43 +03:00
int dlm_lowcomms_resend_msg ( struct dlm_msg * msg ) ;
2009-05-07 19:54:16 +04:00
int dlm_lowcomms_connect_node ( int nodeid ) ;
2021-03-02 01:05:09 +03:00
int dlm_lowcomms_nodes_set_mark ( int nodeid , unsigned int mark ) ;
2012-07-26 21:44:30 +04:00
int dlm_lowcomms_addr ( int nodeid , struct sockaddr_storage * addr , int len ) ;
2021-08-18 23:27:13 +03:00
void dlm_midcomms_receive_done ( int nodeid ) ;
2021-11-30 22:47:19 +03:00
struct kmem_cache * dlm_lowcomms_writequeue_cache_create ( void ) ;
2021-11-30 22:47:20 +03:00
struct kmem_cache * dlm_lowcomms_msg_cache_create ( void ) ;
2006-01-18 12:30:29 +03:00
# endif /* __LOWCOMMS_DOT_H__ */