EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Changes for RTEMS on ARM (at91rm9200ek)
From: "Jeff Hill" <[email protected]>
To: "'Ralph Lange'" <[email protected]>
Cc: "'EPICS Core Talk'" <[email protected]>, "'Ralf Hartmann'" <[email protected]>
Date: Thu, 21 Sep 2006 17:47:07 -0600
Thanks Ralph! 

Latest CVS looks good from here.

Jeff

> -----Original Message-----
> From: Ralph Lange [mailto:[email protected]]
> Sent: Thursday, September 21, 2006 2:41 PM
> To: Jeff Hill
> Cc: 'EPICS Core Talk'; 'Ralf Hartmann'
> Subject: Re: Changes for RTEMS on ARM (at91rm9200ek)
> 
> Hi Jeff,
> 
> thanks for your comments.
> 
> I just committed a version (to the 3.14 branch) that should address
> topics 1) and 3) of your list. Would you cross-check if that's what you
> meant? Thanks.
> 
> About topic 2): as the code calls into socket_ioctl() in the same
> fashion, I would say: yes.
> If you and Eric don't disagree, I will add those changes (later, not
> today, as my shift ends in 5 minutes...)
> 
> Cheers,
> Ralph
> 
> 
> Jeff Hill wrote:
> >> (Waiting for Jeff to approve the changes in osdNetIntf.c)
> >>
> >
> > After a very quick look I have these comments:
> >
> > 1) I think I see that the data structure for the first network interface
> is
> > skipped over (never seen) because of the following sequence of events.
> On
> > many, but not all, UNIX-like systems the first interface might be the
> > loopback interface. That might explain why this hasn't been observed to
> be a
> > problem?
> >
> > O pIfreqList = (struct ifreq *) calloc ( nelem, sizeof(*pifreq) );
> > O the ioctl copies the struct ifreq data structures to pIfreqList
> > O pifreq = pIfreqList; //the for loop initializer
> > O pnextifreq = ifreqNext (pifreq);
> > O // oops! skipped over the first network interface
> > O memmove(pIfreqList, pnextifreq, current_ifreqsize);
> > O use pIfreqList to look at the current struct ifreq
> > O pifreq = pnextifreq //for loop increment
> >
> > 2) Do we need the same type of changes also in osiLocalAddr?
> >
> > 3) At line 120 this code was added. Similar code is also at line 43.
> Perhaps
> > this code could be repackaged into a common function - a wrapper for the
> osd
> > ifreq_size() with the goal being that the wrapper is the only caller of
> OSD
> > ifreq_size()? Otherwise we could move this code into OSD ifreq_size()
> but
> > that would probably be a less fault tolerant approach (mistakes made by
> a
> > programmers porting to new os are what we might be concerned about).
> >
> > 	        if ( current_ifreqsize < sizeof ( *pifreq ) ) {
> > 		       current_ifreqsize = sizeof ( *pifreq );
> > 	        }
> >
> > Jeff
> >


References:
Re: Changes for RTEMS on ARM (at91rm9200ek) Ralph Lange

Navigate by Date:
Prev: Re: Changes for RTEMS on ARM (at91rm9200ek) Ralph Lange
Next: Re: bug report Andrew Johnson
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Changes for RTEMS on ARM (at91rm9200ek) Ralph Lange
Next: Re: bug report Andrew Johnson
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·