brintos

brintos / linux-shallow public Read only

0
0
Text · 2.5 KiB · e83954c Raw
110 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2/******************************************************************************3*******************************************************************************4**5**  Copyright (C) Sistina Software, Inc.  1997-2003  All rights reserved.6**  Copyright (C) 2004-2007 Red Hat, Inc.  All rights reserved.7**8**  This copyrighted material is made available to anyone wishing to use,9**  modify, copy, or redistribute it subject to the terms and conditions10**  of the GNU General Public License v.2.11**12*******************************************************************************13******************************************************************************/14 15#ifndef _LINUX_DLM_DEVICE_H16#define _LINUX_DLM_DEVICE_H17 18/* This is the device interface for dlm, most users will use a library19 * interface.20 */21 22#include <linux/dlm.h>23#include <linux/types.h>24 25#define DLM_USER_LVB_LEN	3226 27/* Version of the device interface */28#define DLM_DEVICE_VERSION_MAJOR 629#define DLM_DEVICE_VERSION_MINOR 030#define DLM_DEVICE_VERSION_PATCH 231 32/* struct passed to the lock write */33struct dlm_lock_params {34	__u8 mode;35	__u8 namelen;36	__u16 unused;37	__u32 flags;38	__u32 lkid;39	__u32 parent;40	__u64 xid;41	__u64 timeout;42	void __user *castparam;43	void __user *castaddr;44	void __user *bastparam;45	void __user *bastaddr;46	struct dlm_lksb __user *lksb;47	char lvb[DLM_USER_LVB_LEN];48	char name[];49};50 51struct dlm_lspace_params {52	__u32 flags;53	__u32 minor;54	char name[];55};56 57struct dlm_purge_params {58	__u32 nodeid;59	__u32 pid;60};61 62struct dlm_write_request {63	__u32 version[3];64	__u8 cmd;65	__u8 is64bit;66	__u8 unused[2];67 68	union  {69		struct dlm_lock_params   lock;70		struct dlm_lspace_params lspace;71		struct dlm_purge_params  purge;72	} i;73};74 75struct dlm_device_version {76	__u32 version[3];77};78 79/* struct read from the "device" fd,80   consists mainly of userspace pointers for the library to use */81 82struct dlm_lock_result {83	__u32 version[3];84	__u32 length;85	void __user * user_astaddr;86	void __user * user_astparam;87	struct dlm_lksb __user * user_lksb;88	struct dlm_lksb lksb;89	__u8 bast_mode;90	__u8 unused[3];91	/* Offsets may be zero if no data is present */92	__u32 lvb_offset;93};94 95/* Commands passed to the device */96#define DLM_USER_LOCK         197#define DLM_USER_UNLOCK       298#define DLM_USER_QUERY        399#define DLM_USER_CREATE_LOCKSPACE  4100#define DLM_USER_REMOVE_LOCKSPACE  5101#define DLM_USER_PURGE        6102#define DLM_USER_DEADLOCK     7103 104/* Lockspace flags */105#define DLM_USER_LSFLG_AUTOFREE   1106#define DLM_USER_LSFLG_FORCEFREE  2107 108#endif109 110