2001-11-05 19:41:38 +03:00
/*
2004-03-30 23:35:44 +04:00
* Copyright ( C ) 2001 - 2004 Sistina Software , Inc . All rights reserved .
* Copyright ( C ) 2004 Red Hat , Inc . All rights reserved .
2001-11-05 19:41:38 +03:00
*
2004-03-30 23:35:44 +04:00
* This file is part of LVM2 .
*
* This copyrighted material is made available to anyone wishing to use ,
* modify , copy , or redistribute it subject to the terms and conditions
* of the GNU General Public License v .2 .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software Foundation ,
* Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
2001-11-05 19:41:38 +03:00
*/
# ifndef _LVM_PV_MAP_H
# define _LVM_PV_MAP_H
# include "metadata.h"
# include "bitset.h"
# include "pool.h"
/*
* The in core rep . only stores a mapping from
* logical extents to physical extents against an
* lv . Sometimes , when allocating a new lv for
* instance , it is useful to have the inverse
* mapping available .
*/
struct pv_area {
2001-11-29 21:45:35 +03:00
struct pv_map * map ;
2001-11-05 19:41:38 +03:00
uint32_t start ;
uint32_t count ;
struct list list ;
} ;
struct pv_map {
2003-04-25 02:23:24 +04:00
struct pv_list * pvl ;
2001-11-05 19:41:38 +03:00
bitset_t allocated_extents ;
struct list areas ;
struct list list ;
} ;
2001-11-06 14:19:33 +03:00
struct list * create_pv_maps ( struct pool * mem ,
struct volume_group * vg , struct list * pvs ) ;
2001-11-05 19:41:38 +03:00
2001-11-29 21:45:35 +03:00
void consume_pv_area ( struct pv_area * area , uint32_t to_go ) ;
2001-11-05 19:41:38 +03:00
# endif