dlm_device.h
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014: #ifndef _LINUX_DLM_DEVICE_H
015: #define _LINUX_DLM_DEVICE_H
016:
017:
018:
019:
020:
021: #include <linux/dlm.h>
022: #include <linux/types.h>
023:
024: #define DLM_USER_LVB_LEN 32
025:
026:
027: #define DLM_DEVICE_VERSION_MAJOR 6
028: #define DLM_DEVICE_VERSION_MINOR 0
029: #define DLM_DEVICE_VERSION_PATCH 1
030:
031:
032: struct dlm_lock_params {
033: __u8 mode;
034: __u8 namelen;
035: __u16 unused;
036: __u32 flags;
037: __u32 lkid;
038: __u32 parent;
039: __u64 xid;
040: __u64 timeout;
041: void *castparam;
042: void *castaddr;
043: void *bastparam;
044: void *bastaddr;
045: struct dlm_lksb *lksb;
046: char lvb[DLM_USER_LVB_LEN];
047: char name[0];
048: };
049:
050: struct dlm_lspace_params {
051: __u32 flags;
052: __u32 minor;
053: char name[0];
054: };
055:
056: struct dlm_purge_params {
057: __u32 nodeid;
058: __u32 pid;
059: };
060:
061: struct dlm_write_request {
062: __u32 version[3];
063: __u8 cmd;
064: __u8 is64bit;
065: __u8 unused[2];
066:
067: union {
068: struct dlm_lock_params lock;
069: struct dlm_lspace_params lspace;
070: struct dlm_purge_params purge;
071: } i;
072: };
073:
074: struct dlm_device_version {
075: __u32 version[3];
076: };
077:
078:
079:
080:
081: struct dlm_lock_result {
082: __u32 version[3];
083: __u32 length;
084: void * user_astaddr;
085: void * user_astparam;
086: struct dlm_lksb * user_lksb;
087: struct dlm_lksb lksb;
088: __u8 bast_mode;
089: __u8 unused[3];
090:
091: __u32 lvb_offset;
092: };
093:
094:
095: #define DLM_USER_LOCK 1
096: #define DLM_USER_UNLOCK 2
097: #define DLM_USER_QUERY 3
098: #define DLM_USER_CREATE_LOCKSPACE 4
099: #define DLM_USER_REMOVE_LOCKSPACE 5
100: #define DLM_USER_PURGE 6
101: #define DLM_USER_DEADLOCK 7
102:
103:
104: #define DLM_USER_LSFLG_AUTOFREE 1
105: #define DLM_USER_LSFLG_FORCEFREE 2
106:
107: #endif
108:
109:
© Andrew Scott 2006 -
2025,
All Rights Reserved