linux/fs/dlm/lowcomms.h
<<
>>
Prefs
   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 */
  27static inline int nodeid_hash(int nodeid)
  28{
  29        return nodeid & (CONN_HASH_SIZE-1);
  30}
  31
  32/* switch to check if dlm is running */
  33extern int dlm_allow_conn;
  34
  35int dlm_lowcomms_start(void);
  36void dlm_lowcomms_shutdown(void);
  37void dlm_lowcomms_stop(void);
  38void dlm_lowcomms_exit(void);
  39int dlm_lowcomms_close(int nodeid);
  40struct 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);
  43void dlm_lowcomms_commit_msg(struct dlm_msg *msg);
  44void dlm_lowcomms_put_msg(struct dlm_msg *msg);
  45int dlm_lowcomms_resend_msg(struct dlm_msg *msg);
  46int dlm_lowcomms_connect_node(int nodeid);
  47int dlm_lowcomms_nodes_set_mark(int nodeid, unsigned int mark);
  48int dlm_lowcomms_addr(int nodeid, struct sockaddr_storage *addr, int len);
  49void dlm_midcomms_receive_done(int nodeid);
  50
  51#endif                          /* __LOWCOMMS_DOT_H__ */
  52
  53