diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-22 10:38:37 -0500 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-22 10:38:37 -0500 |
commit | fcc9d2e5a6c89d22b8b773a64fb4ad21ac318446 (patch) | |
tree | a57612d1888735a2ec7972891b68c1ac5ec8faea /include/linux/dlm_device.h | |
parent | 8dea78da5cee153b8af9c07a2745f6c55057fe12 (diff) |
Diffstat (limited to 'include/linux/dlm_device.h')
-rw-r--r-- | include/linux/dlm_device.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/include/linux/dlm_device.h b/include/linux/dlm_device.h new file mode 100644 index 00000000000..3060783c419 --- /dev/null +++ b/include/linux/dlm_device.h | |||
@@ -0,0 +1,108 @@ | |||
1 | /****************************************************************************** | ||
2 | ******************************************************************************* | ||
3 | ** | ||
4 | ** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. | ||
5 | ** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. | ||
6 | ** | ||
7 | ** This copyrighted material is made available to anyone wishing to use, | ||
8 | ** modify, copy, or redistribute it subject to the terms and conditions | ||
9 | ** of the GNU General Public License v.2. | ||
10 | ** | ||
11 | ******************************************************************************* | ||
12 | ******************************************************************************/ | ||
13 | |||
14 | #ifndef _LINUX_DLM_DEVICE_H | ||
15 | #define _LINUX_DLM_DEVICE_H | ||
16 | |||
17 | /* This is the device interface for dlm, most users will use a library | ||
18 | * interface. | ||
19 | */ | ||
20 | |||
21 | #include <linux/dlm.h> | ||
22 | #include <linux/types.h> | ||
23 | |||
24 | #define DLM_USER_LVB_LEN 32 | ||
25 | |||
26 | /* Version of the device interface */ | ||
27 | #define DLM_DEVICE_VERSION_MAJOR 6 | ||
28 | #define DLM_DEVICE_VERSION_MINOR 0 | ||
29 | #define DLM_DEVICE_VERSION_PATCH 1 | ||
30 | |||
31 | /* struct passed to the lock write */ | ||
32 | struct dlm_lock_params { | ||
33 | __u8 mode; | ||
34 | __u8 namelen; | ||
35 | __u16 unused; | ||
36 | __u32 flags; | ||
37 | __u32 lkid; | ||
38 | __u32 parent; | ||
39 | __u64 xid; | ||
40 | __u64 timeout; | ||
41 | void __user *castparam; | ||
42 | void __user *castaddr; | ||
43 | void __user *bastparam; | ||
44 | void __user *bastaddr; | ||
45 | struct dlm_lksb __user *lksb; | ||
46 | char lvb[DLM_USER_LVB_LEN]; | ||
47 | char name[0]; | ||
48 | }; | ||
49 | |||
50 | struct dlm_lspace_params { | ||
51 | __u32 flags; | ||
52 | __u32 minor; | ||
53 | char name[0]; | ||
54 | }; | ||
55 | |||
56 | struct dlm_purge_params { | ||
57 | __u32 nodeid; | ||
58 | __u32 pid; | ||
59 | }; | ||
60 | |||
61 | struct dlm_write_request { | ||
62 | __u32 version[3]; | ||
63 | __u8 cmd; | ||
64 | __u8 is64bit; | ||
65 | __u8 unused[2]; | ||
66 | |||
67 | union { | ||
68 | struct dlm_lock_params lock; | ||
69 | struct dlm_lspace_params lspace; | ||
70 | struct dlm_purge_params purge; | ||
71 | } i; | ||
72 | }; | ||
73 | |||
74 | struct dlm_device_version { | ||
75 | __u32 version[3]; | ||
76 | }; | ||
77 | |||
78 | /* struct read from the "device" fd, | ||
79 | consists mainly of userspace pointers for the library to use */ | ||
80 | |||
81 | struct dlm_lock_result { | ||
82 | __u32 version[3]; | ||
83 | __u32 length; | ||
84 | void __user * user_astaddr; | ||
85 | void __user * user_astparam; | ||
86 | struct dlm_lksb __user * user_lksb; | ||
87 | struct dlm_lksb lksb; | ||
88 | __u8 bast_mode; | ||
89 | __u8 unused[3]; | ||
90 | /* Offsets may be zero if no data is present */ | ||
91 | __u32 lvb_offset; | ||
92 | }; | ||
93 | |||
94 | /* Commands passed to the device */ | ||
95 | #define DLM_USER_LOCK 1 | ||
96 | #define DLM_USER_UNLOCK 2 | ||
97 | #define DLM_USER_QUERY 3 | ||
98 | #define DLM_USER_CREATE_LOCKSPACE 4 | ||
99 | #define DLM_USER_REMOVE_LOCKSPACE 5 | ||
100 | #define DLM_USER_PURGE 6 | ||
101 | #define DLM_USER_DEADLOCK 7 | ||
102 | |||
103 | /* Lockspace flags */ | ||
104 | #define DLM_USER_LSFLG_AUTOFREE 1 | ||
105 | #define DLM_USER_LSFLG_FORCEFREE 2 | ||
106 | |||
107 | #endif | ||
108 | |||