Blame view

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