2016-05-12 19:15:44 +03:00
/*
* Copyright ( C ) 2016 Red Hat , Inc .
*
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation ; either
* version 2.1 of the License , or ( at your option ) any later version .
*
* This library is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* Lesser General Public License for more details .
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library . If not , see
* < http : //www.gnu.org/licenses/>.
*/
# include <config.h>
2016-07-12 01:43:57 +03:00
# ifndef WIN32
2016-05-12 19:15:44 +03:00
2016-07-12 01:43:57 +03:00
# include "internal.h"
# include "virrandom.h"
# include "virmock.h"
# define VIR_FROM_THIS VIR_FROM_NONE
2016-05-12 19:15:44 +03:00
int
virRandomBytes ( unsigned char * buf ,
size_t buflen )
{
size_t i ;
for ( i = 0 ; i < buflen ; i + + )
buf [ i ] = i ;
return 0 ;
}
2016-06-16 09:54:27 +03:00
2018-08-02 14:32:07 +03:00
uint64_t virRandomBits ( int nbits )
{
/* Chosen by a fair roll of a 2^64 sided dice */
uint64_t ret = 0x0706050403020100 ;
if ( nbits < 64 )
ret & = ( ( 1ULL < < nbits ) - 1 ) ;
return ret ;
}
2016-06-16 09:54:27 +03:00
2017-01-24 18:49:23 +03:00
int virRandomGenerateWWN ( char * * wwn ,
2019-10-14 15:45:03 +03:00
const char * virt_type G_GNUC_UNUSED )
2017-01-24 18:49:23 +03:00
{
2019-10-22 16:26:14 +03:00
* wwn = g_strdup_printf ( " 5100000%09llx " ,
( unsigned long long ) virRandomBits ( 36 ) ) ;
return 0 ;
2017-01-24 18:49:23 +03:00
}
2016-07-12 01:43:57 +03:00
# else /* WIN32 */
/* Can't mock on WIN32 */
2016-06-16 09:54:27 +03:00
# endif