Initial import of binutils 2.22 on the new vendor branch
[dragonfly.git] / contrib / lvm2 / dist / libdm / ioctl / libdm-targets.h
1 /*      $NetBSD: libdm-targets.h,v 1.1.1.2 2009/12/02 00:26:11 haad Exp $       */
2
3 /*
4  * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
5  * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
6  *
7  * This file is part of the device-mapper userspace tools.
8  *
9  * This copyrighted material is made available to anyone wishing to use,
10  * modify, copy, or redistribute it subject to the terms and conditions
11  * of the GNU Lesser General Public License v.2.1.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this program; if not, write to the Free Software Foundation,
15  * Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16  */
17
18 #ifndef LIB_DMTARGETS_H
19 #define LIB_DMTARGETS_H
20
21 #include <inttypes.h>
22 #include <sys/types.h>
23
24 struct dm_ioctl;
25 struct dm_ioctl_v1;
26
27 struct target {
28         uint64_t start;
29         uint64_t length;
30         char *type;
31         char *params;
32
33         struct target *next;
34 };
35
36 struct dm_task {
37         int type;
38         char *dev_name;
39
40         struct target *head, *tail;
41
42         int read_only;
43         uint32_t event_nr;
44         int major;
45         int minor;
46         int allow_default_major_fallback;
47         uid_t uid;
48         gid_t gid;
49         mode_t mode;
50         uint32_t read_ahead;
51         uint32_t read_ahead_flags;
52         union {
53                 struct dm_ioctl *v4;
54                 struct dm_ioctl_v1 *v1;
55         } dmi;
56         char *newname;
57         char *message;
58         char *geometry;
59         uint64_t sector;
60         int no_flush;
61         int no_open_count;
62         int skip_lockfs;
63         int query_inactive_table;
64         int suppress_identical_reload;
65         uint64_t existing_table_size;
66         int cookie_set;
67
68         char *uuid;
69 };
70
71 struct cmd_data {
72         const char *name;
73         const int cmd;
74         const int version[3];
75 };
76
77 int dm_check_version(void);
78 uint64_t dm_task_get_existing_table_size(struct dm_task *dmt);
79
80 #endif