0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _LINUX_DLM_DEVICE_H
0016 #define _LINUX_DLM_DEVICE_H
0017
0018
0019
0020
0021
0022 #include <linux/dlm.h>
0023 #include <linux/types.h>
0024
0025 #define DLM_USER_LVB_LEN 32
0026
0027
0028 #define DLM_DEVICE_VERSION_MAJOR 6
0029 #define DLM_DEVICE_VERSION_MINOR 0
0030 #define DLM_DEVICE_VERSION_PATCH 2
0031
0032
0033 struct dlm_lock_params {
0034 __u8 mode;
0035 __u8 namelen;
0036 __u16 unused;
0037 __u32 flags;
0038 __u32 lkid;
0039 __u32 parent;
0040 __u64 xid;
0041 __u64 timeout;
0042 void __user *castparam;
0043 void __user *castaddr;
0044 void __user *bastparam;
0045 void __user *bastaddr;
0046 struct dlm_lksb __user *lksb;
0047 char lvb[DLM_USER_LVB_LEN];
0048 char name[];
0049 };
0050
0051 struct dlm_lspace_params {
0052 __u32 flags;
0053 __u32 minor;
0054 char name[];
0055 };
0056
0057 struct dlm_purge_params {
0058 __u32 nodeid;
0059 __u32 pid;
0060 };
0061
0062 struct dlm_write_request {
0063 __u32 version[3];
0064 __u8 cmd;
0065 __u8 is64bit;
0066 __u8 unused[2];
0067
0068 union {
0069 struct dlm_lock_params lock;
0070 struct dlm_lspace_params lspace;
0071 struct dlm_purge_params purge;
0072 } i;
0073 };
0074
0075 struct dlm_device_version {
0076 __u32 version[3];
0077 };
0078
0079
0080
0081
0082 struct dlm_lock_result {
0083 __u32 version[3];
0084 __u32 length;
0085 void __user * user_astaddr;
0086 void __user * user_astparam;
0087 struct dlm_lksb __user * user_lksb;
0088 struct dlm_lksb lksb;
0089 __u8 bast_mode;
0090 __u8 unused[3];
0091
0092 __u32 lvb_offset;
0093 };
0094
0095
0096 #define DLM_USER_LOCK 1
0097 #define DLM_USER_UNLOCK 2
0098 #define DLM_USER_QUERY 3
0099 #define DLM_USER_CREATE_LOCKSPACE 4
0100 #define DLM_USER_REMOVE_LOCKSPACE 5
0101 #define DLM_USER_PURGE 6
0102 #define DLM_USER_DEADLOCK 7
0103
0104
0105 #define DLM_USER_LSFLG_AUTOFREE 1
0106 #define DLM_USER_LSFLG_FORCEFREE 2
0107
0108 #endif
0109