EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: asyn driver on Windows XP
From: Dirk Zimoch <[email protected]>
To: Eric Norum <[email protected]>
Cc: EPICS Techtalk <[email protected]>
Date: Tue, 16 Nov 2010 11:00:23 +0100
Compiling asyn with make USR_CFLAGS=/D_WIN32_WINNT=0x0500 solves the problem. I have no idea why _WIN32_WINNT is set to something >= 0x0600 (=Vista).

Dirk

Eric Norum wrote:
The conditionals in drvAsynIPPort.c were supposed to handle this case:

#if defined(__rtems__)
# define USE_SOCKTIMEOUT
#else
# define USE_POLL
# if defined(vxWorks)
#  define FAKE_POLL
# elif defined(_WIN32)
#  if defined(POLLIN)
#   define poll(fd,nfd,t) WSAPoll(fd,nfd,t)
#  else
#   define FAKE_POLL
#  endif
# else
#  include <sys/poll.h>
# endif
#endif

The intent was to use WSAPoll() only on versions of windows which provided it (and defined POLLIN).   Could it be that XP defines POLLIN but doesn't provide WSAPoll()?
What happens if you compile this with -UPOLLIN added to the CFLAGS?  If that doesn't help, try adding a '#undef POLLIN' just before the block of conditionals.    If t either of those fix the problem we'll have to figure out some other set of conditionals for Windows.


On Nov 15, 2010, at 8:57 AM, Dirk Zimoch wrote:


Hi all,

I have a problem with the latest version of asyn driver on Windows XP. It tries to use a function WSAPoll() that does not exist in XP, only in Vista and newer. However I do not want use an old version of asyn driver without that function because of all the new features and bugfixes.

The code in question is:

#if defined(__rtems__)
# define USE_SOCKTIMEOUT
#else
# define USE_POLL
# if defined(vxWorks)
#  define FAKE_POLL
# elif defined(_WIN32)
#  if defined(POLLIN)
#   define poll(fd,nfd,t) WSAPoll(fd,nfd,t)
#  else
#   define FAKE_POLL
#  endif
# else
#  include <sys/poll.h>
# endif
#endif

It seems I have POLLIN defined but no WSAPoll.

I am using the compiler from Visual Studio 10.

Any idea?

Dirk



Replies:
RE: asyn driver on Windows XP Mark Rivers
References:
asyn driver on Windows XP Dirk Zimoch
Re: asyn driver on Windows XP Eric Norum

Navigate by Date:
Prev: the hex instruction convert Damek Yahto
Next: Re: EPICS base on Windows with INSTALL_LOCATION on a different drive Dirk Zimoch
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: asyn driver on Windows XP Eric Norum
Next: RE: asyn driver on Windows XP Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Nov 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·