mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.5 KiB
109 lines
2.5 KiB
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
|
/****************************************************************************** |
|
******************************************************************************* |
|
** |
|
** 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 |
|
|
|
|