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