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