#ifndef __DLM_INTERNAL_DOT_H__
#define __DLM_INTERNAL_DOT_H__
#include <uapi/linux/dlm_device.h>
#include <linux/slab.h>
#include <linux/sched.h>
#include <linux/types.h>
#include <linux/ctype.h>
#include <linux/spinlock.h>
#include <linux/vmalloc.h>
#include <linux/list.h>
#include <linux/errno.h>
#include <linux/random.h>
#include <linux/delay.h>
#include <linux/socket.h>
#include <linux/kthread.h>
#include <linux/kobject.h>
#include <linux/kref.h>
#include <linux/kernel.h>
#include <linux/jhash.h>
#include <linux/miscdevice.h>
#include <linux/rhashtable.h>
#include <linux/mutex.h>
#include <linux/xarray.h>
#include <linux/ratelimit.h>
#include <linux/uaccess.h>
#include <linux/dlm.h>
#include "config.h"
struct dlm_ls;
struct dlm_lkb;
struct dlm_rsb;
struct dlm_member;
struct dlm_rsbtable;
struct dlm_recover;
struct dlm_header;
struct dlm_message;
struct dlm_rcom;
struct dlm_mhandle;
struct dlm_msg;
#define log_print(fmt, args...) …
#define log_print_ratelimited(fmt, args...) …
#define log_error(ls, fmt, args...) …
#define log_rinfo(ls, fmt, args...) …
#define log_debug(ls, fmt, args...) …
#define log_limit(ls, fmt, args...) …
#define DLM_ASSERT(x, do) …
struct dlm_member { … };
struct dlm_recover { … };
struct dlm_args { … };
#define DLM_LKSTS_WAITING …
#define DLM_LKSTS_GRANTED …
#define DLM_LKSTS_CONVERT …
#define DLM_IFL_MSTCPY_BIT …
#define __DLM_IFL_MIN_BIT …
#define DLM_IFL_RESEND_BIT …
#define DLM_IFL_DEAD_BIT …
#define DLM_IFL_OVERLAP_UNLOCK_BIT …
#define DLM_IFL_OVERLAP_CANCEL_BIT …
#define DLM_IFL_ENDOFLIFE_BIT …
#define DLM_IFL_DEADLOCK_CANCEL_BIT …
#define __DLM_IFL_MAX_BIT …
#define DLM_DFL_USER_BIT …
#define __DLM_DFL_MIN_BIT …
#define DLM_DFL_ORPHAN_BIT …
#define __DLM_DFL_MAX_BIT …
#define DLM_CB_CAST …
#define DLM_CB_BAST …
struct dlm_user_args { … };
struct dlm_callback { … };
struct dlm_lkb { … };
struct dlm_rsb { … };
#define DLM_LU_RECOVER_DIR …
#define DLM_LU_RECOVER_MASTER …
#define DLM_LU_MATCH …
#define DLM_LU_ADD …
#define R_REQUEST …
#define R_RECEIVE_REQUEST …
#define R_RECEIVE_RECOVER …
enum rsb_flags { … };
static inline void rsb_set_flag(struct dlm_rsb *r, enum rsb_flags flag)
{ … }
static inline void rsb_clear_flag(struct dlm_rsb *r, enum rsb_flags flag)
{ … }
static inline int rsb_flag(struct dlm_rsb *r, enum rsb_flags flag)
{ … }
#define DLM_HEADER_MAJOR …
#define DLM_HEADER_MINOR …
#define DLM_VERSION_3_1 …
#define DLM_VERSION_3_2 …
#define DLM_HEADER_SLOTS …
#define DLM_MSG …
#define DLM_RCOM …
#define DLM_OPTS …
#define DLM_ACK …
#define DLM_FIN …
struct dlm_header { … };
#define DLM_MSG_REQUEST …
#define DLM_MSG_CONVERT …
#define DLM_MSG_UNLOCK …
#define DLM_MSG_CANCEL …
#define DLM_MSG_REQUEST_REPLY …
#define DLM_MSG_CONVERT_REPLY …
#define DLM_MSG_UNLOCK_REPLY …
#define DLM_MSG_CANCEL_REPLY …
#define DLM_MSG_GRANT …
#define DLM_MSG_BAST …
#define DLM_MSG_LOOKUP …
#define DLM_MSG_REMOVE …
#define DLM_MSG_LOOKUP_REPLY …
#define DLM_MSG_PURGE …
struct dlm_message { … };
#define DLM_RS_NODES …
#define DLM_RS_NODES_ALL …
#define DLM_RS_DIR …
#define DLM_RS_DIR_ALL …
#define DLM_RS_LOCKS …
#define DLM_RS_LOCKS_ALL …
#define DLM_RS_DONE …
#define DLM_RS_DONE_ALL …
#define DLM_RCOM_STATUS …
#define DLM_RCOM_NAMES …
#define DLM_RCOM_LOOKUP …
#define DLM_RCOM_LOCK …
#define DLM_RCOM_STATUS_REPLY …
#define DLM_RCOM_NAMES_REPLY …
#define DLM_RCOM_LOOKUP_REPLY …
#define DLM_RCOM_LOCK_REPLY …
struct dlm_rcom { … };
struct dlm_opt_header { … };
struct dlm_opts { … };
dlm_packet;
#define DLM_RSF_NEED_SLOTS …
struct rcom_status { … };
struct rcom_config { … };
struct rcom_slot { … };
struct rcom_lock { … };
struct dlm_ls { … };
#define LSFL_RECOVER_STOP …
#define LSFL_RECOVER_DOWN …
#define LSFL_RECOVER_LOCK …
#define LSFL_RECOVER_WORK …
#define LSFL_RUNNING …
#define LSFL_RCOM_READY …
#define LSFL_RCOM_WAIT …
#define LSFL_UEVENT_WAIT …
#define LSFL_CB_DELAY …
#define LSFL_NODIR …
#define LSFL_RECV_MSG_BLOCKED …
#define LSFL_FS …
#define LSFL_SOFTIRQ …
#define DLM_PROC_FLAGS_CLOSING …
#define DLM_PROC_FLAGS_COMPAT …
struct dlm_user_proc { … };
static inline int dlm_locking_stopped(struct dlm_ls *ls)
{ … }
static inline int dlm_recovery_stopped(struct dlm_ls *ls)
{ … }
static inline int dlm_no_directory(struct dlm_ls *ls)
{ … }
static inline uint32_t dlm_flags_val(const unsigned long *addr,
uint32_t min, uint32_t max)
{ … }
static inline uint32_t dlm_iflags_val(const struct dlm_lkb *lkb)
{ … }
static inline uint32_t dlm_dflags_val(const struct dlm_lkb *lkb)
{ … }
#define DLM_SBF_DEMOTED_BIT …
#define __DLM_SBF_MIN_BIT …
#define DLM_SBF_VALNOTVALID_BIT …
#define DLM_SBF_ALTMODE_BIT …
#define __DLM_SBF_MAX_BIT …
static inline uint32_t dlm_sbflags_val(const struct dlm_lkb *lkb)
{ … }
static inline void dlm_set_flags_val(unsigned long *addr, uint32_t val,
uint32_t min, uint32_t max)
{ … }
static inline void dlm_set_dflags_val(struct dlm_lkb *lkb, uint32_t val)
{ … }
static inline void dlm_set_sbflags_val(struct dlm_lkb *lkb, uint32_t val)
{ … }
int dlm_plock_init(void);
void dlm_plock_exit(void);
#ifdef CONFIG_DLM_DEBUG
void dlm_register_debugfs(void);
void dlm_unregister_debugfs(void);
void dlm_create_debug_file(struct dlm_ls *ls);
void dlm_delete_debug_file(struct dlm_ls *ls);
void *dlm_create_debug_comms_file(int nodeid, void *data);
void dlm_delete_debug_comms_file(void *ctx);
#else
static inline void dlm_register_debugfs(void) { }
static inline void dlm_unregister_debugfs(void) { }
static inline void dlm_create_debug_file(struct dlm_ls *ls) { }
static inline void dlm_delete_debug_file(struct dlm_ls *ls) { }
static inline void *dlm_create_debug_comms_file(int nodeid, void *data) { return NULL; }
static inline void dlm_delete_debug_comms_file(void *ctx) { }
#endif
#endif