OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [linux/] [dlm_device.h] - Blame information for rev 82

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.