1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /*
3  * Copyright (C) 2007 Red Hat, Inc.  All rights reserved.
4  *
5  * This copyrighted material is made available to anyone wishing to use,
6  * modify, copy, or redistribute it subject to the terms and conditions
7  * of the GNU General Public License v.2.
8  */
9 
10 #ifndef _DLM_NETLINK_H
11 #define _DLM_NETLINK_H
12 
13 #include <linux/types.h>
14 #include <linux/dlmconstants.h>
15 
16 enum {
17 	DLM_STATUS_WAITING = 1,
18 	DLM_STATUS_GRANTED = 2,
19 	DLM_STATUS_CONVERT = 3,
20 };
21 
22 #define DLM_LOCK_DATA_VERSION 1
23 
24 struct dlm_lock_data {
25 	__u16 version;
26 	__u32 lockspace_id;
27 	int nodeid;
28 	int ownpid;
29 	__u32 id;
30 	__u32 remid;
31 	__u64 xid;
32 	__s8 status;
33 	__s8 grmode;
34 	__s8 rqmode;
35 	unsigned long timestamp;
36 	int resource_namelen;
37 	char resource_name[DLM_RESNAME_MAXLEN];
38 };
39 
40 enum {
41 	DLM_CMD_UNSPEC = 0,
42 	DLM_CMD_HELLO,		/* user->kernel */
43 	DLM_CMD_TIMEOUT,	/* kernel->user */
44 	__DLM_CMD_MAX,
45 };
46 
47 #define DLM_CMD_MAX (__DLM_CMD_MAX - 1)
48 
49 enum {
50 	DLM_TYPE_UNSPEC = 0,
51 	DLM_TYPE_LOCK,
52 	__DLM_TYPE_MAX,
53 };
54 
55 #define DLM_TYPE_MAX (__DLM_TYPE_MAX - 1)
56 
57 #define DLM_GENL_VERSION 0x1
58 #define DLM_GENL_NAME "DLM"
59 
60 #endif /* _DLM_NETLINK_H */
61