aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2006-01-12 16:59:15 +0000
committerCorinna Vinschen <corinna@vinschen.de>2006-01-12 16:59:15 +0000
commitf68671330fd547434ca6c15050658cd4451771c8 (patch)
treed22bc4451fe276573c75755bdfda45939e8240ec
parent0ae86d187c4b1470965ff1199d54b9170308037b (diff)
downloadnewlib-f68671330fd547434ca6c15050658cd4451771c8.zip
newlib-f68671330fd547434ca6c15050658cd4451771c8.tar.gz
newlib-f68671330fd547434ca6c15050658cd4451771c8.tar.bz2
* wincap.cc: New file.
* wincap.h: New file. * Makefile.in: Accomodate having our own wincap implementation now.
-rw-r--r--winsup/cygserver/ChangeLog6
-rw-r--r--winsup/cygserver/Makefile.in7
-rw-r--r--winsup/cygserver/wincap.cc23
-rw-r--r--winsup/cygserver/wincap.h30
4 files changed, 62 insertions, 4 deletions
diff --git a/winsup/cygserver/ChangeLog b/winsup/cygserver/ChangeLog
index 1a13f20..30bd8d1 100644
--- a/winsup/cygserver/ChangeLog
+++ b/winsup/cygserver/ChangeLog
@@ -1,3 +1,9 @@
+2006-01-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * wincap.cc: New file.
+ * wincap.h: New file.
+ * Makefile.in: Accomodate having our own wincap implementation now.
+
2006-01-09 Corinna Vinschen <corinna@vinschen.de>
Check FreeBSD upstream changes and apply important patches.
diff --git a/winsup/cygserver/Makefile.in b/winsup/cygserver/Makefile.in
index 1b76a76..d3426f6 100644
--- a/winsup/cygserver/Makefile.in
+++ b/winsup/cygserver/Makefile.in
@@ -1,5 +1,5 @@
# Makefile for Cygwin server
-# Copyright 2003 Red Hat, Inc.
+# Copyright 2003, 2006 Red Hat, Inc.
# This file is part of Cygwin.
@@ -40,11 +40,10 @@ override CXXFLAGS+=-MMD -DHAVE_DECL_GETOPT=0 -D__OUTSIDE_CYGWIN__ -DSYSCONFDIR="
OBJS:= cygserver.o client.o process.o msg.o sem.o shm.o threaded_queue.o \
transport.o transport_pipes.o transport_sockets.o \
bsd_helper.o bsd_log.o bsd_mutex.o \
- sysv_msg.o sysv_sem.o sysv_shm.o
+ sysv_msg.o sysv_sem.o sysv_shm.o wincap.o
LIBOBJS:=${patsubst %.o,lib%.o,$(OBJS)}
-CYGWIN_OBJS:=$(cygwin_build)/smallprint.o $(cygwin_build)/version.o \
- $(cygwin_build)/wincap.o
+CYGWIN_OBJS:=$(cygwin_build)/smallprint.o $(cygwin_build)/version.o
CYGWIN_LIB:=$(cygwin_build)/libcygwin.a
diff --git a/winsup/cygserver/wincap.cc b/winsup/cygserver/wincap.cc
new file mode 100644
index 0000000..875415d
--- /dev/null
+++ b/winsup/cygserver/wincap.cc
@@ -0,0 +1,23 @@
+/* wincap.cc -- figure out on which OS we're running.
+ Lightweight version for Cygserver
+
+ Copyright 2006 Red Hat, Inc.
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#include "woutsup.h"
+
+wincapc wincap;
+
+void
+wincapc::init ()
+{
+ memset (&version, 0, sizeof version);
+ /* Request simple version info. */
+ version.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
+ GetVersionEx (&version);
+}
diff --git a/winsup/cygserver/wincap.h b/winsup/cygserver/wincap.h
new file mode 100644
index 0000000..af09cad
--- /dev/null
+++ b/winsup/cygserver/wincap.h
@@ -0,0 +1,30 @@
+/* wincap.h: Header for OS capability class.
+ Lightweight version for Cygserver.
+
+ Copyright 2006 Red Hat, Inc.
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#ifndef _CYGSERVER_WINCAP_H
+#define _CYGSERVER_WINCAP_H
+
+class wincapc
+{
+ OSVERSIONINFO version;
+
+public:
+ void init ();
+
+ bool is_winnt () const
+ { return version.dwPlatformId == VER_PLATFORM_WIN32_NT; }
+ bool has_security () const
+ { return version.dwPlatformId == VER_PLATFORM_WIN32_NT; }
+};
+
+extern wincapc wincap;
+
+#endif /* _CYGSERVER_WINCAP_H */