1 //===-- Process.cpp - Implement OS Process Concept --------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This header file implements the operating system Process concept. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #include "llvm/Support/Process.h" 15 #include "llvm/Config/config.h" 16 17 namespace llvm { 18 using namespace sys; 19 20 //===----------------------------------------------------------------------===// 21 //=== WARNING: Implementation here must contain only TRULY operating system 22 //=== independent code. 23 //===----------------------------------------------------------------------===// 24 25 unsigned llvm::sys::Process::GetRandomNumber() { 26 #if defined(HAVE_ARC4RANDOM) 27 return arc4random(); 28 #else 29 static int x = (::srand(::time(NULL)), 0); 30 return rand(); 31 #endif 32 } 33 34 } 35 36 // Include the platform-specific parts of this class. 37 #ifdef LLVM_ON_UNIX 38 #include "Unix/Process.inc" 39 #endif 40 #ifdef LLVM_ON_WIN32 41 #include "Windows/Process.inc" 42 #endif 43