1/* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#include "dm_random.h" 17 18#include <random> 19 20#if defined(__LITEOS_M__) 21#include <time.h> 22#endif 23 24namespace OHOS { 25namespace DistributedHardware { 26int32_t GenRandInt(int32_t randMin, int32_t randMax) 27{ 28#if defined(__LITEOS_M__) 29 srandom(time(NULL)); 30 return (randMin + random() % (randMax - randMin)); 31#else 32 std::random_device randDevice; 33 std::mt19937 genRand(randDevice()); 34 std::uniform_int_distribution<int> disRand(randMin, randMax); 35 return disRand(genRand); 36#endif 37} 38 39int64_t GenRandLongLong(int64_t randMin, int64_t randMax) 40{ 41 std::random_device randDevice; 42 std::mt19937 genRand(randDevice()); 43 std::uniform_int_distribution<long long> disRand(randMin, randMax); 44 return disRand(genRand); 45} 46} // namespace DistributedHardware 47} // namespace OHOS 48