blob: 5dc3a67d353d11917da7199475dabbe080f3fdc4 [file] [log] [blame]
Christopher Ferris25981132017-11-14 16:53:49 -08001/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
Ben Cheng30692c62013-10-15 18:26:18 -07002/*
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>
Christopher Ferris25981132017-11-14 16:53:49 -080014#include <linux/dlmconstants.h>
Ben Cheng30692c62013-10-15 18:26:18 -070015
16enum {
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
24struct 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
40enum {
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
49enum {
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 */