diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2017-03-27 14:57:42 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2017-05-03 11:58:15 +0000 |
commit | 5bb21b5fcd43ae929155249501bb3a58e129b64f (patch) | |
tree | f471852817bf5367feb9b6c394f056484ce7a4c1 /libgnu | |
parent | 1844ecdb7752237df3db1f7996696c3b971485dc (diff) |
Add sysconf replacement for win32
Change-Id: Ib99482a2aed2a27920824ee308a7cdd05f678080
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'libgnu')
-rw-r--r-- | libgnu/Makefile.am | 8 | ||||
-rw-r--r-- | libgnu/sysconf_win32.c | 42 |
2 files changed, 49 insertions, 1 deletions
diff --git a/libgnu/Makefile.am b/libgnu/Makefile.am index 5af121af..05a8f615 100644 --- a/libgnu/Makefile.am +++ b/libgnu/Makefile.am @@ -35,7 +35,7 @@ noinst_LIBRARIES = MOSTLYCLEANFILES = MOSTLYCLEANDIRS = BUILT_SOURCES = -EXTRA_DIST = endian.in.h byteswap.in.h sys_mman.win32.h mman_win32.c +EXTRA_DIST = endian.in.h byteswap.in.h sys_mman.win32.h mman_win32.c sysconf_win32.c CLEANFILES = SUFFIXES = @@ -69,3 +69,9 @@ if USE_WIN32_MMAN libgnu_a_SOURCES += mman_win32.c endif endif + +if !HAVE_SYSCONF +if USE_WIN32_SYSCONF +libgnu_a_SOURCES += sysconf_win32.c +endif +endif diff --git a/libgnu/sysconf_win32.c b/libgnu/sysconf_win32.c new file mode 100644 index 00000000..34ddf4bc --- /dev/null +++ b/libgnu/sysconf_win32.c @@ -0,0 +1,42 @@ +/* Replacement for sysconf() on windows + Copyright (C) 2017 The Qt Company Ltd. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> +#include <sysinfoapi.h> +#include <errno.h> + +long int sysconf(int name) { + if (name == _SC_PAGESIZE) { + SYSTEM_INFO info; + GetSystemInfo(&info); + return info.dwPageSize; + } else { + errno = EINVAL; + return -1; + } +} |