Commit 6a5ab894 authored by Kitware Robot's avatar Kitware Robot Committed by Brad King
Browse files

KWSys 2014-12-16 (cc4046a8)

Extract upstream KWSys using the following shell commands.

$ git archive --prefix=upstream-kwsys/ cc4046a8 | tar x
$ git shortlog --no-merges --abbrev=8 --format='%h %s' dec9c30b..cc4046a8
Brad King (2):
      9c3eacf8 Add CONTRIBUTING.rst file with instructions to contribute
      cc4046a8 Directory: Work around PGI problem with Linux Large File Support

Jean-Christophe Fillion-Robin (2):
      c38ba638 SystemInformation: Improve Get(Available/Total)VirtualMemory for windows
      58308145 SystemInformation: Improve comments in private implementation

Change-Id: Ic033444a9c03a8a8b5195e7dac108af2aec79fa6
parent c5fcbe00
Contributing to KWSys
KWSys is kept in its own Git repository and shared by several projects
via copies in their source trees. Changes to KWSys should not be made
directly in a host project, except perhaps in maintenance branches.
Please visit
to contribute changes directly to KWSys upstream. Once changes are
reviewed, tested, and integrated there then the copies of KWSys within
dependent projects can be updated to get the changes.
KWSys has no independent issue tracker. After encountering an issue
(bug) please try to submit a patch using the above instructions.
Otherwise please report the issue to the tracker for the project that
hosts the copy of KWSys in which the problem was found.
We do not require any formal copyright assignment or contributor license
agreement. Any contributions intentionally sent upstream are presumed
to be offerred under terms of the OSI-approved BSD 3-clause License.
See `Copyright.txt`_ for details.
.. _`Copyright.txt`: Copyright.txt
......@@ -203,13 +203,18 @@ unsigned long Directory::GetNumberOfFilesInDirectory(const kwsys_stl::string& na
#include <sys/types.h>
#include <dirent.h>
/* There is a problem with the Portland compiler, large file
support and glibc/Linux system headers:
#if defined(__PGI) && defined(__USE_FILE_OFFSET64)
# define dirent dirent64
// PGI with glibc has trouble with dirent and large file support:
// p=1992&sid=f16167f51964f1a68fe5041b8eb213b6
// Work around the problem by mapping dirent the same way as readdir.
#if defined(__PGI) && defined(__GLIBC__)
# define kwsys_dirent_readdir dirent
# define kwsys_dirent_readdir64 dirent64
# define kwsys_dirent kwsys_dirent_lookup(readdir)
# define kwsys_dirent_lookup(x) kwsys_dirent_lookup_delay(x)
# define kwsys_dirent_lookup_delay(x) kwsys_dirent_##x
# define kwsys_dirent dirent
......@@ -226,7 +231,7 @@ bool Directory::Load(const kwsys_stl::string& name)
return 0;
for (dirent* d = readdir(dir); d; d = readdir(dir) )
for (kwsys_dirent* d = readdir(dir); d; d = readdir(dir) )
......@@ -240,7 +245,7 @@ unsigned long Directory::GetNumberOfFilesInDirectory(const kwsys_stl::string& na
DIR* dir = opendir(name.c_str());
unsigned long count = 0;
for (dirent* d = readdir(dir); d; d = readdir(dir) )
for (kwsys_dirent* d = readdir(dir); d; d = readdir(dir) )
......@@ -8,3 +8,5 @@ details.
You are probably reading this file in the source tree of a surrounding
project. In that case, see "../README.kwsys" for details of using
KWSys in your project.
See CONTRIBUTING.rst for instructions to contribute KWSys changes.
......@@ -443,7 +443,7 @@ public:
// Functions.
// For windows
bool RetrieveCPUFeatures();
bool RetrieveCPUIdentity();
bool RetrieveCPUCacheDetails();
......@@ -457,6 +457,7 @@ protected:
bool RetrieveClassicalCPUIdentity();
bool RetrieveExtendedCPUIdentity();
// Processor information
Manufacturer ChipManufacturer;
CPUFeatures Features;
ID ChipID;
......@@ -464,11 +465,11 @@ protected:
unsigned int NumberOfLogicalCPU;
unsigned int NumberOfPhysicalCPU;
int CPUCount();
int CPUCount(); // For windows
unsigned char LogicalCPUPerPhysicalCPU();
unsigned char GetAPICId();
unsigned char GetAPICId(); // For windows
bool IsHyperThreadingSupported();
static LongLong GetCyclesDifference(DELAY_FUNC, unsigned int);
static LongLong GetCyclesDifference(DELAY_FUNC, unsigned int); // For windows
// For Linux and Cygwin, /proc/cpuinfo formats are slightly different
bool RetreiveInformationFromCpuInfoFile();
......@@ -3753,9 +3754,9 @@ bool SystemInformationImplementation::QueryWindowsMemory()
# define MEM_VAL(value) ull##value
# endif
tv = ms.MEM_VAL(TotalVirtual);
tv = ms.MEM_VAL(TotalPageFile);
tp = ms.MEM_VAL(TotalPhys);
av = ms.MEM_VAL(AvailVirtual);
av = ms.MEM_VAL(AvailPageFile);
ap = ms.MEM_VAL(AvailPhys);
this->TotalVirtualMemory = tv>>10>>10;
this->TotalPhysicalMemory = tp>>10>>10;
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment