1 //===- System.inc ---------------------------------------------------------===// 2 // 3 // The MCLinker Project 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 #include <string> 10 11 #include <cstdlib> 12 #include <cstring> 13 #include <fcntl.h> 14 #include <sys/types.h> 15 #include <sys/stat.h> 16 #include <windows.h> 17 18 namespace mcld { 19 namespace sys { 20 21 char* strerror(int errnum) { 22 return std::strerror(errnum); 23 } 24 25 std::string getDefaultTargetTriple() { 26 return MCLD_DEFAULT_TARGET_TRIPLE; 27 } 28 29 int GetPageSize() { 30 static int _pagesize = 0; 31 if (!_pagesize) { 32 SYSTEM_INFO sysinfo; 33 GetSystemInfo(&sysinfo); 34 _pagesize = sysinfo.dwPageSize; 35 } 36 return _pagesize; 37 } 38 39 /// random - generate a random number. 40 long GetRandomNum() { 41 return ::rand(); 42 } 43 44 /// srandom - set the initial seed value for future calls to random(). 45 void SetRandomSeed(unsigned pSeed) { 46 ::srand(pSeed); 47 } 48 49 } // namespace sys 50 } // namespace mcld 51