Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /******************************************************************************
  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 
104 
  This page was automatically generated by the LXR engine.