2005-10-16 18:33:22 +04:00
/*
* Copyright ( C ) 2001 - 2004 Sistina Software , Inc . All rights reserved .
* Copyright ( C ) 2004 - 2005 Red Hat , Inc . All rights reserved .
*
* This file is part of the device - mapper userspace tools .
*
* This copyrighted material is made available to anyone wishing to use ,
* modify , copy , or redistribute it subject to the terms and conditions
2007-08-21 20:26:07 +04:00
* of the GNU Lesser General Public License v .2 .1 .
2005-10-16 18:33:22 +04:00
*
2007-08-21 20:26:07 +04:00
* You should have received a copy of the GNU Lesser General Public License
2005-10-16 18:33:22 +04:00
* along with this program ; if not , write to the Free Software Foundation ,
* Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*/
2008-11-03 21:59:59 +03:00
# include "dmlib.h"
2005-10-16 18:33:22 +04:00
# ifdef DEBUG_POOL
# include "pool-debug.c"
# else
# include "pool-fast.c"
# endif
2005-10-17 02:57:20 +04:00
char * dm_pool_strdup ( struct dm_pool * p , const char * str )
2005-10-16 18:33:22 +04:00
{
2005-10-17 02:57:20 +04:00
char * ret = dm_pool_alloc ( p , strlen ( str ) + 1 ) ;
2005-10-16 18:33:22 +04:00
if ( ret )
strcpy ( ret , str ) ;
return ret ;
}
2005-10-17 02:57:20 +04:00
char * dm_pool_strndup ( struct dm_pool * p , const char * str , size_t n )
2005-10-16 18:33:22 +04:00
{
2005-10-17 02:57:20 +04:00
char * ret = dm_pool_alloc ( p , n + 1 ) ;
2005-10-16 18:33:22 +04:00
if ( ret ) {
strncpy ( ret , str , n ) ;
ret [ n ] = ' \0 ' ;
}
return ret ;
}
2005-10-17 02:57:20 +04:00
void * dm_pool_zalloc ( struct dm_pool * p , size_t s )
2005-10-16 18:33:22 +04:00
{
2005-10-17 02:57:20 +04:00
void * ptr = dm_pool_alloc ( p , s ) ;
2005-10-16 18:33:22 +04:00
if ( ptr )
memset ( ptr , 0 , s ) ;
return ptr ;
}