12402211a8389282fd2942fad4511f02c0eeeffc5David Teigland/*
22402211a8389282fd2942fad4511f02c0eeeffc5David Teigland * Copyright (C) 2005-2008 Red Hat, Inc.  All rights reserved.
32402211a8389282fd2942fad4511f02c0eeeffc5David Teigland *
42402211a8389282fd2942fad4511f02c0eeeffc5David Teigland * This copyrighted material is made available to anyone wishing to use,
52402211a8389282fd2942fad4511f02c0eeeffc5David Teigland * modify, copy, or redistribute it subject to the terms and conditions
62402211a8389282fd2942fad4511f02c0eeeffc5David Teigland * of the GNU General Public License v.2.
72402211a8389282fd2942fad4511f02c0eeeffc5David Teigland */
82402211a8389282fd2942fad4511f02c0eeeffc5David Teigland
92402211a8389282fd2942fad4511f02c0eeeffc5David Teigland#ifndef __DLM_PLOCK_DOT_H__
102402211a8389282fd2942fad4511f02c0eeeffc5David Teigland#define __DLM_PLOCK_DOT_H__
112402211a8389282fd2942fad4511f02c0eeeffc5David Teigland
1237eb1f4c3320ed505fbe59a916635b2342c740e4Jaswinder Singh Rajput#include <linux/types.h>
1337eb1f4c3320ed505fbe59a916635b2342c740e4Jaswinder Singh Rajput
142402211a8389282fd2942fad4511f02c0eeeffc5David Teigland#define DLM_PLOCK_MISC_NAME		"dlm_plock"
152402211a8389282fd2942fad4511f02c0eeeffc5David Teigland
162402211a8389282fd2942fad4511f02c0eeeffc5David Teigland#define DLM_PLOCK_VERSION_MAJOR	1
17901025d2f3194b4868980c8ba80df4cc0aa1282cDavid Teigland#define DLM_PLOCK_VERSION_MINOR	2
182402211a8389282fd2942fad4511f02c0eeeffc5David Teigland#define DLM_PLOCK_VERSION_PATCH	0
192402211a8389282fd2942fad4511f02c0eeeffc5David Teigland
202402211a8389282fd2942fad4511f02c0eeeffc5David Teiglandenum {
212402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	DLM_PLOCK_OP_LOCK = 1,
222402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	DLM_PLOCK_OP_UNLOCK,
232402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	DLM_PLOCK_OP_GET,
242402211a8389282fd2942fad4511f02c0eeeffc5David Teigland};
252402211a8389282fd2942fad4511f02c0eeeffc5David Teigland
26901025d2f3194b4868980c8ba80df4cc0aa1282cDavid Teigland#define DLM_PLOCK_FL_CLOSE 1
27901025d2f3194b4868980c8ba80df4cc0aa1282cDavid Teigland
282402211a8389282fd2942fad4511f02c0eeeffc5David Teiglandstruct dlm_plock_info {
292402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__u32 version[3];
302402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__u8 optype;
312402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__u8 ex;
322402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__u8 wait;
33901025d2f3194b4868980c8ba80df4cc0aa1282cDavid Teigland	__u8 flags;
342402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__u32 pid;
352402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__s32 nodeid;
362402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__s32 rv;
372402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__u32 fsid;
382402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__u64 number;
392402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__u64 start;
402402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__u64 end;
412402211a8389282fd2942fad4511f02c0eeeffc5David Teigland	__u64 owner;
422402211a8389282fd2942fad4511f02c0eeeffc5David Teigland};
432402211a8389282fd2942fad4511f02c0eeeffc5David Teigland
442402211a8389282fd2942fad4511f02c0eeeffc5David Teigland#ifdef __KERNEL__
452402211a8389282fd2942fad4511f02c0eeeffc5David Teiglandint dlm_posix_lock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
462402211a8389282fd2942fad4511f02c0eeeffc5David Teigland		int cmd, struct file_lock *fl);
472402211a8389282fd2942fad4511f02c0eeeffc5David Teiglandint dlm_posix_unlock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
482402211a8389282fd2942fad4511f02c0eeeffc5David Teigland		struct file_lock *fl);
492402211a8389282fd2942fad4511f02c0eeeffc5David Teiglandint dlm_posix_get(dlm_lockspace_t *lockspace, u64 number, struct file *file,
502402211a8389282fd2942fad4511f02c0eeeffc5David Teigland		struct file_lock *fl);
512402211a8389282fd2942fad4511f02c0eeeffc5David Teigland#endif /* __KERNEL__ */
522402211a8389282fd2942fad4511f02c0eeeffc5David Teigland
532402211a8389282fd2942fad4511f02c0eeeffc5David Teigland#endif
542402211a8389282fd2942fad4511f02c0eeeffc5David Teigland
55