Initial import of binutils 2.22 on the new vendor branch
[dragonfly.git] / contrib / lvm2 / dist / lib / filters / filter.h
1 /*      $NetBSD: filter.h,v 1.1.1.2 2009/12/02 00:26:46 haad Exp $      */
2
3 /*
4  * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
5  * Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
6  *
7  * This file is part of LVM2.
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 _LVM_FILTER_H
19 #define _LVM_FILTER_H
20
21 #include "config.h"
22
23 #include <sys/stat.h>
24
25 #ifdef linux
26 #  define MAJOR(dev)    ((dev & 0xfff00) >> 8)
27 #  define MINOR(dev)    ((dev & 0xff) | ((dev >> 12) & 0xfff00))
28 #  define MKDEV(ma,mi)  ((mi & 0xff) | (ma << 8) | ((mi & ~0xff) << 12))
29 #else
30 #  define MAJOR(x) major((x))
31 #  define MINOR(x) minor((x))
32 #  define MKDEV(x,y) makedev((x),(y))
33 #endif
34
35 struct dev_filter *lvm_type_filter_create(const char *proc,
36                                           const struct config_node *cn);
37
38 void lvm_type_filter_destroy(struct dev_filter *f);
39
40 int md_major(void);
41 int blkext_major(void);
42 int max_partitions(int major);
43
44 int dev_subsystem_part_major(const struct device *dev);
45 const char *dev_subsystem_name(const struct device *dev);
46
47 #endif