From Daniel.Wyss@ascom.ch  Mon Dec  1 02:30:26 1997
From: "Daniel Wyss"<Daniel.Wyss@ascom.ch>
Date: Mon Dec  1 02:30:33 PST 1997
Subject: VisiBroker C++ for Tornado
--MimeMultipartBoundary
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: quoted-printable





Hi

I am Evaluating a CORBA ORB for VxWorks.
- Dose any body have experience with VisiBroker C++ for Tornado and x86=
.
  How are they?
- Is it so Easy how the sellers it describes?
- Does the VisiBroker ORB operate with a Orbix ORB to together?

Thanks for helping

Daniel

------------------------------------------------------
Daniel Wyss (ABLE5)
SW - Entwicklung          tel: +41 31 999 53 53
Ascom Autelca AG          fax: +41 31 999 55 48
Br=FCnnenstrasse 66         E-Mail: daniel.wyss@ascom.ch
3018 Bern                 http://www.ascom.com/banking
   Switzerland
------------------------------------------------------
=


--MimeMultipartBoundary--


From daemon@csg.lbl.gov  Tue Dec  2 04:01:09 1997
From: daemon@csg.lbl.gov
Date: Tue Dec  2 04:01:13 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Tue Dec  2 04:01:06 PST 1997

        Subject: Re: WDB_COMM_SERIAL
        Subject: PowerPC performance.

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Re: WDB_COMM_SERIAL
Date: Mon, 01 Dec 1997 09:41:51 -0600
From: John Innis <jinnis@ti.com>
Organization: TTC of Texas Instruments, Inc.
Message-ID: <3482DABF.9C990140@ti.com>
References: <3479EFE0.137C@AKSpace.com>

Why do you want to change the boot device?  The WDB_COMM_SERIAL constant
is used to tell the VxWorks instrumented kernel how to talk to the
WindRiver
debugger (WDB) it has nothing to do with booting. The manner in which
your target
boots is not related to the device used to talk to the debugger.

Hope this helps,

  John Innis
  jinnis@ti.com

Dan.Reed@omitron.com wrote:

> If I use a raw serial connection by
> #define WDB_COMM_TYPE WDB_COMM_SERIAL
>
> what do I put in for the boot param 'boot device'.
> When typing help(h,?) I get a list of devices but nothing for a serial
> line.
>
> Thanks,
> Dan




---------------------------

Newsgroups: comp.os.vxworks
Subject: PowerPC performance.
Date: 1 Dec 1997 20:02:46 GMT
From: bpringle@teklogix.com (Bill Pringlemeir)
Organization: Teklogix Inc.
Message-ID: <65v556$kfr$1@news.interlog.com>
Reply-To: bpringle@teklogix.com

Hello,

The VxWorks BSP for the MPC860 (PowerPC) disables both the I-cache and
D-cache as far as I can tell.  I have looked around for any information on this.
Does anyone know why the caches are disabled?

thanks,
Bill

---------------------------

End of New-News digest
**********************


From c.j.slominski@larc.larc.nasa.gov  Tue Dec  2 04:17:28 1997
From: "Christopher J. Slominski" <c.j.slominski@larc.larc.nasa.gov>
Date: Tue Dec  2 04:17:31 PST 1997
--MimeMultipartBoundary
Content-Type: text/plain; charset="us-ascii"

Group,
	The System Administrator for my VxWorks host machine has upgraded to
Tornado 1.0.1 / VxWorks 5.3.1.  I no longer can connect remotely to my
target.  He does not know why, and WRS technical support has not helped.  I
do not use the WRS "launch", but simply use a UNIX shell script with the
following commands.

tgtsvr -V <target_address> &
windsh <target_address>

These commands always have worked in the past.  Now I get the following
diagnostics from the tgtsvr command.

Waiting to attach to target server.........Warning: Cannot open display
License server is down (error -4).

The new installation was made to a different partition of the disk
"/export/wind" as opposed to "/usr/wind".  Is there any files that need to
be updated that are not correctly modified by the WRS installation software?

The host machine is a Sun workstation running Solaris.  We have a
"single-seat" VxWorks license.

   *----------------------------------------*
   |  Christopher J. Slominski              |
   |   Computer Sciences Corporation (CSC)  |
   |   3217 N. Armistead Ave.               |
   |   Hampton, VA 23666                    |
   |   (757) 766-8258                       |
   |   c.j.slominski@larc.nasa.gov          |
   |   NASA Mail Stop 931                   |
   *----------------------------------------*

--MimeMultipartBoundary--


From phil.quiney@gecm.com  Tue Dec  2 06:20:06 1997
From: Philip Quiney <phil.quiney@gecm.com>
Date: Tue Dec  2 06:20:10 PST 1997
Hi Christopher,

We have just done the same upgrade to Tornado 1.0.1 but on a Sun/SunOS platform.

> tgtsvr -V <target_address> &
> windsh <target_address>
> 
> These commands always have worked in the past.  Now I get the following
> diagnostics from the tgtsvr command.
> 
> Waiting to attach to target server.........Warning: Cannot open display

This problem is caused by the lack of the DISPLAY environment variable so the X
application - the windsh cannot open a window on your screen.


> License server is down (error -4).

Wind River changed the license mechanism from the Flex system to using
something called Elan. Either your system admin chap hasn't set this to start
up when the host boots with a command line like:

wlmd -e ${WIND_BASE}/.wind/license -l ${WIND_BASE}/.wind/wlmd.log -m 500k

The state of the license manager can be found by the command

wlmadmin -l

> 
> The new installation was made to a different partition of the disk
> "/export/wind" as opposed to "/usr/wind".  Is there any files that need to
> be updated that are not correctly modified by the WRS installation software?
> 
> The host machine is a Sun workstation running Solaris.  We have a
> "single-seat" VxWorks license.
>
Perhaps the above suggestion dosen't apply to a single seat license, the above
was what the release notes suggested & it worked for us...


Regards

Phil Q

===============================================================================
Phil Quiney          _/_/_/_/        _/  _/_/_/_/  email : phil.quiney@gecm.com 
GEC Marconi         _/    _/        _/  _/    _/     tel : +44 1245 353221x3914
Communications Ltd _/_/_/_/  _/    _/  _/  _/_/      fax : +44 1245 275448
Chelmsford        _/        _/_/_/_/  _/_/_/_/
England CM1 1PL                              _/                             
===============================================================================


From ctsarogr@mailhost.nsd.fmc.com  Tue Dec  2 08:49:29 1997
From: ctsarogr@mailhost.nsd.fmc.com (Gideon R. Saroufiem)
Date: Tue Dec  2 08:49:32 PST 1997
Subject: Classic CPU Balance-Loading Problem.
Hello,

We are trying to perform real-time simulations
and we are getting time-out errors.

We would like to use a VxWorks utility to monitor
the CPU distribution (i.e. the breakdown of how
much time a given cpu spends on a given
procedure/task/function)

We have the misfortune of having an api called
ADS3000 that works as interface between the
VxWorks OS and Unix OS. Unfortunately we lack
the operating reference manual for VxWorks
(didn't come with ADS3000 package)
so we are in some sense 'working in the dark'. 

Could someone tell us how we would initiate such
a utility from the VxWorks command-line or what C code
would we need implement?

Any ideas Please.

Gideon. 


From jrowley@viasat.com  Tue Dec  2 09:49:46 1997
From: jrowley@viasat.com (jrowley)
Date: Tue Dec  2 09:49:50 PST 1997
Subject: Virtual Console I/O
--MimeMultipartBoundary
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

     Using Tornado 1.0.1, I have redirected my stdio/stdout to a virtual 
     console using the .wind/windsh.tcl file as documented in the Tornado 
     Users Guide (Unix) page 187 - "I/O Redirection on Shell Startup".  It 
     seems to work fine, I can do my I/O through a window on my unix 
     terminal, except that I am getting the irritating double character 
     syndrome.  I can't figure out how to turn the echo off for this 
     virtual terminal!  Has anybody run across this and the solution?  
     Thanks for any help.
     
     --------------------------------------------------
     Jeff Rowley                2290 Cosmos Court      |
     Member, Technical Staff    Carlsbad, CA   92009   |
     ViaSat                     (760) 438-7210         |
     --------------------------------------------------
--MimeMultipartBoundary--


From brett@rti.com  Tue Dec  2 13:07:06 1997
From: brett@rti.com (Brett Murphy)
Date: Tue Dec  2 13:07:09 PST 1997
Subject: Re: Classic CPU Balance-Loading Problem.

Hi Gideon,

> We are trying to perform real-time simulations
> and we are getting time-out errors.
> 
> We would like to use a VxWorks utility to monitor
> the CPU distribution (i.e. the breakdown of how
> much time a given cpu spends on a given
> procedure/task/function)
> 
<snip>
>
> Gideon. 

If you are running Tornado, try taking a look at the Browser facility's 
Spy Chart.  That will give you CPU usage of your VxWorks tasks on the
target.

To get CPU usage at the function level you can use ScopeProfile.  It will
tell you function by function, what percentage of the CPU each has used
since you started the profile.  ScopeProfile will also give the task usage.
This can be useful if you don't have Tornado yet.

If you have StethoScope, then you also have ScopeProfile, since it ships
with StethoScope.  There's more information on our web site if you need it.


        -- Brett


==============================================================================
=                                           =                                =
=   Brett Murphy                            =   Product Manager              =
=   Real-Time Innovations, Inc.             =   email: brett@rti.com         =
=   155A Moffett Park Drive, Suite 111      =   Phone: (408) 720-8312        =
=   Sunnyvale, CA 94089                     =   Fax:   (408) 734-5009        =                         =                                           =                                =
==============================================================================


From aram.nahidipour@spdg.COM  Tue Dec  2 14:15:52 1997
From: aram.nahidipour@spdg.COM (Aram Nahidipour)
Date: Tue Dec  2 14:15:55 PST 1997
Subject: Re: Loading compressed objects
Geoff,

> 
> Aram,
> 
> > Submitted-by aram.nahidipour@spdg.COM  Tue Nov 25 15:22:19 1997
> > I am downloading a compressed object file from the net and 
> > decompess it using inflate() into memory.  
> > Then I use memDevCreate() to create a memory file which I open() later.  
> > ...
> 
> Pretty dang clever!  The bug is with memDrv.c memIoctl() function
> lacking a FIOGETNAME function code and loadModule() not checking
> the return code, I suspect.  Just add it (target/src/config/memDrv.c)
> rebuild, and all will be well.  Thanks for the tight algorithm.
> 
> 
I added the FIOGETNAME to memDrv ioctl but it is not working.
loadModule() does not call ioctl with FIOGETNAME function.  I don't
know how it gets the module name.

Thanks For your help
Aram


From cruz_nojunk@xyplex.com  Tue Dec  2 16:07:56 1997
From: Roger Cruz <cruz_nojunk@xyplex.com>
Date: Tue Dec  2 16:07:59 PST 1997
Subject: Cross linked files in DOS FS
--MimeMultipartBoundary
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

 I'm experiencing another FAT corruption in the DOS file system provided
with 5.3.  I already have the patch currently present in WRS' web site
installed.

A little background: My target is a pc486 which boots DOS first and does
a couple of file manipulations (writes, reads and deletes).  The user
can then choose to boot VxWorks or perform some other configurations.
To boot VxWorks I used the WRS supplied utitlity "vxload".  Once VxWorks
is running, I open a few files for reading and several other for
writing.  The user then powers off the target without doing an orderly
shutdown (meaning that the files opened are never closed).  A few times
of doing this and eventually we start reading data from one file that
belongs to another.

What I know so far:  If you open a file for write in VxWorks and right
after turn off the unit, I get a problem with the FAT.  A chkdsk
immediately after shows that the file I created has an allocation error
(size not correct).  If I don't fix this problem right away, a few more
open/close and  deletes eventually lead to 2 files sharing the same disk
cluster (a big no-no).

How to get around:  On every reboot, do a chkdsk and have it fix the
problems.

My problem:  It takes to long to do a chkdsk everytime.  Besides, I want
to fix the original problem which is the right solution.  RTOS should be
able to handle someone plugging the plug without corrupting the HD.  Has
anybody else seen this problem?  Any ideas on how to get around this
problem in some other way?

Thanks.

PS.  If you reply, please remove "_nojunk" from email address.

--
Roger Cruz                           cruz_nojunk@xyplex.com
Xyplex Networks                      w: 508-952-4783
295 Foster Street                    f: 508-952-4887
Littleton, MA 01460



--MimeMultipartBoundary--


From emery3@llnl.gov  Tue Dec  2 16:08:46 1997
From: "Ann S Emery" <emery3@llnl.gov>
Date: Tue Dec  2 16:08:50 PST 1997
Subject: "bfd assertion fail"  error
I have been trying to "make" a "test.c" file on a sun4-solaris2 host for an
mv2604 target.  "ldppc" seems to fail with the following message:

bfd assertion fail /vobs/vpwr/host/src/gnu/bfd/elf.c:843
make: *** [test] Segmentation fault (core dumped)
make: *** Deleting file 'test'

I don't know if this matters, but GCC_EXEC_PREFIX is defined as
/opt/wind/tor1.01/host/sun4-solaris2/lib/gcc-lib/

I would appreciate any insight you could give me about how to find out
what is wrong.  For example, what is "bfd" anyway?  Thank you very much.




From windnews@trinc.com  Tue Dec  2 18:18:44 1997
From: windnews@trinc.com (VxWorks News)
Date: Tue Dec  2 18:18:47 PST 1997
Subject: IEEE-1394 Solution from TRI for VxWorks
David,

TRI provides complete software support for IEEE-1394 for VxWorks.
TRI 1394 software stack for VxWorks supports 1394 chipsets 
from IBM and TI currently. But only one layer (HAL)
need to be changed if you need support for a different chipset.

TRI's 1394 software stack is very well layered in architecture
and can be easily ported to different processor architectures
including SA110 or SA1100. 

The 1394 software stack has various modules like Hardware
Adaptation Layer (HAL), Transaction Layer, Serial BUS Manager,
Dispatcher etc. These modules are customizable.
Over these modules the stack supports the protocols like 
SBP-2 both as a target & initiator, IP over 1394 and A/Vc.
Also the stack will support SBP-2 with Mass Storage Profile for
Mass Storage devices, SBP-2 with printer profile and IP1394.

Please visit http://www.trinc.com or send a mail to info@trinc.com
or call at 408-566-0280 x:201.

-Sathyan

From: David Leviner <dleviner@HiWAAY.net>
Date: Thu Nov 20 06:56:59 PST 1997
Subject: DEC SA-1100 StrongARM & IEEE 1394 Firewire support
--MimeMultipartBoundary
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

VxWorks Gurus,

Does anyone know if VxWorks supports the Digital Semicomductor 
SA-110 or SA-1100 StrongARM microprocessor, or any of the ARM
microprocessors? If so to what degree? Is there a BSP available or 
in the works?

Also, is there an interface for the IEEE 1394 firewire serial bus supported
under VxWorks? 

Any bit of information concerning these two subjects would help.

Thanks,
David Leviner





From philm@vannes.wrsec.fr  Wed Dec  3 02:34:22 1997
From: philm@vannes.wrsec.fr (Philippe Maisonneuve)
Date: Wed Dec  3 02:34:25 PST 1997
Subject: Re: Virtual Console I/O
--MimeMultipartBoundary
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit


  Jeff,

  This is a known problem (SPR# 6872) on Solaris 2.5 that does not show
  up in Solaris 2.4.  

6872   Virtual console echoes twice its                    Tornado 1.0 FCS
       typed input.                                        Solaris

  It is caused by a backward compatibility problem between the Solaris 2.5
  and Solaris 2.4 streams package.  The solution to this problem is to
  build Tornado on Solaris 2.5 but we could not do this in Tornado 1.0.1
  since we had to support Solaris 2.4.

  Regards,

  Philippe

> Submitted-by jrowley@viasat.com  Tue Dec  2 09:49:46 1997
> Submitted-by: jrowley@viasat.com (jrowley)
> 
>      Using Tornado 1.0.1, I have redirected my stdio/stdout to a virtual 
>      console using the .wind/windsh.tcl file as documented in the Tornado 
>      Users Guide (Unix) page 187 - "I/O Redirection on Shell Startup".  It 
>      seems to work fine, I can do my I/O through a window on my unix 
>      terminal, except that I am getting the irritating double character 
>      syndrome.  I can't figure out how to turn the echo off for this 
>      virtual terminal!  Has anybody run across this and the solution?  
>      Thanks for any help.
>      
>      --------------------------------------------------
>      Jeff Rowley                2290 Cosmos Court      |
>      Member, Technical Staff    Carlsbad, CA   92009   |
>      ViaSat                     (760) 438-7210         |
>      --------------------------------------------------
--MimeMultipartBoundary--


From daemon@csg.lbl.gov  Wed Dec  3 04:00:32 1997
From: daemon@csg.lbl.gov
Date: Wed Dec  3 04:00:36 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Wed Dec  3 04:00:28 PST 1997

        Subject: Re: VxWorks pricing

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Re: VxWorks pricing
Date: Mon, 01 Dec 1997 16:00:09 -1000
From: "Malcolm J. Northcott" <north@ifa.hawaii.edu>
Organization: Institute For Astronomy, University of Hawaii.
Message-ID: <34836BA9.9A8@ifa.hawaii.edu>
References: <3.0.3.16.19971120212647.5087072c@mail.gte.net> <3481ED85.AA3@williams-consulting.com>

Using rtLinux...
I've measured about 20 micro-seconds (thats not a typo I mean
20x10-6 s) interrupt latency on an old 25Mhz 486 pc while doing
a full kernel compile. 
Thats about what we get with our Sparc 5 boards under VxWorks. 
The rt support is very crude compared with VxWorks, expecially as
regards task syncronisation and scheduling.
However for simple job requiring only a small number of
tasks I suspect it would work just as well as vxWorks.
Since all our hardware is based on VME, we are out of luck at
the moment! On the positive side, the price is right, and it uses the
same development environment as vxWorks.

Joel Williams wrote:
> 
> Al Kirke wrote:
> >
> > >Mike Anderson wrote:
> > >
> > -snip
> > >I too have been a VxWorks fan for many years. I just had to make
> > >the decision whether to use VxWorks on yet another project. The
> > >steep price ($19K for one target/one seat) gave me great pause.
> > -snip
> 
> I based my last project on Linux. It used an embedded PC for a
> hardware platform, and Linux as the development host and target.
> Worked great. Much more stable than Tornado, much lower devleopment
> costs and no royalites. I spent a whole lot less time installing
> and supporting Linux than I have spent on Tornado/vxWorks.
> And the support was much better, I had source code, and was able
> to answer all questions within 1-2 hours.
> 
> Linux is not hard "real time", but with a minimal bit of planning, I
> have near-real time reliability to about 5ms accruacy. (The actual
> kernel is about the same size as vxWorks kernel.)

- -- 
Malcolm Northcott
Institute for astronomy, 2680 Woodlawn Drive Honolulu Hi 96822.
Tel:   808-956-8758
Fax:   808-956-4532 backup: 808-988-2790
Email: north@ifa.hawaii.edu
WWW:   http://queequeg.ifa.hawaii.edu/

---------------------------

End of New-News digest
**********************


From Huang.Wu@nrc.ca  Wed Dec  3 06:08:20 1997
From: "Wu, Huang" <Huang.Wu@nrc.ca>
Date: Wed Dec  3 06:08:23 PST 1997
Subject: set vme167 to date
--MimeMultipartBoundary
Content-Type: text/plain

Hello there,

We are using a VME167 board with MC68040 processor (host sunos4). We do
like to set the
vme167 board to the day, but without using host or network since our
final
application will be a standalone system. We are quite sure there is a
realtime
clock in the hardware of vme167 since it works for OS9 realtime
operating
system. I once tried to set the time by
i) including Posix Macro in configAll.h
ii) using clock_setime(clock_id,&tp) to set time
iii) using clock_getime(clock_id,&tpp) to get time
But so long as I reboot the system, the initial time I get is always
zero.
(as one expected, everytime the system is rebooted, vxWorks resets the
clock to zero).
This seems to tell me we need to connect the hardware clock to the
software somehow, which
is not clear to me.
Does anyone have any idea to illuminate me?

Many thanks

Huang
huang.wu@nrc.ca
Flight research Lab, NRC, Canada
--MimeMultipartBoundary--


From dsunnarb@wavetech.net  Wed Dec  3 07:05:52 1997
From: Dan Sunnarborg <dsunnarb@wavetech.net>
Date: Wed Dec  3 07:05:55 PST 1997
Subject: VxWorks Time and Date on x86
--MimeMultipartBoundary
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi,

Can anyone tell me how to read the time and date out of the bios on 
an x86 so that I can write it to the VxWorks time/date data structure?

Thanks!

Dan Sunnarborg
Software Engineer
Applied Biometrics, Inc.
dsunnarb@wavetech.net

--MimeMultipartBoundary--


From wbrown@csg.lbl.gov  Wed Dec  3 10:01:05 1997
From: wbrown@csg.lbl.gov (Bill Brown)
Date: Wed Dec  3 10:01:08 PST 1997
Subject: From the "Keeper of the List" - "Secondary Exploders" - ___HELP!!!___

There are quite a few sites around the world that resend the VxWorks
exploder messages.  We have a bit of a problem and we need the help
of those of you who maintain (or can maintain) those lists.

"Kenny Cook <kdean64@mindspring.com>" is receiving the exploder messages,
which is not good as he has no interest in VxWorks.  He's not on either
of our lists.  I'd appreciate it if you could check to see if your site
has his address on its' remail list.  If it does, please delete him.

Many thanks,
-bill
Duty "Keeper of the List"


From nrd1jrb@nrd.ups.com  Wed Dec  3 11:47:12 1997
From: Jim Bucciferro <nrd1jrb@nrd.ups.com>
Date: Wed Dec  3 11:47:16 PST 1997
Subject: Re: VxWorks Time and Date on x86
--MimeMultipartBoundary
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

the vxWorks Users Group Exploder wrote:

> Hi,
>
> Can anyone tell me how to read the time and date out of the bios on
> an x86 so that I can write it to the VxWorks time/date data structure?
>
> Thanks!
>
> Dan Sunnarborg

Dave,
  I had the same problem.  Here is the information from Wind River.  This
document tells all and works very well.
If you are still having problems with this, let me know.  I have some code
that retrieves the CMOS time and sets the VxWorks clock.
Jim Bucciferro

*****************************************************
Subject:
        Re: PC486 Real time clock
   Date:
        Tue, 14 Oct 1997 16:36:59 -0700
   From:       wrs.com>

> Hi,
>        Does the current BSP for the 386/486 read the realtime clock?

Not for the dosFs, no it is not used.

The i8253 is used for the system clock,
a timer in the RTC is used as an aux clock.

See src/drv/i8253Timer.c.

> It seems to use the default of 01/01/80 and 00:00:00.  I set the
> dosFsDateTimeInstall to launch a function that gets the localtime, but
> it returns the above date and time with the time incrementing.

Yes.  It is not setup to use the CMOS clock in the BSP.  Nice
enhancement, but not part of a generic vxWorks BSP implementation.

If you do it, let us know.

John

> When I check the clock through DOS the date and time are correct.
> Do I have to query the realtime clock myself, or does the 486 BSP supply

> a function for this?  Any help would be appreciated.
>

(This old note is *loosely* related...)



TITLE: NMI and CMOS RTC information for VxWorks x86

AUTHOR: johnx

                         SCOPE                   DISCOVERED ON
              HOST:  All
                     -------------------     -------------------
      ARCHITECTURE:  80386, 80486 PC-AT/PS2 systems
                     -------------------     -------------------
               BSP:  pc386, pc486, ev386ex
                     -------------------     -------------------
PRODUCT / REVISION:  Tornado 1.0 FCS
                     -------------------     -------------------

DESCRIPTION OF PROBLEM: Answers questions concerning NMI and RTC.

RESOLUTION:

> My question concerns the BSP for the 386.
> Port 0x70 of the standard PC/AT design controls the
> Non-maskable interrupt and the address register for
> the Real-time clock.

Correct.

In a PC/AT class system, IO ports 0x70 and 0x71 are
used for the CMOS RTC clock.  This clock is typically
a Motorola MC146818 chip or compatible.  This chip
uses 64 memory registers for storage. 0x00-0x3f.
(note: These are bits 0-5 for 0x70)

Most PC/AT and PS2 class systems will also use this
port to control a hardware 'AND' gate which is routed
in the path of the processors NMI signal line.  This
allows software to effectively enable or disable the
NMI signal line at the hardware level.

Typically, Bit 7 (MSB) of port 0x70 controls the AND
gate and is therefore used to enable/disable the NMI
line.  Setting bit 7 enables the NMI line, and clearing
bit 7 disables the NMI line.   In most PC-AT systems,
the Basic Input/Output System (BIOS) sets (enables) this
bit during the Power On Self Test(POST) right before boot-
strapping to an OS.


> Q1:  Does VxWorks by default mask the NMI?

No. The 80x86 cannot "mask" the NMI at the processor
level.  Nor, do we alter the setting of the NMI 'AND Gate'
from what the BIOS has setup. (BIOS typically enables NMI
AND Gate.)

We need to be careful with terminology.

There are three separate concepts:

1.) Controlling the NMI signal line in hardware via
    enabling/disabling the AND gate through IO port 0x70.

2.) Disabling an external interrupt level in the I8259
    interrupt controller via sysIntEnablePIC().

3.) Masking all maskable interrupts via intLock().

You cannot "mask" the processors non-maskable
interrupt via intLock().  That is to say, you
cannot disable NMI by setting the processors IF
flag.  This is why it is called a non-maskable
interrupt.

The masking of the 80x86 maskable interrupts is done
using intLock(), which internally uses the processor
IF flag.  Setting the IF flag puts the processor in
a mode in which it responds to maskable interrupts.
Clearing the IF flag prevents the processor from
responding to maskable interrupts.

The IF flag has no effect non-maskable interrupts
The NMI interrupt is always enabled in the 80x86
processor.  (With one exception for when running
a NMI handler in which case, the processor will
not handle NMI to avoid exception runaway).

As mentioned above, most AT class systems can
enable/disable the 80x86 NMI line by passing the
NMI signal line through an AND gate controlled by
software, bit 7 in the CMOS I/O port.  Hardware
can clear the bit when the processor is reset, and
software can set the bit when it is ready to handle
NMI interrupts.  This is typically done by the BIOS
at cold boot.  VxWorks doesn't alter this setting.


> What
> would happen if it was unmasked and an NMI occurred?

If the processor received a NMI while vxWorks was
running, the OS would attempt to print the message
"Nonmaskable Interrupt" and dump system registers,
suspend the running task, run a hook if one was
installed via excHookAdd.   If NMI happened at
interrupt level, we would attempt to store the
register information to memory (sysExcMsg) and
trap to the vxWorks rom monitor.


> Q2:  Does VxWorks trap port 0x70 for reads and/or writes?

No.


> When I read this port I always get value 0xff
> no matter what I write to the port.

I don't believe you need to read (sysInByte) from
IO address 0x70 for CMOS data.  I think you write
the CMOS register address you wish to read/write to
port 70h; then read/write port 71h to get/set CMOS data.
All addresses sent to port 70h should have Bits 7&6 clear,
since Bit 7 of port 70h is used to enable/disable the NMI
signal line.

NOTE: If you really really want to mask the NMI through
      using port 70H, port 71H should be read immediately
      after or the RTC may be left in an strange unknown
      state.  Once bitten...  Be careful, make sure you
      have a good reason for disabling NMI.

You access to the CMOS data by outputting to port
0x70 the offset of the byte you wish to receive
alter.

Then read/write the value of that current
byte from port 71h.

In this manner, applications can get or set
values of CMOS settings.

sysOutByte 0x70h, 0x04 <----- offset of current hour
sysInByte 71h, var     <----- var now contains current hour
sysOutByte 71h, 1      <----- CMOS now thinks it is 1 : xx AM

In order to be certain that the CORRECT offset is
being read/written, it may be needed to protect this
with a semaphore, or taskLock() & intLock().

> Q3:  Does VxWorks read or write to the real-time clock?

You bet.  The (RTC) auxiliary clock uses this port.
The spy() utility uses the aux. clock.

See the source code in:

%WIND_BASE%\target\src\Dr\timer\i8253Timer.c (non-windview)
%WIND_BASE%\target\src\drv\timer\i8253TimerTS.c (windview)

RTC_INDEX = 0x70
RTC_DATA = 0x71

(Note where we mask int's in sysAuxClkInt().)

Here is some general information on CMOS RTC -
Real Time Clock and Memory (ports 70h & 71h)

(No assumptions are made to the accuracy of this data,
 refer to your hardwares data books.)

%       Reg#                      Description

         00  RTC seconds
         01  RTC seconds alarm
         02  RTC minutes
         03  RTC minutes alarm
         04  RTC hours
         05  RTC hours alarm
         06  RTC day of week
         07  RTC day of month
         08  RTC month
         09  RTC year
         0A  RTC Status register A:

            |7|6|5|4|3|2|1|0|  RTC Status Register A
             | | | | ----------- rate selection Bits for divider output
             | | | |             frequency (set to 0110 = 1.024kHz,
976.562ms)
             | --------------- 22 stage divider, time base being used;
             |                    (initialized to 010 = 32.768kHz)
             --------------- 1=time update in progress, 0=time/date
available

         0B  RTC Status register B:

            |7|6|5|4|3|2|1|0|  RTC Status Register B
             | | | | | | | ----- 1=enable daylight savings, 0=disable
(default)
             | | | | | | ------ 1=24 hour mode, 0=12 hour mode (24
default)
             | | | | | ------- 1=time/date in binary, 0=BCD (BCD default)
             | | | | -------- 1=enable square wave frequency, 0=disable
             | | | --------- 1=enable update ended interrupt, 0=disable
             | | ---------- 1=enable alarm interrupt, 0=disable
             | ----------- 1=enable periodic interrupt, 0=disable
             ------------ 1=disable clock update, 0=update count normally

         0C  RTC Status register C (read only):

            |7|6|5|4|3|2|1|0|  RTC Status Register C  (read only)
             | | | | ----------- reserved (set to 0)
             | | | ----------- update ended interrupt enabled
             | | ----------- alarm interrupt enabled
             | ----------- periodic interrupt enabled
             ----------- IRQF flag

         0D  RTC Status register D (read only):

            |7|6-0|  RTC Status Register D  (read only)
             |  ------ reserved (set to 0)
             ------- 1=CMOS RAM has power, 0=CMOS RAM has lost power

         0E  Diagnostic status byte:

            |7|6|5|4|3|2|1|0|  Diagnostic Status Byte
             | | | | | | ------- reserved
             | | | | | -------- 1=time is invalid, 0=ok (POST validity
check)
             | | | | --------- 1=fixed disk 0 failed initialization, 0=ok
             | | | ---------- 1=memory size doesn't match config info,
0=ok
             | | ----------- 1=invalid config info found, 0=ok (see below)

             | ------------ 1=config record checksum is bad, 0=ok
             ------------- 1=RTC lost power, 0=power state stable

         0F  Shutdown status byte:

               0  soft reset or unexpected shutdown
               1  shut down after memory size determination
               2  shut down after memory test
               3  shut down with memory error
               4  shut down with boot loader request
               5  JMP DWORD request with INT init
               6  protected mode test 7 passed
               7  protected mode test 7 failed
               8  protected mode test1 failed
               9  block move shutdown request
               A  JMP DWORD request without INT init

         10  Diskette drive type for A: and B:

            |7|6|5|4|3|2|1|0|  Diskette drive type for A: and B:
             | | | | ----------- second diskette type
             ------------------ first diskette type

                0000  no drive installed
                0001  DSDD 48 TPI drive
                0010  DSQD 96 TPI drive
                other values are reserved

         11  Reserved
         12  Fixed disk drive type for drive 0 and drive 1

            |7|6|5|4|3|2|1|0|  Diskette drive type for A: and B:
             | | | | ----------- second hard disk drive code (0000=no
disk)
             ------------------ first hard disk drive code (0000=no disk)

         13  Reserved
         14  Equipment byte

            |7|6|5|4|3|2|1|0|  Equipment byte
             | | | | | | | ----- 1=diskette drives installed, 0=none
             | | | | | | ------ 1=math coprocessor installed, 0=none
             | | | | --------- unused
             | | ---------- primary display
             ------------- number of diskette drives installed

%           Bits                       Bits
%            54  Primary Display        76  Number of Drives
             00  reserved               00  1 diskette drive
             01  40 column color        01  2 diskette drives
             10  80 column color        10  reserved
             11  monochrome             11  reserved

         15  LSB of system base memory in 1k blocks
         16  MSB of system base memory in 1k blocks
         17  LSB of total extended memory in 1k blocks
         18  MSB of total extended memory in 1k blocks
         19  Drive C extension byte (reserved AT)
         1A  Drive D extension byte (reserved AT)
         1B  13 bytes reserved
         2E  CMOS checksum of bytes 10h-20h (MSB)
         2F  CMOS checksum of bytes 10h-20h (LSB)
         30  LSB of extended memory size found above 1 megabyte during
POST
         31  MSB of extended memory size found above 1 megabyte during
POST
         32  Date century byte in BCD ( BIOS interface to read and set)
         33  Information flags (set during power-on)

            |7|6|5-0|  Information Flags
             | |  ------ reserved
             | -------- initial setup message flag
             --------- 1=IBM 128k expansion installed, 0=none

         34  12 bytes reserved

SPR / PATCH:

KEYWORDS:

SIGN-OFF:












--MimeMultipartBoundary--


From daemon@csg.lbl.gov  Thu Dec  4 04:01:44 1997
From: daemon@csg.lbl.gov
Date: Thu Dec  4 04:01:47 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Thu Dec  4 04:01:41 PST 1997

        Subject: Re: Zlib and compressed loads.
        Subject: SENS
        Subject: Re: Serial Ports....Setting Parity

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Re: Zlib and compressed loads.
Date: Mon, 01 Dec 1997 23:19:31 -0800
From: Dale Luck <dale@shoretel.com>
Organization: Shoreline Teleworks
Message-ID: <3483B683.73B4@shoretel.com>
References: <65v5kj$kfr$2@news.interlog.com>
Reply-To: dale@shoretel.com

Bill Pringlemeir wrote:
> 
> Hello,
> 
> Has anyone used the Zlib by Mark Adler and Jean-Loup Gailly
> to make compressed VxWork images. 

I wrote a pseudo file system that uses the decompressor when
reading files. I needed this because I didn't want to waste
memory reading in a compressed file, inflating it, making
a pseudo ram filesystem and then passing that into the loader.
This wastes a huge amount of memory.

You have to get the source code to zlib to make this work
since vxworks for some reason does not document the underlieing
compressor pieces so you can spoon feed it pieces of data as
you read it from a file. Inflate is just not flexible enough.

So you have to build all the pieces of the compressor system
and include it in vxworks.

I have not been able to get it to work over the net, but I'm
able to read compressed files from a read only flash file system.

On the V4300-mips we are using, I'd say we are getting a good 2-to-1
compression ratio.

Dale Luck

---------------------------

Newsgroups: comp.os.vxworks
Subject: SENS
Date: Tue, 2 Dec 1997 10:20:31 +0200
From: "David Gasul" <davidg@telegate.co.il>
Organization: Telegate Ltd.
Message-ID: <660gfj$1gq$1@news.NetVision.net.il>

Hi,

Does anyone have experience with SENS (from WRS)?

Specifically, I'd like to know the following:

a. Where did it come from (I guess that it's an OEM and NOT original WRS
development)?

b. How it's distributed (object/source)? If only object form is available,
what do you think
about future developments and being stuck with a frozen implementation?

c. Measured performance (please include configuration).

Regards,
Dave



---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: Serial Ports....Setting Parity
Date: Wed, 03 Dec 1997 23:55:02 -0800
From: Michael Morrison <mike@ringo.reno.nv.us>
Organization: My House
Message-ID: <348661D6.CC259542@ringo.reno.nv.us>
References: <348444B1.3CBC@radonc.washington.edu>

Dave Reid wrote:
> 
> Howdy...
>         I'm trying to get my MV167 board to talk via the
> serial ports to a device that does 7-bits, even parity.  I
> know how to setup to do the 7-Bits option, but cannot find
> any documentation on how to set the parity option.  Can anyone
> shed some light on this?
> 
>         Thanks in advance...
> 


I had a similar problem with the i8250 uart driver which is for
x86 boards.  I found 
that the communication paramaters are hard coded in the driver.

I had to hack the driver to change the comm parameters.  

Hey, what to you expect for $$$$50k?

---------------------------

End of New-News digest
**********************


From wheat@wg.com  Thu Dec  4 08:35:45 1997
From: Lee Wheat <wheat@wg.com>
Date: Thu Dec  4 08:35:48 PST 1997
Subject: internal arp routines
--MimeMultipartBoundary
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

can anyone provide documentation or help regarding the internal arp routines
like arpresolve? can they be used to actually perform the arp? is there another
way to do it?

lee wheat
wheat@wg.com
--MimeMultipartBoundary--


From chenyc@fnal.gov  Thu Dec  4 13:03:58 1997
From: Yenchu Chen <chenyc@fnal.gov>
Date: Thu Dec  4 13:04:01 PST 1997
Subject: sleep for 100 micro seconds
--MimeMultipartBoundary
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi,

   We are doing data acquisition test. There is a task to grab events from
our interface by doing DMA transfer. The single board computer is MVME167.
We know for sure that once the DMA transfer is initiated it will take more
than 150 micro seconds to turn around because of the event size. 

   The question here is that we would like the task to sleep for that
period and come back to check whether or not the DMA is done and keep
going on from there. We have tried 'taskDelay' which sleep in unit of 1/60
second. It is too long. We would like it to sleep for only 100 micro
second or so. Any idea is appreciated.

   Best regards,      Yen-Chu Chen
                      chenyc@fnal.gov
                      (630) 840-8871 (experiment)
                      (886)-(2) 789-9681 (Inst. of Phys., Academia Sinica)

--MimeMultipartBoundary--


From currie@ghg.net  Thu Dec  4 18:22:13 1997
From: currie@ghg.net (Alan Currie)
Date: Thu Dec  4 18:22:16 PST 1997
Subject: Re: sleep for 100 micro seconds
--MimeMultipartBoundary
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

>    The question here is that we would like the task to sleep for that
> period and come back to check whether or not the DMA is done and keep
> going on from there. We have tried 'taskDelay' which sleep in unit of 1/60
> second. It is too long. We would like it to sleep for only 100 micro
> second or so. Any idea is appreciated.
-- 
Your sysClkRate is currently set to 60 ticks per second.  The units to
taskDelay are in system clock ticks.  If you want, you could set
sysClkRate to 1000, and then your minimum taskDelay would be 1/1000 of a
second.  For a delay as small as what you need, I would build a small
loop where you increment a counter and vary the loop to get the time
delay you want.  You could use timexN to help you do this to time this
small function.
                                           <|
    Alan, Debbie, and Amanda Currie         |___      ~~O  __O
    currie@ghgcorp.com     Houston, Tx      |~~@\   _-\<,_-\<,_
    '96 Santana Arriva & Burley D'Lite      `(*)'--(*)/---|/-(*)
--MimeMultipartBoundary--


From TOM2910@aol.com  Thu Dec  4 21:35:32 1997
From: TOM2910 <TOM2910@aol.com>
Date: Thu Dec  4 21:35:36 PST 1997
Subject: Problems when MPC860 is running in 50MHZ.
Hi,

I have a test program that runs without error and it services 16 TCP ports.
But, the performance is not as good as I expected. So I crank up the
system clock from 25MHz to 50MHz.   After I modified the System Clock
for the MPC860, I ran into the strange problem.

   The 16 TCP servers task will chock with all the Rcv_Q all full, which is
   display through "inetstatShow", but no data can be read from the socket.

Does anyone have this problem and know how to fix it ?

Thanks.

-Tom
 


From pbrett@hathaway-systems.com  Fri Dec  5 01:16:51 1997
From: pbrett@hathaway-systems.com (Pete Brett)
Date: Fri Dec  5 01:16:55 PST 1997
Subject: Re: Tornado on NT4.0 and PPP
--MimeMultipartBoundary
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

On Wed, 26 Nov 97 10:31:05 PST, you wrote:

>Submitted-by espin@idiom.com  Wed Nov 26 10:31:00 1997
>Submitted-by: Geoffrey Espin <espin@idiom.com>

>I've been unsuccessful in using NT4.0 as a pppd/server for
>an i960 vxworks target.
>
>I installed DUN/RAS, setup up a modem (pc 2 pc cable and/or 9600 modem)
>on COM1 and/or COM2 ports, tested h/w connectivity (i.e. was able to see
>control chars come into NT4.0 hypertrm session from the vxworks target),
>so what gives!?
>

	Microsoft developed two new authentication protocols to use
with PPP. MSCHAP or CHAP80 is simillar, but incompatible to CHAP (as
far as I can remember, one of them uses DES and the other uses MD5).
Shiva PAP is the Microsoft equivalent of PAP. Shiva PAP uses encripted
passwords while PAP uses cleartext.

	In order to allow vxWorks to connect to NT, some registry
editing is necessary. Do a search through the registry for SPAP /
Shiva PAP and delete them. Then enable PAP at the vxWorks end and try
to connect.

	The reason that this works is that during the negotiation for
authentication method, an each implementation which knows of more than
one method will prioritise methods. Where a peer attempts to use a
method which is known, but not preferred, an implementation may reject
it in favour of a more secure authentication. By deleting the registry
settings which tell NT which DLL holds Shiva PAP, the negotiation is
reduced to two methods known by each peer. Once MSCHAP is rejected, NT
will now agree to use PAP.

	Further information can be found in Linux documentation on
connecting to an NT server using PPP.

Regards,
	Pete
--MimeMultipartBoundary--


From roghol@lin.foa.se  Fri Dec  5 02:07:26 1997
From: Roger Holmquist <roghol@lin.foa.se>
Date: Fri Dec  5 02:07:29 PST 1997
Subject: Re: sleep for 100 micro seconds
--MimeMultipartBoundary
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


>   We are doing data acquisition test. There is a task to grab events from
>our interface by doing DMA transfer. The single board computer is MVME167.
>We know for sure that once the DMA transfer is initiated it will take more
>than 150 micro seconds to turn around because of the event size.
>
>   The question here is that we would like the task to sleep for that
>period and come back to check whether or not the DMA is done and keep
>going on from there. We have tried 'taskDelay' which sleep in unit of 1/60
>second. It is too long. We would like it to sleep for only 100 micro
>second or so. Any idea is appreciated.
>


Well, isn=B4t this a typical interrupt-job?

You should let the dma-operation initiate an iterrupt which sets a semaphore=
=2E
The task you are using for reading the DMA-data will wait for that
semaphore and read
the data instantly when the interrupt comes.
This is how I read an A/D-converter every 20 us(!) on a MVME162-card and it
just works fine!
The only difference is that I time the data by one of the internal timers
on the card,
actually the wxWorks-supported AuxTimer, like:

***************************************************
sysAuxClkRateSet(Sample_fq);
printf("ClockSpeed set to %ld Hertz\n",Sample_fq);
sysAuxClkConnect(ADC_IRQ_Routine,0);
***************************************************

The above lines connects ADC_IRQ_Routine() to the timer and the function
executes
sample_Fq times per second.
The routine looks like this:

void ADC_IRQ_Routine()

{
adc_raw_diff_read(ADC_base, channel, gain, &(raw_data[irqcnt++])); /* Read
from A/D (15 us), Diff sample-mode, increment sample-counter */
if (irqcnt >=3D Total_samples)  semGive (ADC_Semaphore);		/* All
samples collected */
}
You shuld just use semGive() and everything works fine...

*** BUT *** there is a little problem....
Some heavy wxWorks utilities use the sysAuxClock like the Browser so you
must be aware if that!

A better solution is to use some other timer on board. The job should in
that case be accomplished by
other wxWorks routines like intConnect. And then you must be able to set
one of the timers.
That means that you have to solve 2 problems:
1) Find some suitable code, and/or at lest the adresses for manipulating
those times.
2) Make the physical interface/address for the timers accesible to your
code. This means
    that you eventually have to manipulate the wxWorks-kernel. Correct me
if Im wrong!

Either if I=B4m wrong or right, does anybody have any code-examples for that=
?

Greetings / Roger




#------------------------------------------------------------------#
# Roger Holmquist,    FOA, National Defence Research Establishment #
# sect 750,  Olaus Magnus v=E4g 42, Box 1165, 581 11 LINKOPING ------#
#---------------------------- SWEDEN ------------------------------#
# Phone: +46 13-318382 --------------------------------------------#
# Fax: +46 13-318009 ----------------------------------------------#
# Home: +46-13-214733  Mobile +46-706-250123 ----------------------#
# Email: roghol@lin.foa.se ----------------------------------------#
#------------------------------------------------------------------#


--MimeMultipartBoundary--


From roghol@lin.foa.se  Fri Dec  5 02:13:38 1997
From: Roger Holmquist <roghol@lin.foa.se>
Date: Fri Dec  5 02:13:41 PST 1997
Subject: Re: Problems when MPC860 is running in 50MHZ.
--MimeMultipartBoundary
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

>Submitted-by TOM2910@aol.com  Thu Dec  4 21:35:32 1997
>Submitted-by: TOM2910 <TOM2910@aol.com>
>
>Hi,
>
>I have a test program that runs without error and it services 16 TCP ports.
>But, the performance is not as good as I expected. So I crank up the
>system clock from 25MHz to 50MHz.   After I modified the System Clock
>for the MPC860, I ran into the strange problem.
>
>   The 16 TCP servers task will chock with all the Rcv_Q all full, which is
>   display through "inetstatShow", but no data can be read from the socket.
>
>Does anyone have this problem and know how to fix it ?

Well, I don't know about this strange problem but I have another way of
speeding up the TCP communication, so here is the "stupid" suggestion:

Have you tried wxWorks zbuf? If you have, let me know about your experiences=
!

Greetings / Roger



#------------------------------------------------------------------#
# Roger Holmquist,    FOA, National Defence Research Establishment #
# sect 750,  Olaus Magnus v=E4g 42, Box 1165, 581 11 LINKOPING ------#
#---------------------------- SWEDEN ------------------------------#
# Phone: +46 13-318382 --------------------------------------------#
# Fax: +46 13-318009 ----------------------------------------------#
# Home: +46-13-214733  Mobile +46-706-250123 ----------------------#
# Email: roghol@lin.foa.se ----------------------------------------#
#------------------------------------------------------------------#


--MimeMultipartBoundary--


From daemon@csg.lbl.gov  Fri Dec  5 04:01:12 1997
From: daemon@csg.lbl.gov
Date: Fri Dec  5 04:01:17 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Fri Dec  5 04:01:09 PST 1997

        Subject: Vxworks-search the web quickly with Search Spaniel
        Subject: Serial Ports....Setting Parity
        Subject: Advice on porting to VxWorks?
        Subject: Re: Serial Ports....Setting Parity
        Subject: Re: internal arp routines
        Subject: Re: Advice on porting to VxWorks?
        Subject: Re: Serial Ports....Setting Parity

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Vxworks-search the web quickly with Search Spaniel
Date: Tue, 02 Dec 97 18:50:21 GMT
From: smith@umes07.avl.co.at (Search Spaniel)
Organization: Search Spaniel
Message-ID: <250027902@searchspaniel.com>

To Vxworks-search the most search engines
in the shortest time, use the internet's newest
search engine - Search Spaniel at:
http://www.searchspaniel.com/

---------------------------

Newsgroups: comp.os.vxworks
Subject: Serial Ports....Setting Parity
Date: Tue, 02 Dec 1997 09:26:09 -0800
From: Dave Reid <dave@radonc.washington.edu>
Organization: University of Washington
Message-ID: <348444B1.3CBC@radonc.washington.edu>

Howdy...
	I'm trying to get my MV167 board to talk via the
serial ports to a device that does 7-bits, even parity.  I
know how to setup to do the 7-Bits option, but cannot find 
any documentation on how to set the parity option.  Can anyone
shed some light on this?

	Thanks in advance...

dave
- -- 
=============================================================
Dave Reid                   dave@radonc.washington.edu
UW Medical Center           (206)548-4536
Radiation Oncology Dept.    	
Seattle, WA

---------------------------

Newsgroups: comp.os.vxworks
Subject: Advice on porting to VxWorks?
Date: Thu, 04 Dec 1997 08:06:19 -0500
From: Andrew Sweeney <andy@assured-digital.com>
Organization: The Internet Access Company, Inc.
Message-ID: <3486AACB.14E3BF6F@assured-digital.com>

Hi,

    I am just about to embark on a mission to port a  3rd party IP Stack
to VxWorks. I will be using the if_fei interface (Ethernet Express
Pro/100B).

    What it looks like I need to do is archive the 3rd party code into a
lib that can be loaded or bound in with VxWorks. I also need to write
wrapper code which will call etherInputAddHook() to define my input
routine and to configure the if_fei device.

    What I don't understand is how where sys557Init () lives and what it
does. Also, once I have defined an ethernet input hook does it run for
all interfaces or can I have hooks for specific interfaces?

    I have written a MAC Diver to the Intel 82596 so I hope this will be
easy.

    I know this is kind of vague description but any advice on porting a
driver to VxWorks would be great.

Thanks
Andy

- --

Andrew Sweeney
andy@assured-digital.com
9 Goldsmith Street,
Littleton, MA 01460
http://www.assured-digital.com/



---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: Serial Ports....Setting Parity
Date: Thu, 04 Dec 1997 10:39:59 -0500
From: Lawrence Pfeffer <lawrence.pfeffer@nist.gov>
Organization: NIST
Message-ID: <3486CECF.167E@nist.gov>
References: <348444B1.3CBC@radonc.washington.edu> <348661D6.CC259542@ringo.reno.nv.us>

Michael Morrison wrote:
> 
> I had a similar problem with the i8250 uart driver which is for
> x86 boards.  I found
> that the communication paramaters are hard coded in the driver.
> 
> I had to hack the driver to change the comm parameters.
> 
> Hey, what to you expect for $$$$50k?

Michael,

Would you be willing to share some details and/or code of your 
modified i8250 driver?  Looks like I'm soon going to have to get x86
VxWorks to talk to an oddball (and non-changable) device.

TIA,

- -- 
Lawrence E. Pfeffer, Ph.D.	(AKA Larry), 
voice: (301)975-6067,		FAX: (301)869-6275
*Preferred* email:		lawrence.pfeffer@nist.gov	
U.S. mail:			NIST, Bldg. 226/Rm. B158, Gaithersburg, MD  20899

---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: internal arp routines
Date: 4 Dec 1997 18:55:38 GMT
From: Hwa-Jin Bae <chaos@idiom.com>
Organization: The DeRome Mansion
Message-ID: <666uba$lj5$1@news.idiom.com>
References: <3486DD4F.32EC1B9F@wg.com>

Lee Wheat <wheat@wg.com> wrote:

> can anyone provide documentation or help regarding the internal arp routines
> like arpresolve? can they be used to actually perform the arp? 
> is there another
> way to do it?

From 4.3BSD-tahoe UNIX kernel code:

arpresolve(ac, m, destip, desten, usetrailers)
        register struct arpcom *ac;
        struct mbuf *m;
        register struct in_addr *destip;
        register u_char *desten;
        int *usetrailers;

This is compatible with VxWorks.

Another way to do it would be to simply send a IP packet out destined
for desired target IP address.  ping can be used, for example.
This causes ARP request to be sent out (if there is no resolved
cache entry already in the ARP table) and if successful an entry
will be created in the ARP table.


---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: Advice on porting to VxWorks?
Date: 4 Dec 1997 18:59:22 GMT
From: Hwa-Jin Bae <chaos@idiom.com>
Organization: The DeRome Mansion
Message-ID: <666uia$lj5$2@news.idiom.com>
References: <3486AACB.14E3BF6F@assured-digital.com>

Andrew Sweeney <andy@assured-digital.com> wrote:

>     What I don't understand is how where sys557Init () lives and what it
> does. Also, once I have defined an ethernet input hook does it run for
> all interfaces or can I have hooks for specific interfaces?

There should be a file (sys557Lib.c or sysNetif.c or sysLib.c) that
contains sys557Init() in your BSP directory if your BSP already
supports 557 driver.

ether hooks are for all interfaces, unfortunately.  when your hook
routine is called you are given a pointer to "ifp" (struct ifnet)
that tells you which network driver called you.


---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: Serial Ports....Setting Parity
Date: Thu, 04 Dec 1997 18:33:18 -0600
From: don@pixsci.com
Organization: Deja News Posting Service
Message-ID: <881281399.30685@dejanews.com>
References: <348444B1.3CBC@radonc.washington.edu> <348661D6.CC259542@ringo.reno.nv.us> <3486CECF.167E@nist.gov>

In article <3486CECF.167E@nist.gov>,
  Lawrence Pfeffer <lawrence.pfeffer@nist.gov> wrote:
>
> Michael Morrison wrote:
> >
> > I had a similar problem with the i8250 uart driver which is for
> > x86 boards.  I found
> > that the communication paramaters are hard coded in the driver.
> >
> > I had to hack the driver to change the comm parameters.
> >
> > Hey, what to you expect for $$$$50k?
>
> Michael,
>
> Would you be willing to share some details and/or code of your
> modified i8250 driver?  Looks like I'm soon going to have to get x86
> VxWorks to talk to an oddball (and non-changable) device.
>

Well, I wasn't the original one to post, but I also made the
change to the driver to accomplish setting parity etc.
Here is a diff against the i8250Sio.c file (from Tornado 1.0.1
x86).

I think you should be able to feed this into patch. If anyone
wants to apply the fix, but has problems, please email me and
I'll send you the whole file.

- --don bowman (don@pixsci.com)

*** i8250Sio.c	Wed Jul 02 14:33:21 1997
- --- i8250Sio.c.orig	Thu Dec 04 19:21:50 1997
***************
*** 174,240 ****
      int ix;
      int status;
      int baudH;
      int baudL;
      int oldlevel;
- -     int values;

      switch (request)
  	{
- - 	case SIO_HW_OPTS_SET:
- - 	    values = 0;
- - 	    if ((arg & CSIZE) == CS5)
- - 		values = 0;
- - 	    else if ((arg & CSIZE) == CS6)
- - 		values = 1;
- - 	    else if ((arg & CSIZE) == CS7)
- - 		values = 2;
- - 	    else if ((arg & CSIZE) == CS8)
- - 		values = 3;
- - 	    if (arg & STOPB)
- - 		values |= (1<<2);
- - 	    if (arg & PARENB)
- - 		values |= (1<<3);
- - 	    if (!(arg & PARODD))
- - 		values |= (1<<4);
- - 	    (*pChan->outByte) (pChan->lcr, values);
- - 	    status = OK;
- - 	    break;
- - 	case SIO_HW_OPTS_GET:
- - 	    {
- - 	    int *retVal = (int *)arg;
- -             values = (*pChan->inByte)(pChan->lcr);
- - 	    if ((values & 0x3)  == 0)
- - 		*retVal = CS5;
- - 	    else if ((values & 0x3) == 1)
- - 		*retVal = CS6;
- - 	    else if ((values & 0x3) == 2)
- - 		*retVal = CS7;
- - 	    else if ((values & 0x3) == 3)
- - 		*retVal = CS8;
- - 	    if (values & (1<<2))
- - 		*retVal |= STOPB;
- - 	    if (values & (1<<3))
- - 		*retVal |= PARENB;
- - 	    if (!(values & (1<<4)))
- - 		*retVal |= PARODD;
- - 	    }
- - 	    status = OK;
- - 	    break;
  	case SIO_BAUD_SET:

              oldlevel = intLock();
  	    status = EIO;
  	    for (ix = 0; ix < NELEMENTS (baudTable); ix++)
  		{
  		if (baudTable [ix].rate == arg)	/* lookup baud rate value */
  		    {
! 		    values = (*pChan->inByte)(pChan->lcr);
!     		    (*pChan->outByte) (pChan->lcr, (char )(values | 0x80));
      		    (*pChan->outByte) (pChan->brdh, MSB (baudTable[ix].preset));
      		    (*pChan->outByte) (pChan->brdl, LSB (baudTable[ix].preset));
!     		    (*pChan->outByte) (pChan->lcr, (char )values);
  		    status = OK;
  		    break;
  		    }
  		}

- --- 174,198 ----
      int ix;
      int status;
      int baudH;
      int baudL;
      int oldlevel;

      switch (request)
  	{
  	case SIO_BAUD_SET:

              oldlevel = intLock();
  	    status = EIO;
  	    for (ix = 0; ix < NELEMENTS (baudTable); ix++)
  		{
  		if (baudTable [ix].rate == arg)	/* lookup baud rate value */
  		    {
!     		    (*pChan->outByte) (pChan->lcr, (char)0x83);
      		    (*pChan->outByte) (pChan->brdh, MSB (baudTable[ix].preset));
      		    (*pChan->outByte) (pChan->brdl, LSB (baudTable[ix].preset));
!     		    (*pChan->outByte) (pChan->lcr, 0x03);
  		    status = OK;
  		    break;
  		    }
  		}

***************
*** 244,258 ****
          case SIO_BAUD_GET:

              oldlevel = intLock();

              status = EIO;
! 	    values = (*pChan->inByte)(pChan->lcr);
! 	    (*pChan->outByte) (pChan->lcr, (char )(values | 0x80));
              baudH = (*pChan->inByte)(pChan->brdh);
              baudL = (*pChan->inByte)(pChan->brdl);
! 	    (*pChan->outByte) (pChan->lcr, (char )values);

              for (ix = 0; ix < NELEMENTS (baudTable); ix++)
                  {
                  if ( baudH  == MSB (baudTable[ix].preset) &&
                       baudL  == LSB (baudTable[ix].preset) )
- --- 202,215 ----
          case SIO_BAUD_GET:

              oldlevel = intLock();

              status = EIO;
!             (*pChan->outByte) (pChan->lcr, (char)0x83);
              baudH = (*pChan->inByte)(pChan->brdh);
              baudL = (*pChan->inByte)(pChan->brdl);
!             (*pChan->outByte) (pChan->lcr, 0x03);

              for (ix = 0; ix < NELEMENTS (baudTable); ix++)
                  {
                  if ( baudH  == MSB (baudTable[ix].preset) &&
                       baudL  == LSB (baudTable[ix].preset) )

- -------------------==== Posted via Deja News ====-----------------------
      http://www.dejanews.com/     Search, Read, Post to Usenet

---------------------------

End of New-News digest
**********************


From brett.smith@wg.com  Fri Dec  5 04:22:51 1997
From: "Brett Smith"<brett.smith@wg.com>
Date: Fri Dec  5 04:22:55 PST 1997
Subject: Re[2]: sleep for 100 micro seconds 
--MimeMultipartBoundary
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit


     
>    The question here is that we would like the task to sleep for that 
> period and come back to check whether or not the DMA is done and keep
> going on from there. We have tried 'taskDelay' which sleep in unit of 1/60 
> second. It is too long. We would like it to sleep for only 100 micro
> second or so. Any idea is appreciated. 
-- 
Your sysClkRate is currently set to 60 ticks per second.  The units to 
taskDelay are in system clock ticks.  If you want, you could set 
sysClkRate to 1000, and then your minimum taskDelay would be 1/1000 of a 
second.  For a delay as small as what you need, I would build a small 
loop where you increment a counter and vary the loop to get the time 
delay you want.  You could use timexN to help you do this to time this 
small function.
                                           <|
    Alan, Debbie, and Amanda Currie         |___      ~~O  __O 
    currie@ghgcorp.com     Houston, Tx      |~~@\   _-\<,_-\<,_ 
    '96 Santana Arriva & Burley D'Lite      `(*)'--(*)/---|/-(*)
--MimeMultipartBoundary--
     
     Won't setting the sysClkRate to a very small value cause performance 
     issues?  You may need to do some analisys to determine an acceptable 
     rate.  Won't setting a sysClkRate=1000 cause an Interrupt 1000 times a 
     second (incurring the overhead associated with interrupting a task, 
     incrementing the clock value, and returning control to the task)?
     
     BWS


--MimeMultipartBoundary--


From ste%narwhal@wago.de  Fri Dec  5 07:12:36 1997
From: Steve James <ste%narwhal@wago.de>
Date: Fri Dec  5 07:12:40 PST 1997
Subject: Samba (SMB) for VxWorks?
This is a multi-part message in MIME format.
--------------EB4CAC68E88916C3F74318A7
Content-Type: text/plain; charset=us-ascii
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

Anyone out there ported Samba (SMB or Rhumba) client to a VxWorks
target?

--
--Steve James, Senior Design Eng.--............................
--Wandel & Goltermann Ltd........--.+44 (0)1752 765367 (vmail).
--Eurotech House, Burrington Way.--.+44 (0)1752 791101 (FAX)...
--Plymouth, Devon. PL5 3LZ. U.K..--.+44 (0)1752 772773 (switcb)


--------------EB4CAC68E88916C3F74318A7
Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Steve James
Content-Disposition: attachment; filename="vcard.vcf"

begin:          vcard
fn:             Steve James
n:              James;Steve
org:            Wandel & Goltermann Ltd., Plymouth
adr:            Eurotech House, Burrington Way;;Honicknowle;Plymouth;Devon;PL5 3LZ;UK
email;internet: narwhal!ste@wago.de
title:          Senior Design Engineer
tel;work:       +44 (0)1752 765367
tel;fax:        +44 (0)1752 791101
x-mozilla-cpt:  ;-1
x-mozilla-html: TRUE
end:            vcard


--------------EB4CAC68E88916C3F74318A7--




From marc@onion.jhuapl.edu  Fri Dec  5 07:26:18 1997
From: marc@onion.jhuapl.edu (Marcus H. Gates)
Date: Fri Dec  5 07:26:22 PST 1997
Subject: Re: impact of changing clock rate

  We are using vxWorks 5.1.1 and are using a clock rate of 100 ticks/msec,
we would like to switch to a higher clock rate (1000ticks/msec) and need
to know if/how using a higher clock rate might negatively impact performance.

                              Thanks
                                    Marc Gates


From IMARUSCA@edc.ge.com  Fri Dec  5 11:15:41 1997
From: "Marusca, Ioan" <IMARUSCA@edc.ge.com>
Date: Fri Dec  5 11:15:44 PST 1997
Subject: RE: PowerPC performance

Hi,

1) If you have a PPC860 Rev.A1 chip the silicon bugs will prevent to run   
    

with I and D cache enabled.
Starting with Rev.A2 chips cache bugs are fixed.

2) The caches must be disabled at the begining. The defines

#define INCLUDE_CACHE_SUPPORT ; in configdb.h

and

#define USER_I_CACHE_ENABLE
#define USER_D_CACHE_ENABLE
#define INCLUDE_CACHE_SUPPORT

are used to enable/disable at your wish the cache.

Also the definitions

#define USER_I_MMU_ENABLE
#define USER_D_MMU_ENABLE
#define INCLUDE_MMU_BASIC

may be usefull.

VxWorks sets the caches a bit later by calling

#ifdef  USER_I_CACHE_ENABLE
    cacheEnable (INSTRUCTION_CACHE);  /* enable instruction cache */
#endif /* USER_I_CACHE_ENABLE */

in "bootConfig.c", "usrConfig.c"

and

#ifdef USER_D_CACHE_ENABLE
    cacheEnable (DATA_CACHE);   /* enable data cache */
#endif  /* USER_D_CACHE_ENABLE */

in "usrConfig.c"

Some performance tests for ADS860 board with a simple program loop gave   
    

the following results

 - with DC and IC disabled @25MHz = 370 microsec
 - with DC and IC enabled @25MHz = 68 microsec (5.4 times faster)



==========================================================
Ioan Marusca
                                                            General
Electric Multilin
215 Anderson Avenue, Markham, Ontario, L6E1B3, Canada
Email: Ioan.Marusca@edc.ge.com
                                    Tel:(905)-201-2141
==========================================================

>Hello,
>
>The VxWorks BSP for the MPC860 (PowerPC) disables both the I-cache >and
>D-cache as far as I can tell.  I have looked around for any information   
    

on
>this.
>Does anyone know why the caches are disabled?
>
>thanks,
>Bill



From espin@idiom.com  Fri Dec  5 11:35:17 1997
From: Geoffrey Espin <espin@idiom.com>
Date: Fri Dec  5 11:35:21 PST 1997
Subject: Re: impact of changing clock rate
--MimeMultipartBoundary
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Marc, et al,

> Submitted-by marc@onion.jhuapl.edu  Fri Dec  5 07:26:18 1997
>   We are using vxWorks 5.1.1 and are using a clock rate of 100 ticks/msec,
> we would like to switch to a higher clock rate (1000ticks/msec) and need
> to know if/how using a higher clock rate might negatively impact performance.

Obviously the more interrupts per second from any source will
cost you something.  A 1000/sec on lots of CPUs these days is probably
not a big deal.  If an interrupt costs you 5 microseconds:

    1000 * 5 usec = 5 millisecs of mostly wasted time every second

But note that you cannot use taskDelay() from an interrupt handler!  :-)

Attached is a portable sub-clock tick "hard" (busy loop) delay library.
I can't believe how many times I've seen code like (bletch!):

    for (ix = 0; ix < 0x40000; ix++) ; /* spin wheels for 20 usecs (I hope) */

WRS does supply nanosleep() but is actually limited to system clock rate
usually I think.  Here's a shell friendly API for it (nano.c):

    #include "vxWorks.h"
    #include "time.h"
     
    void delayNano
	(
	long nano_secs /* delay in nanoseconds */
	)
	{
	struct timespec ts;
     
	ts.tv_sec  = 0;
	ts.tv_nsec = nano_secs;
	nanosleep (&ts, NULL);
	}

If this works for you great... but again, not from an ISR.

Attached are my delayLib.c and delayLib.h.  If you have any
 suggestions or improvments let me know: espin@idiom.com.

Geoff
-- 
Geoffrey Espin espin@idiom.com
-- 


+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/* delayLib.c - self-calibrating hard delay routines */

/*
modification history
--------------------
27Mar96,espin   written.
*/

/*
DESCRIPTION
This module provides "hard" delay routines for micro and millisecond periods.

EXAMPLE
.CS
    -> delayMsec (1);  /@ very first call used for calibration @/
    ->  timexN delayMsec, 10
    timex: 75 reps, time per rep = 9555 +/- 222 (2%) microsecs
    value = 59 = 0x3b = ';'
    ->
.CE

The routines sysClkRateGet() and tickGet() are used to calibrate
the timing loop the first time either routine is called.  Therefore,
the first call is much longer than requested.  If the system clock
rate is changed, a new calibration must be explicitly made by
passing a negative delay duration.

INTERNAL
A one-shot timer could provide high resolution sub-clock tick
delay... but then this would be board dependent.
*/

#include "vxWorks.h"
#include "tickLib.h"
#include "sysLib.h"

#define	DEBUG	FALSE

void delayUsec (unsigned int u);
void delayMsec (unsigned int m);

/*******************************************************************************
*
* delayUsec - hard delay for <u> microseconds
*
* RETURNS: N/A
*/

#if	DEBUG
int delayLoop = 0;
#endif	/* DEBUG */

void delayUsec
    (
    unsigned int u	/* # of microsecs */
    )
    {
#if	!DEBUG
    static int delayLoop = 0;
#endif	/* !DEBUG */
    int ix;
    int iy;

    if (delayLoop == 0 || u == 0xffffffff)		/* need calibration? */
	{
	int maxLoop;
	int start = 0;
	int stop = 0;
	int mpt = (1000 * 1000) / sysClkRateGet (); /* microsecs per tick */

	for (delayLoop = 1; delayLoop < 0x1000 && stop == start; delayLoop<<=1)
	    {
	    for (stop = start = tickGet (); start == stop; start = tickGet ())
		;			/* wait for clock turn over */

	    delayUsec (mpt);		/* single recursion */
	    stop = tickGet ();
	    }
	
	maxLoop = delayLoop / 2;	/* loop above overshoots */
#if	DEBUG
	printf ("maxLoop = %d\n", maxLoop);
#endif	/* DEBUG */
	start = 0;
	stop = 0;
	if (delayLoop < 4)
	    delayLoop = 4;
	for (delayLoop /= 4; delayLoop<maxLoop && stop == start; delayLoop++)
	    {
	    for (stop = start = tickGet (); start == stop; start = tickGet ())
		;			/* wait for clock turn over */

	    delayUsec (mpt);		/* single recursion */
	    stop = tickGet ();
	    }
#if	DEBUG
	printf ("delayLoop = %d\n", delayLoop);
#endif	/* DEBUG */
	}

    for (iy = 0; iy < u; iy++)
	{
	for (ix = 0; ix < delayLoop; ix++)
	    ;
	}
    }
/*******************************************************************************
*
* delayMsec - hard delay for <m> milliseconds
*
* RETURNS: N/A
*/

void delayMsec
    (
    unsigned int m	/* # of millisecs */
    )
    {
    delayUsec (m * 1000);
    }
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
/* delayLib.h - self-calibrating hard delay routines header file */

/*
modification history
--------------------
27Mar96,espin   written.
*/

#ifndef __INCdelayLibh
#define __INCdelayLibh

#if defined(__STDC__) || defined(__cplusplus)
extern void delayUsec (unsigned int u);
extern void delayMsec (unsigned int m);
#else
extern void delayUsec ();
extern void delayMsec ();
#endif  /* __STDC__ || __cplusplus */

#endif	/* __INCdelayLibh */
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
--MimeMultipartBoundary--


From jford@sadira.gb.nrao.edu  Fri Dec  5 13:56:52 1997
From: John Ford <jford@bara.gb.nrao.edu>
Date: Fri Dec  5 13:57:00 PST 1997
Subject: Re: sleep for 100 micro seconds

> Submitted-by chenyc@fnal.gov  Thu Dec  4 13:03:58 1997
> Submitted-by: Yenchu Chen <chenyc@fnal.gov>
> 
> Hi,
> 
>    We are doing data acquisition test. There is a task to grab events from
> our interface by doing DMA transfer. The single board computer is MVME167.
> We know for sure that once the DMA transfer is initiated it will take more
> than 150 micro seconds to turn around because of the event size. 
> 
>    The question here is that we would like the task to sleep for that
> period and come back to check whether or not the DMA is done and keep
> going on from there. We have tried 'taskDelay' which sleep in unit of 1/60
> second. It is too long. We would like it to sleep for only 100 micro
> second or so. Any idea is appreciated.
> 
>    Best regards,      Yen-Chu Chen
>                       chenyc@fnal.gov
>                       (630) 840-8871 (experiment)
>                       (886)-(2) 789-9681 (Inst. of Phys., Academia Sinica)
> 

I am assuming that you don`t want to busy wait, as that pretty well
misses to point of using DMA.  The best way to do this is to program
the DMA controller to generate an interrupt when done.  Then, in the
interrupt handler, give a semaphore.  Meanwhile, your task that is
waiting on the DMA controller can do a semTake(doneSem,WAIT_FOREVER).
Then, when the DMA operation is done, the task will be unblocked.

I use this technique to sync up a timer to a stepper motor index
pulse, and for other short time delays.

1) The DMA interrupt handler:

static int giveDone( )
{
  semGive (DMADoneSem);
  return 0;
}

2) In the control task:

control()
{
		while(1)
		{
		  DMAread(); // start DMA op
		  semTake( DMADoneSem,WAIT_FOREVER ); // wait for DMA
		// do more useful stuff after DMA done
		}
}

Hope this is helpful

-- 
John Ford
National Radio Astronomy Observatory
Green Bank, WV 24944-0002
jford@nrao.edu



From daemon@csg.lbl.gov  Sat Dec  6 04:00:37 1997
From: daemon@csg.lbl.gov
Date: Sat Dec  6 04:00:42 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Sat Dec  6 04:00:34 PST 1997

        Subject: NFS question
        Subject: Memory Allocation Question
        Subject: Re: NFS question

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: NFS question
Date: 02 Dec 1997 16:54:08 -0500
From: Tom Emerson <tree@spyglass.com>
Organization: Spyglass, Inc.
Message-ID: <0xn2ijjtrz.fsf@nigiri.cam.spyglass.com>

Using VxWorks 5.3.1 with the 486 BSP, Tornado 1.0.1.

I'm attempting to NFS mount a directory exported from an Ultra
and am having little luck:

- -> nfsMount "makimoto","/d2/export","foo"
value = 0 = 0x0

- -> nfsDevShow
device name          file system                                       
- -----------          -----------                                       
foo                  makimoto:/d2/export                               

- -> nfsAuthUnixSet "makimoto",1262,1000,0
value = 0 = 0x0

- -> nfsAuthUnixShow
machine name = makimoto
user ID      = 1262
group ID     = 1000

- -> cd "/foo/"
couldn't change working directory to "/foo": no such file or directory
value = -1 = 0xffffffff

Huh?

This is a host-side shell, so I suppose this makes sense. However

- -> @cd "/foo/"
undefined symbol: @cd

Did I miss something when the kernel was configured?

Any help is greatly appreciated. Thanks in advance,

    -tre

- --
Tom Emerson                                     Spyglass, Inc.
Software Engineer                    Cambridge Research Center
<mailto:tree@spyglass.com>           <http://www.spyglass.com>

---------------------------

Newsgroups: comp.os.vxworks
Subject: Memory Allocation Question
Date: Tue,  2 Dec 1997 18:03:34 -0500
From: Kevin Bradley <kb+@andrew.cmu.edu>
Organization: Doctoral student, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA
Message-ID: <AoV9D6y00iWP09OA40@andrew.cmu.edu>

This is related to something that just came up on my target machine.
For arcane reasons, apparantly DMA buffers for x86 PCs need to be
allocated below 16 MB so they can be addressed by the DMA controller
(wonderful segmented 24-bit architecture on that, eh?).

I just upgraded the target machine to have 32 MB of RAM from 16 MB,
and my DMA device stopped working.  I assume it's because "valloc"
returned memory that was above 16MB.

Therefore, my question lies in regard to how DMA memory is allocated,
and what's the best way to make sure I've allocated a buffer meeting
my constraints (must be page-aligned on a 64k boundary, overall 
address must be < 16MB)?

cacheDmaMalloc() seems promising, but it makes no guarantees
beyond being cache-safe (and I don't even know if that's an
issue for x86 architectures anyway).

I'm getting around it now with a "static" buffer allocated at
compile time, but I'd rather not do that as it makes the executable
that much larger, and I'm not certain that future conditions will
guarantee that the kernel download will always live in the lower
pages of RAM.



                                                    -- Kevin


---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: NFS question
Date: Tue,  2 Dec 1997 17:55:04 -0500
From: Kevin Bradley <kb+@andrew.cmu.edu>
Organization: Doctoral student, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA
Message-ID: <QoV978u00iWP09O=Y0@andrew.cmu.edu>
References: <0xn2ijjtrz.fsf@nigiri.cam.spyglass.com>

Excerpts from netnews.comp.os.vxworks: 2-Dec-97 NFS question by Tom
Emerson@spyglass.com 
> I'm attempting to NFS mount a directory exported from an Ultra
> and am having little luck:
>  
> -> nfsMount "makimoto","/d2/export","foo"
> value = 0 = 0x0

<snip>

> -> cd "/foo/"
> couldn't change working directory to "/foo": no such file or directory
> value = -1 = 0xffffffff

This is because it's "foo", not "/foo" -- see example below.

I have a 486 BSP also, although I'm using telnet rather than
the host shell, so I can't help with the "@cd" command.  It
might be related to "INCLUDE_POSIX" somehow, but that's just
a random guess.

- ---------------------------------------------------------------
- -> nfsDevShow
device name          file system                                       
- -----------          -----------                                       
value = 0 = 0x0
- -> nfsMount "kalamari", "/dosd/Tornado", "foo"
value = 0 = 0x0
- -> nfsDevShow
device name          file system                                       
- -----------          -----------                                       
foo                  kalamari:/dosd/Tornado                            
value = 0 = 0x0
- -> nfsMount "kalamari", "/dosd/Tornado", "/foo2"
value = 0 = 0x0
- -> nfsDevShow
device name          file system                                       
- -----------          -----------                                       
foo                  kalamari:/dosd/Tornado                            
/foo2                kalamari:/dosd/Tornado                            
value = 0 = 0x0
- -> cd "/foo2"
value = 0 = 0x0
- -> pwd
/foo2
value = 6 = 0x6
- -> cd "/foo"
cd: error = 0xc0009.
value = -1 = 0xffffffff = _end + 0xffe4c58f
- -> pwd
/foo2
value = 6 = 0x6
- -> cd "foo"
value = 0 = 0x0
- -> pwd
foo
value = 4 = 0x4
- -> cd "/"      
value = 0 = 0x0
- -> pwd
foo/
value = 5 = 0x5
- -> ls
.
..
.wind
host
share
target
value = 0 = 0x0
- -> cd "/foo2"
value = 0 = 0x0
- -> pwd
/foo2
value = 6 = 0x6
- -> ls
.
..
.wind
host
share
target
value = 0 = 0x0

- --------------------------------------------------------------

Devices mounted without a "/" appear to start in the "root"
space, before "/".  So "foo/blah" works, while "/foo/blah"
doesn't.

In your example, if you cd to "foo" rather than "/foo", I
think it works.

I don't know the conventions, but it seems to me that 
mounting as "foo" rather than "/foo" leads to confusion.

Hope this helps.


                                            -- Kevin




---------------------------

End of New-News digest
**********************


From Phil_Watson@masirv.com  Sat Dec  6 15:46:19 1997
From: Phil_Watson@masirv.com (Phil Watson)
Date: Sat Dec  6 15:46:23 PST 1997
Subject: Re: comp.os.vxworks newsdigest
> Date: 02 Dec 1997 16:54:08 -0500
> From: Tom Emerson <tree@spyglass.com>
> Organization: Spyglass, Inc.
> Message-ID: <0xn2ijjtrz.fsf@nigiri.cam.spyglass.com>
> 
> - -> nfsMount "makimoto","/d2/export","foo"
> value = 0 = 0x0
> 
[snip]
> 
> - -> cd "/foo/"
> couldn't change working directory to "/foo": no such file or directory
> value = -1 = 0xffffffff
> 
> Huh?

Try simply "cd "foo". Or insert the slash in your nfsMount command. 

/psw
Philip Watson, Phil_Watson@masirv.com
Manager, Embedded Software Development
Matsushita Avionics Systems Corp.
15253 Bake Parkway
Irvine, California, 92618  U.S.A.



From daemon@csg.lbl.gov  Sun Dec  7 04:00:27 1997
From: daemon@csg.lbl.gov
Date: Sun Dec  7 04:00:30 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Sun Dec  7 04:00:25 PST 1997

        Subject: Re: set vme167 to date

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Re: set vme167 to date
Date: 03 Dec 1997 19:47:52 -0800
From: Martin Shepherd <mcs@goblin.caltech.edu>
Organization: California Institute of Technology.
Message-ID: <yc9g1o9bwgn.fsf@goblin.caltech.edu>
References: <199712031408.GAA29087@lbl.gov> <348582F8.7C35@sandia.gov>


Don Small <dmsmall@sandia.gov> writes:
> Wu, Huang wrote:
> > We are using a VME167 board with MC68040 processor (host sunos4). We do
> > like to set the vme167 board to the day....
>...
> You are correct in what vxWorks does a boot time.  I have added two new
> functions to sysLib.c that will read the hardware clock and set the
> vxWorks clock at boot time...

Note that the MVME167 time-of-day clock only allows 2 BCD digits for
the year, so it will presumably go to zero (or lock up at 99) in 2
years time, and your functions will break.

Martin Shepherd  (mcs@astro.caltech.edu)

---------------------------

End of New-News digest
**********************


From daemon@csg.lbl.gov  Mon Dec  8 04:00:35 1997
From: daemon@csg.lbl.gov
Date: Mon Dec  8 04:00:40 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Mon Dec  8 04:00:31 PST 1997

        Subject: Porting MPC 801
        Subject: Re: set vme167 to date

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Porting MPC 801
Date: 2 Dec 1997 05:27:51 GMT
From: "vincent" <jplai@usa.net>
Organization: uking
Message-ID: <01bd1676$328d1260$a1fbdf8b@vincent>

Dears,

I am trying to port my system using MPC 801, 
Does anyone can give me some suggestion about the BSP source and experience
?

Thanks a lot

vincent

---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: set vme167 to date
Date: Wed, 03 Dec 1997 09:04:08 -0700
From: Don Small <dmsmall@sandia.gov>
Organization: Sandia National Laboratories
Message-ID: <348582F8.7C35@sandia.gov>
References: <199712031408.GAA29087@lbl.gov>

Wu, Huang wrote:
> 
> --MimeMultipartBoundary
> Content-Type: text/plain
> 
> Hello there,
> 
> We are using a VME167 board with MC68040 processor (host sunos4). We do
> like to set the
> vme167 board to the day, but without using host or network since our
> final
> application will be a standalone system. We are quite sure there is a
> realtime
> clock in the hardware of vme167 since it works for OS9 realtime
> operating
> system. I once tried to set the time by
> i) including Posix Macro in configAll.h
> ii) using clock_setime(clock_id,&tp) to set time
> iii) using clock_getime(clock_id,&tpp) to get time
> But so long as I reboot the system, the initial time I get is always
> zero.
> (as one expected, everytime the system is rebooted, vxWorks resets the
> clock to zero).
> This seems to tell me we need to connect the hardware clock to the
> software somehow, which
> is not clear to me.
> Does anyone have any idea to illuminate me?
> 
> Many thanks
> 
> Huang
> huang.wu@nrc.ca
> Flight research Lab, NRC, Canada
> --MimeMultipartBoundary--

Huang,

You are correct in what vxWorks does a boot time.  I have added two new
functions to sysLib.c that will read the hardware clock and set the
vxWorks clock at boot time.  Here are the new functions.

#include <time.h>
#include <timers.h>

unsigned int ReadBCD(unsigned char *ptr)
{
    unsigned char   cTemp;

    cTemp = *ptr & 0xff;

    return( (cTemp >> 4) * 10 + (cTemp & 0xf) );
}

#define TOD_SEC     0xfffc1ff9
#define TOD_MIN     0xfffc1ffa
#define TOD_HOUR    0xfffc1ffb
#define TOD_WDAY    0xfffc1ffc
#define TOD_MDAY    0xfffc1ffd
#define TOD_MON     0xfffc1ffe
#define TOD_YEAR    0xfffc1fff

void SetTime( void )
{
    struct tm Time;
    struct timespec RealTime;
    time_t Now;
    char    *buf;

    Time.tm_sec     = ReadBCD((unsigned char *)TOD_SEC);
    Time.tm_min     = ReadBCD((unsigned char *)TOD_MIN);
    Time.tm_hour    = ReadBCD((unsigned char *)TOD_HOUR);
    Time.tm_mday    = ReadBCD((unsigned char *)TOD_MDAY);
    Time.tm_mon     = ReadBCD((unsigned char *)TOD_MON)-1;
    Time.tm_year    = ReadBCD((unsigned char *)TOD_YEAR);
    Time.tm_wday    = ReadBCD((unsigned char *)TOD_WDAY)-1;
    Time.tm_yday    = 0;
    Time.tm_yday    = 0;
    Time.tm_isdst   = 0;

    printf("%d:%d:%d  %d/%d/%d\n", Time.tm_hour, Time.tm_min,
Time.tm_sec,
        Time.tm_mon, Time.tm_mday, Time.tm_year );

    RealTime.tv_sec = mktime(&Time);
    RealTime.tv_nsec = 0;
    clock_settime(CLOCK_REALTIME, &RealTime);

    time(&Now);
    buf = ctime(&Now);
    printf("%s\n", buf);

}

Add these to the end of sysLib.c.  Add a prototype of 

void SetTime(void);

just before the sysHwInit2() function and then add 

SetTime();

as the last call in sysHwInit2.  This works great for our stuff.  We
currently set the hardware clock with NTP (network time protocol)
functions which initially came from the vxworks archive.  You may just
want to write your own function to set the hardware clock that you can
call when this is necessary.

Don Small

---------------------------

End of New-News digest
**********************


From annmarie.smiddy@wg.com  Mon Dec  8 06:29:06 1997
From: "Annmarie Smiddy"<annmarie.smiddy@wg.com>
Date: Mon Dec  8 06:29:10 PST 1997
Subject: 16550Sio driver

     


______________________________ Forward Header __________________________________
Subject: 
Author:  Annmarie Smiddy at WG-RAL-ENG
Date:    12/4/97 9:57 AM


     Has anyone had experience connecting/using the VxWorks ns16550Sio 
     driver for the pc486 bsp package?  I have various questions and would 
     appreciate anyone I could contact via email.
     
     Thanks,
     Annmarie
     
     
     smiddy@wg.com




From jean@tick.dev.ampersand.com  Mon Dec  8 07:11:53 1997
From: Jean Nuccitelli <jean@ampersand.com>
Date: Mon Dec  8 07:11:56 PST 1997
Subject: DeviceNet


Hello,

Has anyone implemented a device driver under VxWorks that uses 
the DeviceNet and CAN communication protocol?

Thanks in advance.

Jean

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~  Jean Nuccitelli                  email  : jean@ampersand.com ~
~  Ampersand, Inc.                  Phone #: 508-671-0785       ~
~  Billerica, MA                    FAX #  : 508-671-0786       ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


From kheck@cs5.dasd.honeywell.com  Mon Dec  8 08:38:32 1997
From: Kevin Heck <kheck@cs5.dasd.honeywell.com>
Date: Mon Dec  8 08:38:35 PST 1997
Subject: Vxsim and networking
I am trying to use VxSim to simulate a UDP connection between
a client and a server.  I am creating two VxSim processes, one
being the server (vxsim0) and the other the client (vxsim1).
Both of these processes are running on the same host which is
a Sun running Solaris.  It is my understanding that the vxsim0
process is assigned an IP address of 127.0.1.0 and the vxsim1
process is assigned an IP address of 127.0.1.1.  I pretty much
set up the interface like the example UDP client-server example
in the VxWorks 5.3.1 Programmer's Guide.  

     The problem that I am having is that when I send data from
the client to the server, the server is supposed to be able to
extract the client's IP address and port out of the "recvfrom"
command's "from" argument.  When I examine the IP address and 
port, however, the IP address is 0.0.0.0 and the port is 0.  The
data in the "buf" argument is correct.  So it appears that the
data can be sent from the client to the server but the server
cannot send data back to the client, (unless I hardcode the port
and IP address for the client on the server side, which I don't
want to do).  Is this an artifact of VxSim or possibly some
other problem.  Any ideas would be appreciated.  

                          Thank You, 

                                Kevin Heck

kheck@cs5.dasd.honeywell.com


From cliff.young@ariel.com  Tue Dec  9 07:17:11 1997
From: "Clifford A. Young" <cliff.young@ariel.com>
Date: Tue Dec  9 07:17:14 PST 1997
Subject: Re: Vxsim and networking
Kevin Heck wrote:

>      The problem that I am having is that when I send data from
> the client to the server, the server is supposed to be able to
> extract the client's IP address and port out of the "recvfrom"
> command's "from" argument.  When I examine the IP address and
> port, however, the IP address is 0.0.0.0 and the port is 0.  The
> data in the "buf" argument is correct.  So it appears that the
> data can be sent from the client to the server but the server
> cannot send data back to the client, (unless I hardcode the port
> and IP address for the client on the server side, which I don't
> want to do).  Is this an artifact of VxSim or possibly some
> other problem.  Any ideas would be appreciated.
>
>                           Thank You,
>
>                                 Kevin Heck
>
> kheck@cs5.dasd.honeywell.com
>

ensure that the length parameter is set to the sizeof the from structure
(sockaddr). I know it looks like a value that is returned on the call,
but it also must be set before the call to tell recvfrom() what the size
of the structure to be filled is...

here is an example:

    flen = sizeof(struct sockaddr);
    length = recvfrom( sd, tpkt, sizeof( ps_t ),
                       0, (struct sockaddr *)&from, &flen);



Cliff


--

                       \\|//
                       {. .}
_/_/_/_/_/_/_/_/oOOo_/_  U  _/_oOOo_/_/_/_/_/_/_/_/_/_/_/
                 Clifford A. Young
physical: Ariel Corp.  225 Old New Brunswick Ave. N.J. 08854
 audible:  (732)394-6009
  visual:  (732)562-1134
 logical:  cliff.young@ariel.com  http://www.ariel.com
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/





From kheck@cs5.dasd.honeywell.com  Tue Dec  9 08:24:34 1997
From: Kevin Heck <kheck@cs5.dasd.honeywell.com>
Date: Tue Dec  9 08:24:37 PST 1997
Subject: Re: Vxsim and networking
Clifford A. Young wrote:
> 
> Kevin Heck wrote:
> 
> >      The problem that I am having is that when I send data from
> > the client to the server, the server is supposed to be able to
> > extract the client's IP address and port out of the "recvfrom"
> > command's "from" argument.  When I examine the IP address and
> > port, however, the IP address is 0.0.0.0 and the port is 0.  The
> > data in the "buf" argument is correct.  So it appears that the
> > data can be sent from the client to the server but the server
> > cannot send data back to the client, (unless I hardcode the port
> > and IP address for the client on the server side, which I don't
> > want to do).  Is this an artifact of VxSim or possibly some
> > other problem.  Any ideas would be appreciated.
> >
> >                           Thank You,
> >
> >                                 Kevin Heck
> >
> > kheck@cs5.dasd.honeywell.com
> >
> 
> ensure that the length parameter is set to the sizeof the from structure
> (sockaddr). I know it looks like a value that is returned on the call,
> but it also must be set before the call to tell recvfrom() what the size
> of the structure to be filled is...
> 
> here is an example:
> 
>     flen = sizeof(struct sockaddr);
>     length = recvfrom( sd, tpkt, sizeof( ps_t ),
>                        0, (struct sockaddr *)&from, &flen);
> 
> Cliff
> 
> --
> 
>                        \\|//
>                        {. .}
> _/_/_/_/_/_/_/_/oOOo_/_  U  _/_oOOo_/_/_/_/_/_/_/_/_/_/_/
>                  Clifford A. Young
> physical: Ariel Corp.  225 Old New Brunswick Ave. N.J. 08854
>  audible:  (732)394-6009
>   visual:  (732)562-1134
>  logical:  cliff.young@ariel.com  http://www.ariel.com
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


Thanks Cliff, that was exactly the problem.


From npr@jach.hawaii.edu  Tue Dec  9 10:55:42 1997
From: Nick Rees <npr@jach.hawaii.edu>
Date: Tue Dec  9 10:55:46 PST 1997
Subject: AIA compatible parallel IF boards
I need to interface to a CCD camera that downloads its data via an
American Imaging Association (AIA) compatible digital interface board. 

The sort of card I need is basically a DMA engine with 16 inputs for pixel
data and a pixel clock input, a line enable input and a frame enable
input. I can possibly live without the line and frame enable. 

All lines are RS 422 differential input so the total number of inputs
(including 2 grounds) is typically 40. 

Such boards exists from multiple vendors for PC's but, of course, I want
to use VxWorks in either PMC or VME form factors. 

Has anybody had a similar experience, is there and recommendations or
suggestions? 

Thanks

Nick Rees




From daemon@csg.lbl.gov  Wed Dec 10 04:00:44 1997
From: daemon@csg.lbl.gov
Date: Wed Dec 10 04:00:50 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Wed Dec 10 04:00:41 PST 1997

        Subject: Parallel Port on FORCE40
        Subject: How do you time a context switch?
        Subject: DOS filesystem Errors

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Parallel Port on FORCE40
Date: Thu, 04 Dec 1997 11:13:25 +0100
From: Hap <HapNet@Technologist.com>
Organization: European Space Agency
Message-ID: <34868243.48866328@Technologist.com>

Hi Everybody,

I would like to use the PI/T2 port (Connector B12) as a centronix
interface on the
FORCE. Therefore I need to write my own driver. Does anybody have some
experience or examples which could help me in the first steps.

Regards ...

    Hap


- -----------------------------------------------

Hap@ws.estec.esa.nl


---------------------------

Newsgroups: comp.os.vxworks
Subject: How do you time a context switch?
Date: Tue, 09 Dec 1997 21:26:25 GMT
From: cant_stand@spam.net (John R. Cobarruvias)
Organization: Self
Message-ID: <348db6c5.111838001@news.jsc.nasa.gov>

ANTI SPAM EMAIL IN EFFECT. PLEASE SEND ANY EMAIL TO:
johncoby@orbitworld.net

So, how do you time a context switch? 

For instance, you are asked in a meeting "How fast is a context switch
for vxWorks running on a Motorola MV2604?"

How can you come up with this number without consulting WRS?

---------------------------

Newsgroups: comp.os.vxworks
Subject: DOS filesystem Errors
Date: Tue, 09 Dec 1997 18:59:43 GMT
From: jason@praxon.com (Jason Roybal)
Organization: Praxon Inc.
Message-ID: <348f94fa.613564258@news.alterdial.uu.net>
Reply-To: jason@praxon.com

I have been encountering frequent problems with using a DOS file
system under VxWorks.  While running a multi-threaded application, an
error has occurred that I can't seem to get around.  What happens is
when one thread has a particular file open for reading, and another
thread or separate application has the same file open for something
other than read, a nasty error happens.  The immediate symptom is the
system locking up.  When I reboot the target, the corrupt file can be
opened for reading, but not for writing.  Also, the directory that
contains that file seems to go 'read-only', and not allow any files in
it's level, or any sub-directory to be created or opened for write.
The 'fopen' on any of these files doesn't return an error, but once I
try to write (with 'write', 'fwrite', 'fprintf', etc), the system
crashes _hard_.

	The only fix that I have been able to do is reboot in DOS, and
run scandisk.  Scandisk then detects directory structure errors all
over the place.  The particular errors are the lengths of files being
mis-reported.  However, fixing the directory entries with scandisk
doesn't fix the problem.  Any of the affected files must be deleted,
and sometimes the directory affected must be removed and re-created.

	I have tried to delete the corrupt files without running
scandisk first, (in VxWorks), and it kills the system as well.

	This vulnerability to errors is causing us serious concern.
Has anyone encountered anything like this, and have any suggestions?

	Please respond via email to:

	jason@praxon.com
	
	Thanks!


---------------------------

End of New-News digest
**********************


From jford@sadira.gb.nrao.edu  Wed Dec 10 05:21:58 1997
From: John Ford <jford@bara.gb.nrao.edu>
Date: Wed Dec 10 05:22:02 PST 1997
Subject: Re: AIA compatible parallel IF boards
Greenspring has an Industry Pack module that has an FPGA on it.
These could be used, I would 
think. look at the IP-Altera, IP-XiLinx ,IP-Unidig-I-D, IP-HSPIO 

These don`t have a DMA engine on them, but I would think that your CPU
board would have one that could be used to DMA the data off the card.

-- 
John Ford
National Radio Astronomy Observatory
Green Bank, WV 24944-0002
jford@nrao.edu



From Susan.J.Henry@lmco.com  Wed Dec 10 06:27:21 1997
From: Susan J Henry <Susan.J.Henry@lmco.com>
Date: Wed Dec 10 06:27:24 PST 1997
Subject: VxWorks and Printing


Hello,

Our project/targets is a completely standalone (romable) embedded application 
running off of a MVME1603 PPC board (they do not talk to one another)  We have 
an ethernet connection to 2 printers that are on a LAN.  There is no UNIX box to
act as a print spooler (the "lp" command).  The printer has a Jet Direct 
Ethernet card in it which acts as the print server.  

Does anyone have any tips or hints on how I might simulate this "lp" spool 
process in vxWorks?  I am using a socket (tcp/ip protocol) to send the data to 
the printer.

Any help would be appreciated.

TIA,
Sue Henry
Lockheed Martin Naval Launching Systems 
103 Chesapeake Park Plaza
Baltimore, MD 21220
susan.j.henry@lmco.com
410.682.0776


From thomas.arand@oen.siemens.de  Wed Dec 10 08:06:24 1997
From: thomas.arand@oen.siemens.de (Arand, Thomas)
Date: Wed Dec 10 08:06:27 PST 1997
Subject: Flash File Sytem for VxWorks

Hi VxWorks-world,

we are trying to build a file system over a flash device. Has anyone done
that with VxWorks? What software do you use? Where to get it from? What
experiences?

Any help is appreciated=21

Thomas Arand

 ----------------------------------------------------------------------
Thomas Arand                              Siemens AG
Tel.  +49 - 89 - 722 42296
Fax. +49 - 89 - 722 26572
thomas.arand=40oen.siemens.de




From espin@idiom.com  Wed Dec 10 11:32:35 1997
From: Geoffrey Espin <espin@idiom.com>
Date: Wed Dec 10 11:32:39 PST 1997
Subject: How do you time a context switch?
John,

> Subject: How do you time a context switch?
> From: cant_stand@spam.net (John R. Cobarruvias)
> ANTI SPAM EMAIL IN EFFECT. PLEASE SEND ANY EMAIL TO:
> johncoby@orbitworld.net
> 
> So, how do you time a context switch? 
> For instance, you are asked in a meeting "How fast is a context switch
> for vxWorks running on a Motorola MV2604?"
> How can you come up with this number without consulting WRS?

Roughly,

    -> sem = semBCreate (0, 0)
    -> timexFunc 0, semGive, sem
    -> timexFunc 1, semTake, sem
    -> timexN

Establish baseline for give-take in single task context.

    -> repeat 0, semGive,sem
    -> timexN semTake, sem

Shell task pri=1 blocks while infinitely looping repeat task at pri=100
context switches in for each give.  Now subtract first result from second
to get context switch without semaphore overhead, which usually would
be present.

Good enough for hand grenades...

Geoff
--
Geoffrey Espin espin@idiom.com


From prewitt@ticipa.Works.ti.com  Wed Dec 10 12:57:51 1997
From: prewitt@ticipa.Works.ti.com (Jim Prewitt)
Date: Wed Dec 10 12:57:55 PST 1997
Subject: Does anyone know of any revisions to usrTime.c?

Does anyone know of any revisions to the following:


"
/************************************************************************/
/* Copyright 1990 MBARI                                                 */
/************************************************************************/
/* Header: /u3/mc/vm/master/vw25/./src/makeplat/vxworks/usrTime/usrTime.c*/
/* Summary  : Unix-compatible Time Routines for SBE VPU-30 under vxWorks*/
/* Filename : usrTime.c                                                 */
/* Author   : Bob Herlien (rah)                                         */
/* Project  : New ROV                                                   */
/* Revision: 1.1.1.1                                                    */
/* Created  : 02/28/91                                                  */
/************************************************************************/
"


If there are revisions, does anyone know where I can obtain them?



Regards,

Jim Prewitt


From dropka@swcp.com  Wed Dec 10 13:58:20 1997
From: Tom Dropka <dropka@swcp.com>
Date: Wed Dec 10 13:58:23 PST 1997
Subject: DOS filesystem
I'm using version 5.1, and my current project has a requirement to use
the DOS filesystem.  Since the dosFs performance is not very good and
gets worse as the file gets bigger, I'm trying to implement a rawFs
solution on top of contiguous DOS files.  I can find the starting cluster
number of all the files, but I don't know how to correlate that to
blocks or sectors on a SCSI disk.  Does anyone out there know how VxWorks
relates clusters to blocks?

Thanks,
Tom Dropka
Applied Technology Associates
Albuquerque, NM


From dropka@swcp.com  Wed Dec 10 14:02:14 1997
From: Tom Dropka <dropka@swcp.com>
Date: Wed Dec 10 14:02:18 PST 1997
Subject: IP-SVGA
I'm currently trying to write a driver for the Snijder MicroSystems IP-SVGA
module.  I think that's the same one that GreenSpring and Gespac sell.  I
know there's a Vx-ACRTC driver available, but I'm not sure what capabilities
that provides.  If anyone has experience with that driver or has written
any simple text mode routines they'd be willing to share, I'd appreciate
it.  I've also got the TR-UVGA transition module.

Thanks,
Tom Dropka
Applied Technology Associates
Albuquerque, NM


From kheck@cs5.dasd.honeywell.com  Wed Dec 10 14:40:31 1997
From: Kevin Heck <kheck@cs5.dasd.honeywell.com>
Date: Wed Dec 10 14:40:34 PST 1997
Subject: Socket error
Existing code that originally was able to create a datagram
socket using the simple call:

client_socket = socket(PF_INET, SOCK_DGRAM, 0)

now fails after I have added more code to my application.
I am not calling any of the new code that I have added. 
I am trying to run this application using VxSim.  What does it
mean to get an error when creating a socket.  I am speculating
that there is not enough memory.  When I invoke the VxSim
process from the tornado launcher, it defaults to 3 megabytes.
I tried bumping it up but I still get the same error.  
Any ideas?  Thanks in advance, Kevin Heck

kheck@cs5.dasd.honeywell.com


From YF.Siu@eng.efi.com  Wed Dec 10 16:22:28 1997
From: "Yuet Fung Siu" <YF.Siu@eng.efi.com>
Date: Wed Dec 10 16:22:33 PST 1997
Subject: Re: DOS filesystem
On Dec 10,  1:58pm, the vxWorks Users Group Exploder wrote:
> Subject: DOS filesystem
> Submitted-by dropka@swcp.com  Wed Dec 10 13:58:20 1997
> Submitted-by: Tom Dropka <dropka@swcp.com>
>
> I'm using version 5.1, and my current project has a requirement to use
> the DOS filesystem.  Since the dosFs performance is not very good and
> gets worse as the file gets bigger, I'm trying to implement a rawFs
> solution on top of contiguous DOS files.  I can find the starting cluster
> number of all the files, but I don't know how to correlate that to
> blocks or sectors on a SCSI disk.  Does anyone out there know how VxWorks
> relates clusters to blocks?
>

The performance of dosFsLib should not be affected by the file size. It
is affected by the cluster size though. The implementation of contiguous
file (allocated by ioctl:FIOCONTIG) access under dosFs is actually quite
efficient, and is similar to rawFs.

The only tricks to ensure top performance:

1. allocate contiguous space
2. always read/write at cluster-size boundaries with transfer size equal to
   whole multiples of cluster-size. Otherwise, dosFs will do cluster buffering
   which will hurt performance.

I did some benchmarking on dosFs (contiguous files only), rawFs and direct
block device access with 10-100 MB transfer sizes. The results were actually
quite similar. So I think the extra complication of bypassing dosFs is
unnecessary and certainly not elegant.

Hope this helps,

YF






From wangk@lx04.mphy.ustc.edu.cn  Wed Dec 10 17:42:31 1997
From: Wang Kun <wangk@lx04.mphy.ustc.edu.cn>
Date: Wed Dec 10 17:42:43 PST 1997
Subject: A question of memory map 
Hi,

	I'm a new user of VxWorks.A problem embarrassed me.I'm looking for
help.

	I'm working in a project on VMEbus.We use MVME177 board(CPU is mc68060
chip) as master.VxWorks(5.3 version) will be OS running in MVME177
board.We have two MVME177 board,.The first boot VxWorks and another boot
into 177BUG.The problem is, When I boot VxWorks,I can't access all
address space of VMEBUS above 0x03000000(48M) except of MVME177's
reverse space (above 0xf0000000).When we monitor the address bus of
VMEbus,We find there are not address signals above 0x0300000.But When I
use another MVME177 board (177BUG),all is right.We can access all
address space correctly.And I use a MVME167 board booting VxWorks to
test,the problem is same.

	I have set the regiters of VMEchip2.It's no use Even if copy values of
VMEchip2's registers from 177bug to VxWorks.I think this problem is
concerning with VxWorks.Maybe you can help me.

	By the way,I have read some header files of
BSP:/tornado/Target/Config/Mv177/Config.h,mv177.h and havn't found some

concerning context.

	Thank you very much!


From michael.reinermann@oen.siemens.de  Thu Dec 11 03:28:08 1997
From: michael.reinermann@oen.siemens.de (Reinermann, Michael)
Date: Thu Dec 11 03:28:11 PST 1997
Subject: EMANATE vs. WindNet SNMP

Hello everybody,

for a new project we are investigating which SNMP agent to use. Currently
we are checking the two alternatives EMANATE and WindNet SNMP.

Does anybody have experience with one of these agents for VxWorks 5.3 ?

Does anybody know why WindRiver switched from the SNMP Research product   =
(sold for VxWorks version 5.2 and below) to the Epilogue based product   =
(VxWorks 5.3) ?

I heard that Epilogue has been purchased by ISI and thus now belongs to   =
the
company selling the VxWorks competitor pSOS =21 Has anybody ideas about
effects on future releases, e.g. SNMPv3 support?

Any hints will be greatly appreciated =21

Best regards, Michael Reinermann


 ----------------------------------------------------------------------
Michael Reinermann                     Siemens AG
Tel. +49 - 89 - 722 34892
Fax. +49 - 89 - 722 26572
Michael.Reinermann=40oen.siemens.de




From daemon@csg.lbl.gov  Thu Dec 11 04:00:50 1997
From: daemon@csg.lbl.gov
Date: Thu Dec 11 04:00:54 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Thu Dec 11 04:00:47 PST 1997

        Subject: input parameters mangled by taskSpawn
        Subject: Re: input parameters mangled by taskSpawn
        Subject: Jobs
        Subject: bootp -or- DHCP

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: input parameters mangled by taskSpawn
Date: 10 Dec 1997 20:23:21 GMT
From: aaron@swcp.com (Aaron Birenboim)
Organization: PearTree Consulting Services
Message-ID: <66mtnp$roh$1@sloth.swcp.com>

I am running VW 5.2 on an MVME167b.

I write a C function which passes its parameters to a spawned
task.   When I call the function from the shell (priority 10)
it works great.   When I call the function from a task running
at priority 60, one of my parameters is mangled.

Has anybody seen anything like this?  Any advice?

Here's some source code (edited) which describes
my problem.   If anybody is wants to see the actual code, I can
provide it.   I have not yet made simple code to re-produce the
problem...  but I plan to do that this afternoon.   I was
just wondering if this is a known problem.

We have semi-duplicated the problem with simpler code... but
not totally.  so I'm providing edited source.

the call, > fm "fnam","/tmp"
from the shell works.

The call :

   char s1[128];
   char s2[128];
   strcpy(s1,"s1");
   strcpy(s2,"s2");
   fm(s1,s2);

as coded in a priority 60 task does NOT work.

In BOTH cases, when fm prints its parameters, it looks OK.
But when the 60 priority task called fm, ftpPut echos
its parameters OK when in the shell task, but it
reports s1(srcfile,dstfile) as a NULL string when
called from the 60 priority task!!!

/**************************************************/

int fm(char *rawName,char *dir)
{
   char *host,*user,*wd;
   int task;

   host = "129.238.57.230";  /* mishabe */
   user = "datamgr";
   wd = "mypassword";

   printf("Spawning ftpPut(\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")\n"
          ,host,user,wd,rawName,dir,rawName);

   task = taskSpawn("ftp_task",110,VX_FP_TASK,40000,(FUNCPTR)ftpPut,
    (int)host,(int)user,(int)wd,(int)rawName,(int)dir,(int)rawName,0,0,0,0);
   return task;
}

/***********************************************/

STATUS ftpPut(char *host,
              char *user, 
              char *passwd, 
              char *srcfile,
              char *dirname,
              char *dstfile)
{

   printf("got (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")\n"
          ,host,user,passwdwd,srcfile,dirname,dstfile);
   return OK;
}
- --
Aaron Birenboim   |         aaron@ptree.abq.nm.us            | Albuquerque, NM
http://www.swcp.com/~aaron         RESUME> http://www.swcp.com/~aaron/res.html
PearTree Consulting (WWW, UNIX, Scientific Computing,...)

---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: input parameters mangled by taskSpawn
Date: Wed, 10 Dec 1997 18:53:08 -0500
From: Kevin Bradley <kb+@andrew.cmu.edu>
Organization: Doctoral student, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA
Message-ID: <8oXmhYi00iWP0_54M0@andrew.cmu.edu>
References: <66mtnp$roh$1@sloth.swcp.com>

Excerpts from netnews.comp.os.vxworks: 10-Dec-97 input parameters
mangled by.. by Aaron Birenboim@swcp.com 
> In BOTH cases, when fm prints its parameters, it looks OK.
> But when the 60 priority task called fm, ftpPut echos
> its parameters OK when in the shell task, but it
> reports s1(srcfile,dstfile) as a NULL string when
> called from the 60 priority task!!!

<snip>

>/**************************************************/
> 
>int fm(char *rawName,char *dir)
>{
>   char *host,*user,*wd;
>   int task;
> 
>   host = "129.238.57.230";  /* mishabe */
>   user = "datamgr";
>   wd = "mypassword";
> 
>   printf("Spawning ftpPut(\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")\n"
>          ,host,user,wd,rawName,dir,rawName);
> 
>   task = taskSpawn("ftp_task",110,VX_FP_TASK,40000,(FUNCPTR)ftpPut,
>    (int)host,(int)user,(int)wd,(int)rawName,(int)dir,(int)rawName,0,0,0,0);
>   return task;
>}

This is going to sound really silly.  The problem is that you're
allocating the data on the stack, spawning the task, then exiting
the spawner, thereby passing empty data (in the form of pointers
to non-existant stack space) to the spawned task.  "rawName" and
"dir" are especially likely to disappear if passed as parameters
on the stack from stack-allocated space.

The shell allocates data with "malloc" (so it leaks a little)
before calling.

I suggest the following:  Make copies of your passed parameters,
for exactly this "disappearing data" problem, unless you know
it's not going to disappear.  It's easy enough to free them
inside of your FTP task if you know the conventions.

Try this:

  int fm(char *rawName, char *dir) {
    char *host, *user, *wd, *rawName2, *dir2;
    int task;

    rawName2 = (char *) malloc(sizeof(char) * (strlen(rawName)+1);
    strcpy(rawName2, rawName);

    dir2 = (char *) malloc(sizeof(char) * (strlen(dir)+1));
    strcpy(dir2, dir);

    host = "127.0.0.1";
    user = "user";
    wd = "passwd";    

    printf("Spawning ftpPut(\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")\n"
           ,host,user,wd,rawName2,dir2,rawName);
 
    task = taskSpawn("ftp_task",110,VX_FP_TASK,40000,(FUNCPTR)ftpPut,
    (int)host,(int)user,(int)wd,(int)rawName2,(int)dir2,(int)rawName2,0,0,0,0);

    return task;
  }


This way, all data passwd to "ftp_task" is either (1) global string
data (constant, allocated at load time), or (2) malloc'd data.

To be really safe, you could malloc() space for the constant strings
as well, and then just free everything at the end of "ftp_task".

Hope this helps...


                                                    -- Kevin




---------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.arch.embedded,comp.protocols.smb
Subject: Jobs
Date: Wed, 10 Dec 1997 19:28:02 -0800
From: "Hwa-Jin Bae" <hwa-jin@npal.com>
Organization: Idiom Communications
Message-ID: <66nm9l$7r0$1@news.idiom.com>
Sender: readnews@204.32.126.155

Hi!

There are many positions currently available in Network Power and Light
division of Mylex Corporation, Fremont, CA. (near Ardenwood blvd. + Decoto)
Some of the available positions are:

    - Director of HW
    - Software managers (2 positions)
            - manage a group of engineers (about 12 people)
            - understand product lifecycle
            - annual reviews
            - technical leadership
    -  Software engineers (5+ positions)
            - SMB/NFS engineer (TCP/IP helpful)
            - Tools engineer (debuggers, GNU toolset, or
                other development tools)
            - Kernel engineer (Unix, VxWorks, RTOS)
            - filesystem engineer (BSD filesystems, other
                journalling FS, etc.)
            - Build engineers/ configuration management (CVS,
                RCS,clearcase, source safe)
            - Backup and tape utilities
            - Java GUI engineers
            - RAID, Scsi engineers
    - Software support
            - sustaining engineers (interface FAE's
                and marketing with Engineering)
            - test engineers

If you are interested in any one of these positions please email me
at hwa-jin@npal.com

You can also check out our web site for more information:
    http://www.npal.com

- --
Hwa-Jin Bae
Network Power and Light
http://www.npal.com




---------------------------

Newsgroups: comp.os.vxworks
Subject: bootp -or- DHCP
Date: 4 Dec 1997 23:36:28 GMT
From: ashrafis@rchnews1.nt.com (Siamak Razzaghe-Ashrafi)
Organization: Northern Telecom Inc, Mission Park, CA
Keywords: source code for bootp or DHCP
Message-ID: <667eps$dt0@nrchh52.rich.nt.com>

Hi All

Please point me to the location I can get the bootp/DHCP server
source for vxWorks 5.2.

Thank you 
Ashrafis@nt.com
- -- 


A Silent Rogue Warrior who loves to sing and dance ...
everyThing, everyWhere, anyTime


---------------------------

End of New-News digest
**********************


From ensslin@3SOFT.de  Thu Dec 11 05:36:24 1997
From: Friedrich Ensslin <ensslin@3SOFT.de>
Date: Thu Dec 11 05:36:28 PST 1997
Subject: VxWorks FTP server
Hi all,

Is there anyone out there, who has successfully used one of these cute 
little graphical FTP clients for Windows95/NT in connection with the FTP 
server of VxWorks to upload / download files ? I have tried some of them 
without success. They seem to have problems to interprete the directory 
output delivered by the VxWorks server.
Such a tool would be of great use for us, as we frequently need to update a 
set of files on our target's filesystem from Windows.

Thanx in advance,

-------------------------------------------------
  Friedrich Ensslin
  3SOFT GmbH
  Wetterkreuz 19a , D-91058 Erlangen , Germany
  phone: +49-9131-7701-0 , fax: +49-9131-7701-80
  email: ensslin@3SOFT.de





From tony.mayes@tecra.it  Thu Dec 11 06:17:07 1997
From: tony.mayes@tecra.it
Date: Thu Dec 11 06:17:11 PST 1997
Subject: Re: Flash File Sytem for VxWorks
> Date:          Wed, 10 Dec 97 08:06:29 PST
> To:            vxworks_users@csg.lbl.gov
> From:          vxwexplo@lbl.gov (the vxWorks Users Group Exploder)
> Subject:       Flash File Sytem for VxWorks

> Submitted-by thomas.arand@oen.siemens.de  Wed Dec 10 08:06:24 1997
> Submitted-by: thomas.arand@oen.siemens.de (Arand, Thomas)
> 
> 
> Hi VxWorks-world,
> 
> we are trying to build a file system over a flash device. Has anyone done
> that with VxWorks? What software do you use? Where to get it from? What
> experiences?
> 
> Any help is appreciated=21
> 
> Thomas Arand
> 
>  

We have done this using FlashLib which works well. The product 
originally came from an Isreali company but is now owned by Wind 
River. Try WRS they also have been working on their own Flash File 
system.





Tony Mayes

Email address          tony.mayes@epid.eurotherm.co.uk

Phone 031 975243
Fax   031 977512

Eurotherm SpA, 
Via XXIV Maggio, 22070 Guanzate (CO), Italy

(NOTE: The opinions expressed within are my 
       own and are not necessarily  those 
       of my employer)



From WILLIAMK@wpg.lmcda.lmco.com  Thu Dec 11 06:39:08 1997
From: "Williams, Kerry @ WIN" <WILLIAMK@wpg.lmcda.lmco.com>
Date: Thu Dec 11 06:39:12 PST 1997
Subject: RE: A question of memory map

I've experienced the same trouble myself. Reason for the trouble is that   
vxWorks disables mapping for
memory addresses that do not exist on the target board.

There are 2 possible ways to enable mapping of these areas. The method I   
prefer, is to edit the
SYS_PHY_MEM_DESC[] array in $(WIND_BASE)\target\config\<bspname>\sysLib.c   
. You can use
The entry commented as /* Some A32 VME */ as a template for mapping your   
boards in. However,
map only as much VME as you need to cover your target boards because the   
MMU needs to create
records for every 8K of space you map. I mapped 1GB by mistake and it   
took the board 5 minutes to boot!

The other method, which is great for mapping huge amounts of VME is to   
change the Transparent Translation
Registers in your '060's MMU. I have a code snippet a picked up from this   
newsgroup when I asked this
question. I can send it if you like, but I'm sure someone else will post   
it.

Cheers,
Kerry.

 -----
Kerry Williams
Embedded Software Engineer
Lockheed Martin Canada
kerry.williams@lmco.com

 ----------
Submitted-by wangk@lx04.mphy.ustc.edu.cn  Wed Dec 10 17:42:31 1997
Submitted-by: Wang Kun <wangk@lx04.mphy.ustc.edu.cn>

Hi,

        I'm a new user of VxWorks.A problem embarrassed me.I'm looking   
for
help.

        I'm working in a project on VMEbus.We use MVME177 board(CPU is   
mc68060
chip) as master.VxWorks(5.3 version) will be OS running in MVME177
board.We have two MVME177 board,.The first boot VxWorks and another boot
into 177BUG.The problem is, When I boot VxWorks,I can't access all
address space of VMEBUS above 0x03000000(48M) except of MVME177's
reverse space (above 0xf0000000).When we monitor the address bus of
VMEbus,We find there are not address signals above 0x0300000.But When I
use another MVME177 board (177BUG),all is right.We can access all
address space correctly.And I use a MVME167 board booting VxWorks to
test,the problem is same.

        I have set the regiters of VMEchip2.It's no use Even if copy   
values of
VMEchip2's registers from 177bug to VxWorks.I think this problem is
concerning with VxWorks.Maybe you can help me.

        By the way,I have read some header files of
BSP:/tornado/Target/Config/Mv177/Config.h,mv177.h and havn't found some

concerning context.

        Thank you very much!




From Eli_Wittner@cti-pet.com  Thu Dec 11 08:07:24 1997
From: "Eli Wittner" <Eli_Wittner@cti-pet.com>
Date: Thu Dec 11 08:07:28 PST 1997
Subject: Re: VxWorks FTP server





Friedrich Ensslin wrote:

>>Is there anyone out there, who has successfully used one of these cute
>>little graphical FTP clients for Windows95/NT in connection with the FTP
>>server of VxWorks to upload / download files ?

The shareware version of WS_FTP seems to work fine with vxWorks v5.1.
Check out www.shareware.com.

Eli Wittner
CTI Cyclotron Systems, Inc.





From mmcquade@pop.aa.net  Thu Dec 11 08:45:46 1997
From: Mike McQuade <mmcquade@pop.aa.net>
Date: Thu Dec 11 08:45:50 PST 1997
Subject: Re: VxWorks FTP server
At 05:36 AM 12/11/97 PST, you wrote:
>Submitted-by ensslin@3SOFT.de  Thu Dec 11 05:36:24 1997
>Submitted-by: Friedrich Ensslin <ensslin@3SOFT.de>
>
>Hi all,
>
>Is there anyone out there, who has successfully used one of these cute 
>little graphical FTP clients for Windows95/NT in connection with the FTP 
>server of VxWorks to upload / download files ? I have tried some of them 
>without success. They seem to have problems to interprete the directory 
>output delivered by the VxWorks server.
>Such a tool would be of great use for us, as we frequently need to update a 
>set of files on our target's filesystem from Windows.
>



All of the GUI FTP clients that we have tried have the same problem, with
WSFTP, you can do a CHG_DIR from the GUI, but by the time you do this, you
may as well use FTP from the command line.


It would help our customers if the GUI FTP clients worked correctly with
our instruments, we use FTP to upload the new firmware.


Id be interested in hearing from anyone that has used a GUI FTP app as well.


Mike.





From Eli_Wittner@cti-pet.com  Thu Dec 11 10:04:14 1997
From: "Eli Wittner" <Eli_Wittner@cti-pet.com>
Date: Thu Dec 11 10:04:21 PST 1997
Subject: Re: VxWorks FTP server



Friedrich Ensslin wrote:
>>Is there anyone out there, who has successfully used one of these cute
>>little graphical FTP clients for Windows95/NT in connection with the FTP
>>server of VxWorks to upload / download files ?
I replied:
>The shareware version of WS_FTP seems to work fine with vxWorks v5.1.
>check out www.shareware.com.

Subsequent testing has shown this to be not good advice.  Sorry for the
confusion.
Eli Wittner
CTI Cyclotron Systems, Inc.




From cgrames@mdc.com  Thu Dec 11 13:50:12 1997
From: Charlie Grames <cgrames@mdc.com>
Date: Thu Dec 11 13:50:16 PST 1997
Subject: Socket error -Reply
Kevin,

errno should be set if socket() returns ERROR.  Have you deciphered the errno value with
printErrno()?  Also, opening a socket is like opening a file, as far as file pointer consumption is
concerned, and I think only fifty files may be open concurrently by default.  However, if you are not
calling any new code, I wouldn't think this would be the problem.  Check errno.

Charlie Grames
The Boeing Company
(314) 233-1956
Charles.R.Grames@boeing.com

>>> the vxWorks Users Group Exploder <vxwexplo@lbl.gov> 12/10/97 04:40pm >>>
Submitted-by kheck@cs5.dasd.honeywell.com  Wed Dec 10 14:40:31 1997
Submitted-by: Kevin Heck <kheck@cs5.dasd.honeywell.com>

Existing code that originally was able to create a datagram
socket using the simple call:

client_socket = socket(PF_INET, SOCK_DGRAM, 0)

now fails after I have added more code to my application.
I am not calling any of the new code that I have added. 
I am trying to run this application using VxSim.  What does it
mean to get an error when creating a socket.  I am speculating
that there is not enough memory.  When I invoke the VxSim
process from the tornado launcher, it defaults to 3 megabytes.
I tried bumping it up but I still get the same error.  
Any ideas?  Thanks in advance, Kevin Heck



From daemon@csg.lbl.gov  Fri Dec 12 04:01:31 1997
From: daemon@csg.lbl.gov
Date: Fri Dec 12 04:01:34 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Fri Dec 12 04:01:29 PST 1997

        Subject: mv162 SCSI-1 and SCSI-2 support
        Subject: Re: 2000 problem

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: mv162 SCSI-1 and SCSI-2 support
Date: 4 Dec 1997 23:35:45 GMT
From: "Ron Tabor" <rtabor@simpact.com>
Organization: Simpact, Inc
Message-ID: <01bd010d$ef30d740$e28743cf@rtabor>

Has anyone tried to configure a single vxWorks mv162 target image 
to support both SCSI-1 and SCSI-2 drives?

I don't need the image to actually work with both drive types
at the same time, just be able to work with one or the other. 
The image doesn't even have to be able to distinguish which type
is installed (although it would be nice).  I could set a flag in 
the boot parameters or something to tell it which set of SCSI init 
procedures to run.

I have tried simply defining INCLUDE_SCSI2, which the vxWorks
documentation says supports SCSI-1 applications, but this does
not actually work with SCSI-1 drives.  I've also tried several
combinations of including source and headers for both SCSI-1 and 
SCSI-2 initialization so that I could select one or the other with 
boot parameters.  This caused conflicts in header files and libraries 
with multiple definitions.  I'm ready to go start messing in there
further, but would like to know first if I have a chance.

WRS tech support simply says it can't be done, but that just means
that the basic BSP isn't designed to do it.

Is there anything I can do?

- - Ron



---------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++
Subject: Re: 2000 problem
Date: 11 Dec 1997 18:54:29 GMT
From: mfb@mbunix.mitre.org (Michael F Brenner)
Organization: The MITRE Corporation, Bedford Mass.
Message-ID: <66pct5$cfp@top.mitre.org>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <01bcdf9c$71b5bfc0$daac2ac0@pub00005m> <344F62B2.6EA@sensor.com> <66ngud$5s2$2@news.cc.ucf.edu>

   > ... 1 AD is year 0 ...

No, 1 BC is year 0 in the Common Era (AD). 

  > ... only math or computer geeks would use negative dates ...
  > ... like 0 AD or -1 AD ...

No, electrical engineers and physicists also use negative years,
as well as archeologists, astrologers, historians, and astronomers,
or anyone else interested in tracing the appearance of historical 
events, such as satellite ephemerides, comets, or specific instances
of the prophecies of Nostradamus. To limit the geeks to only math
or computer scientists is to be incomplete.

Mike the Mathematician


---------------------------

End of New-News digest
**********************


From wangk@lx04.mphy.ustc.edu.cn  Fri Dec 12 06:16:33 1997
From: Wang Kun <wangk@lx04.mphy.ustc.edu.cn>
Date: Fri Dec 12 06:16:39 PST 1997
Subject: question of function nanosleep()
When I download a program to VxWorks(5.3),the system display:the module
maybe unusable because of including undefined symbol _nanosleep.I try to
write a program which use function nanosleep().It can be complied.But
when I download it,the same error message.How can I use this
function?Should I buy some extra VxWorks components?


From jmarc@wrs.com  Fri Dec 12 07:26:34 1997
From: Jean-Marc de Maraumont <jmarc@wrsec.fr>
Date: Fri Dec 12 07:26:37 PST 1997
Subject: postscript driver for vxworks


 Hi vx-workers


 I am looking for a postscript driver running under vxWorks. The idea is to
be able to print a bit-map image to any postscript compatible printer. 
Have you heard about or seen such a driver, please let me know.


 Thanks,

 Jean-Marc

///////   Jean-Marc Aubry De Maraumont     Tel: +33 1 60 92 63 19   ///////
/////     Field Application Engineer       Fax: +33 1 60 92 63 15   /////
 ////     WIND RIVER SYSTEMS                                         ////
 ///      19, Av de norvege                Email: jmarc@wrsec.fr     ///
  //      ZA de Coutaboeuf 1               http://www.wrs.com         //
   /      91953 LES ULIS cedex                                         /



From kb+@andrew.cmu.edu  Fri Dec 12 09:32:33 1997
From: Kevin Bradley <kb+@andrew.cmu.edu>
Date: Fri Dec 12 09:32:37 PST 1997
Subject: Re: question of function nanosleep()
Excerpts from mail: 12-Dec-97 question of function nanosl.. 
> When I download a program to VxWorks(5.3),the system display:the module
> maybe unusable because of including undefined symbol _nanosleep.I try to
> write a program which use function nanosleep(). It can be complied. But
> when I download it,the same error message.How can I use this
> function? Should I buy some extra VxWorks components?

nanosleep is a POSIX function, and lives in the <time.h> header.
See timerLib in the VxWorks reference manual.

You might have to define "INCLUDE_POSIX" in the kernel configuration
to get this to link in.  Otherwise, I'm not sure why this isn't
included.

Note that under VxWorks, nanosleep has the same resolution as 
the system clock tick, so you can probably convert the nanosleep
call into a corresponding taskDelay() call if you don't want
to have all the POSIX functions in your kernel.

Hope this helps.


                                                    -- Kevin



From uchenick@tis4000.com  Fri Dec 12 09:53:43 1997
From: Gordon Uchenick <uchenick@tis4000.com>
Date: Fri Dec 12 09:53:47 PST 1997
Subject: No free mbufs under 5.1.1, MV162
We have noticed a problem when running vxWorks 5.1.1 on an MVME-162. The =
application is data acquisition and a certain event requires that we =
fire off many large Ethernet packets to 15 other nodes. These nodes =
simultaneously respond with a large number of very small packets. Every =
once in a while, the MV162 stops communicating on the Ethernet. =
inetstatShow() shows that there is a significant amount of data in the =
receive buffers for the TCP/IP sockets to the other nodes, but the tasks =
serving those sockets is not being notified via select() that there is =
data present. mbufShow() indicates that there are no free mbufs.

Has anyone seen anything like this or know of any ways to find out what =
happened? I'd appreciate any help I can get.

Thanks in advance,

Gordon Uchenick
uchenick@tis4000.com
410-771-0022


From aram.nahidipour@spdg.COM  Fri Dec 12 11:44:59 1997
From: aram.nahidipour@spdg.COM (Aram Nahidipour)
Date: Fri Dec 12 11:45:04 PST 1997
Subject: Re: question of function nanosleep()
Wang,

> 
> When I download a program to VxWorks(5.3),the system display:the module
> maybe unusable because of including undefined symbol _nanosleep.I try to
> write a program which use function nanosleep().It can be complied.But
> when I download it,the same error message.How can I use this
> function?Should I buy some extra VxWorks components?
> 
No you don't.  Since your image does not use the nanosleep()
function it is not included when you build your image.  So to add that
either add your module at compile time or use ar<..> and extract the object
for nanosleep() and load it before loading your application.

Hope this helps
Aram



From schumgl@anubis.network.com  Fri Dec 12 12:50:26 1997
From: schumgl@anubis.network.com (Gary L. Schumacher)
Date: Fri Dec 12 12:50:30 PST 1997
Subject: 21143 Enet driver for vxworks

Hi,

I am looking for a VxWorks driver for DEC's 21143 ethernet controller.
Have you heard about or seen such a driver, please let me know.

Thanks
Gary Schumacher               Network Systems Group
gary.schumacher@network.com   Brooklyn Park, MN  +1-612-391-1386



From kyp@tailyn.com.tw  Fri Dec 12 19:19:00 1997
From: "kyp" <kyp@tailyn.com.tw>
Date: Fri Dec 12 19:19:05 PST 1997
Subject: start vxwork problem

I use 68EC020  CPU in vxworks.
The cpu start address is in 0x0000. I make the hex file is start
0x0010000.(romInit)
I how to start my system?

Thanks for reply.
 
 


From wangk@lx04.mphy.ustc.edu.cn  Fri Dec 12 22:16:59 1997
From: Wang Kun <wangk@lx04.mphy.ustc.edu.cn>
Date: Fri Dec 12 22:17:03 PST 1997
Subject: Re: question of function nanosleep()
Hi,
	Thank many friends for your help!
	I have checked the file configall.h.INCLUDE_POSIX_ALL and
INCLUDE_POSIX_TIMERS have been defined,but I can find symbol nanosleep()
and other functions defined in timerLib neither in symtbl.c nor using 
command 'lkup' in tornado shell.Files time.h and timer.h have been
included when I make image.
	Maybe I should contact with the vendor.
	Thanks again.


From wangk@lx04.mphy.ustc.edu.cn  Sat Dec 13 01:40:44 1997
From: Wang Kun <wangk@lx04.mphy.ustc.edu.cn>
Date: Sat Dec 13 01:40:50 PST 1997
Subject: Re: question of function nanosleep()
Hi,
	I have solved the problem.The file configall.h was written in  format
as follows:
.....
#if FALSE
...
#define INCLUDE_POSIX_ALL
...
#endif
....

	Then I defined it and make the image.It's OK.But I have another 
question:Many items were hided in this block.Maybe there are some
potential problems in the VxWorks image,How can I know?
	Thank you again,friends.


From daemon@csg.lbl.gov  Sat Dec 13 04:02:33 1997
From: daemon@csg.lbl.gov
Date: Sat Dec 13 04:02:35 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Sat Dec 13 04:02:30 PST 1997

        Subject: Re: Handling Hardware watchdog timer
        Subject: Re: wrong perception of time

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Re: Handling Hardware watchdog timer
Date: Thu, 11 Dec 1997 22:10:07 -0600
From: donbock@flash.net (Don Bockenfeld)
Organization: Flight Visions
Message-ID: <donbock-1112972210070001@ctc6-48.flash.net>
References: <01bd0685$a9630da0$df60a9ce@host.hooked.net>

In article <01bd0685$a9630da0$df60a9ce@host.hooked.net>, "Raymond K.S.
Yeung" <ryeung@adicomw.com> wrote:

> How does one handle h/w watchdog timer?
> There's a debate as to whether the WD timer task
> should be running at highest or lowest priority task
> in a system.

Our watchdog hardware times out after about 1 second.  My watchdog task
runs at a higher priority than any of the nominal application tasks.  It
wakes up twice a second and verifies the existence of the nominal tasks;
and confirms that their task states are all legitimate.  If everything is
ok it resets the hardware watchdog; otherwise it forces an error
exception.

The lowest priority task is a background BIT [built-in test] task.  I
intend to add code to have it set a software watchdog flag every time it
completes a cycle.  I will then add code to the watchdog task to verify
that this flag is set often enough to prove that none of the other nominal
tasks are stuck in an infinite loop or otherwise hogging the CPU.

I'm sure this strategy can be improved on.  All of our other projects were
implemented with simple control loops.  This is our first foray into
multitasking.

---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: wrong perception of time
Date: Thu, 11 Dec 1997 22:16:50 -0600
From: donbock@flash.net (Don Bockenfeld)
Organization: Flight Visions
Message-ID: <donbock-1112972216550001@ctc6-48.flash.net>
References: <34903856.70BF@vsl.com.au>

In article <34903856.70BF@vsl.com.au>, andrewk@vsl.com.au wrote:

> I am writing code on a 25 MHz PPC860 equipped Single-Board-Computer
> from EST (EST 860 SBC) ... the board is as shipped, as is the BSP
> which was supplied by EST.  My problem is that the target doesn't
> track time correctly - one second target time equals about 6 seconds
> real-world time ...

There's a sysClk... <something or other> function in some BSPs that
reports the expected number of clock interrupts per second.  I suggest
that you use it to verify that the value matches the actual interrupt
rate.  A mismatch can be corrected by calling another sysClk... <something
or other> function to set the expected number of clock interrupts per
second.

Sorry about the <something or other>'s, but I'm at home and my references
are at work.

---------------------------

End of New-News digest
**********************


From daemon@csg.lbl.gov  Sun Dec 14 04:00:51 1997
From: daemon@csg.lbl.gov
Date: Sun Dec 14 04:00:55 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Sun Dec 14 04:00:49 PST 1997

        Subject: Re: VxWorks FTP server
        Subject: Warm boot and Cold boot on a PPC

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Re: VxWorks FTP server
Date: Thu, 11 Dec 1997 17:53:42 GMT
From: jason@praxon.com (Jason Roybal)
Organization: Praxon Inc.
Message-ID: <349027e6.782248814@news.alterdial.uu.net>
References: <01BD0641.DA954B20@pc0055>
Reply-To: jason@praxon.com

On Thu, 11 Dec 1997 14:34:13 +-100, Friedrich Ensslin
<ensslin@3SOFT.de> wrote:

>Hi all,
>
>Is there anyone out there, who has successfully used one of these cute 
>little graphical FTP clients for Windows95/NT in connection with the FTP 
>server of VxWorks to upload / download files ? I have tried some of them 
>without success. They seem to have problems to interprete the directory 
>output delivered by the VxWorks server.
>Such a tool would be of great use for us, as we frequently need to update a 
>set of files on our target's filesystem from Windows.
>
>Thanx in advance,
>
>-------------------------------------------------
>  Friedrich Ensslin
>  3SOFT GmbH
>  Wetterkreuz 19a , D-91058 Erlangen , Germany
>  phone: +49-9131-7701-0 , fax: +49-9131-7701-80
>  email: ensslin@3SOFT.de
>
>


	I've found the VxWorks FTP server uses a non-standard output
format.  This format confuses most GUI FTP clients, and even though it
is working, it may appear that it isn't.  In addition, the VxWorks FTP
doesn't implement some basic commands, and no real security features
(like enabling and disabling certain commands, or restricting
directory access.)  We ended up having to re-write it to get it to
work with all the common FTP clients.
	If you don't have the ability to do this, you might need to
stick to the DOS FTP.

	Good Luck!

- -------------------------
		Jason

---------------------------

Newsgroups: comp.os.vxworks
Subject: Warm boot and Cold boot on a PPC
Date: Mon, 08 Dec 1997 11:36:59 -0400
From: "Barandiaran, Paul" <Barandiaran_Paul@code80.npt.nuwc.navy.mil>
Organization: NUWC
Message-ID: <348C141A.3BE1@code80.npt.nuwc.navy.mil>
Reply-To: Barandiaran_Paul@code80.npt.nuwc.navy.mil

Does anyone know the difference between a warm boot and a cold boot on
the PPC603e?  I can successfully download a second vxworks kernel and
start it using the warm boot address  x104 but it just locks up when I
jump to the cold boot address x100.

I am using a radstone PPC board.


thank you 
Paul Barandiaran
barandiaran_paul@code80.npt.nuwc.navy.mil

---------------------------

End of New-News digest
**********************


From daemon@csg.lbl.gov  Mon Dec 15 04:03:22 1997
From: daemon@csg.lbl.gov
Date: Mon Dec 15 04:03:25 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Mon Dec 15 04:03:21 PST 1997

        Subject: Re: vxWorks DOS bugs - Filling a disk corrupts it
        Subject: Re: VxWorks ethernet driver problem?
        Subject: Re: 2000 problem
        Subject: Re: 2000 problem

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Re: vxWorks DOS bugs - Filling a disk corrupts it
Date: 11 Dec 1997 06:33:36 GMT
From: schuehle@t-online.de (Martin Sauter)
Organization: Schuehle Measurement and Control Systems
Message-ID: <66o1g0$fho$1@news00.btx.dtag.de>
References: <348EED70.63CC@nt.com>
Reply-To: ms@schuehle.com

Owen,

> Has anybody got a list of  VXWorks dosFsLib bugs. We are investigating
> two at the moment and are wondering has anybody cracked them yet?
> 
> 1. a write to a disk does not return an error when the disk is full. It
> also hangs the system.

I've seen this happen in tests of our applications, too. Sometimes the
file is written till the (RAM) disk is full and further write calls are
ignored and the task survives. Sometimes the task that makes the write
is suspended. Haven't figured out yet what I am doing differently in the
two cases. 

We are using Tornado 1.0 and VxWorks 5.3.1 (x86 BSP). If you get any
replies via e-mail I'd be happy if you could forward them to me.

Martin


---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: VxWorks ethernet driver problem?
Date: Mon, 8 Dec 1997 16:23:05 -0500
From: "Ted Rypma" <rypma@waterloo.hp.com>
Organization: H-P Panacom Div, Waterloo, ON Canada
Message-ID: <66hoep$ijv$1@hppadbk.waterloo.hp.com>
References: <34885399.9E1E695D@integralaccess.com> <rypma--0612972318190001@hppadhtr1.waterloo.hp.com> <348C0FA2.7B5883DD@integralaccess.com>
Reply-To: "Ted Rypma" <i.want@no.spam>

Shows you what happens when you read quickly and miss part of the
information :-(

If this behaviour is caused by the driver, there must be some buffer
management in there causing your problem.
- ----
Ted Rypma <rypma@waterloo.hp.com>
289827
Michael Yip wrote in message <348C0FA2.7B5883DD@integralaccess.com>...
>Ted,
>
>Thanks for your reply.
>
>Our application is doing straight bridging which and didn't require TCP.
>The VxWorks function used was etherOutput().




---------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++
Subject: Re: 2000 problem
Date: Fri, 12 Dec 1997 21:33:29 -0600
From: Anthony Stanford <legion@netins.net>
Organization: netINS, Inc.
Message-ID: <Pine.OSF.3.96.971212211859.9469F-100000@worf.netins.net>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <OzBgx$r48GA.289@nih2naac.prod2.compuserve.com> <M77Nmaz48GA.75@news2.ingr.com> <Pine.A41.3.95.971028190810.11082D-100000@acis.mc.yu.edu> <34906238.38C0@magmacom.com> <Pine.A41.3.95.971211171220.75072B-100000@acis.mc.yu.edu> <3491939D.255C@adobe.com> <66s89o$3c6$1@wbnws01.ne.highway1.com> <66sf6r$1h0@news3.euro.net>

On 12 Dec 1997, Frank Bemelman wrote:
> pgf@foxharp.boston.ma.us (Paul G. Fox) wrote:
> >Stephen Zisk (zisk@adobe.com) wrote:
> >: numbers in. Simple choices, like binary vs ascii representation, will
> >: have much larger effects than 3- vs 4-digit representations. Third, the
> 
> >not to mention the problems we're all gonna have in the year 10000.  which
> >of you is prepared for 5 digit years?  :-)
> 
> By the time we face that problem, we simply move from 9999 to 2000
> again.

Now, THIS cuts right to the heart of the matter.

What kind of idiot stores simple numerical data in ASCII, anyways?  That is one
point where C++ and I part company: I like my binary integers saved as (you
guessed it) binary integers.  There's a certain degree of portability lost
(little-endian vs. MSB-first systems), but it's not that big an issue if you
isolate the read & write functions adequately.

Anthropologists, futurists, and programmers must all love me because most of
what I write works just fine from the 31st century BCE to the 31st century AD,
and uses only two bytes to store a date.  There's a slight hiccup whenever you
compare dates from one era to the other (i.e., BCE to AD or vice versa), but it
isn't that hard to resolve.

P.S.: BCE = Before Common Era - it's the politically correct version of BC
     (Before Christ), which assumes that you are talking to a Christian.  I 
     have no idea what the PC version of AD is (instead of Anno Domine), but I
     recall that the abbr. is either the same or so radically different that it
     wasn't worth remembering.  If anyone remembers what it is, pls let me
     know, that I might re-add it to my store of useless trivia.


---------------------------

Newsgroups: comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++,comp.os.vxworks
Subject: Re: 2000 problem
Date: 15 Dec 1997 07:12:48 GMT
From: markj@southern.co.nz (Mark Jordan)
Organization: Southern InterNet Services
Message-ID: <sDfLLsjVtFDj-pn2-yLiwmx0IeMpp@ppp041>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <OzBgx$r48GA.289@nih2naac.prod2.compuserve.com> <M77Nmaz48GA.75@news2.ingr.com> <Pine.A41.3.95.971028190810.11082D-100000@acis.mc.yu.edu> <34906238.38C0@magmacom.com> <Pine.A41.3.95.971211171220.75072B-100000@acis.mc.yu.edu> <3491939D.255C@adobe.com>

Howdy,
I Reckon we need an international standard for this
date stuff. Something ANSI or ISO could look at perhaps?

Maybe they are already?

Cheers,
Mark Jordan.

---------------------------

End of New-News digest
**********************


From hawthorne@aptec.com  Mon Dec 15 07:14:28 1997
From: "James B. Hawthorne" <hawthorne@aptec.com>
Date: Mon Dec 15 07:14:31 PST 1997
Subject: Test
Test


From hawthorne@aptec.com  Mon Dec 15 08:10:48 1997
From: "James B. Hawthorne" <hawthorne@aptec.com>
Date: Mon Dec 15 08:10:51 PST 1997
Subject: National Instruments GPIB-1014P 
I am starting a VME project where I need to support a National
Instruments GPIB-1014P card. The target processor will be a Motorola
MVME162-23 and the OS will be VxWorks. I am curious if anyone has or
knows of a library that may be available to support GPIB-1014P. I have
searched the web and so far have come up with nothing.

Any help would be greatly appreciated!!!

Jim Hawthorne
Realtime Systems Engineer

=================================================================
  Applied Technology Associates  |  Phone: (505)767-1228
  1900 Randolph Road SE          |  FAX:   (505)768-1379
  Albuquerque, New Mexico 87106  |  email: hawthorne@aptec.com
=================================================================


From POST@IMS.fhg.de  Mon Dec 15 08:51:54 1997
From: Rainer Stelzer <POST@IMS.mailgw1.fhg.de>
Date: Mon Dec 15 08:51:57 PST 1997
Subject: mail client
Hi,
I remember that about one year ago somebody 
published a small program for a simple 
SMTP-client in the VxWorks Users group.

It would be kind if somebody could send it to me again. 

Thanks in advance.

rainer

--

**********************************************************************
fraunhofer institute of microelectronic circuits and systems
department sat
name       rainer stelzer 
address    finkenstrasse 61
           47057 duisburg
           germany
phone      +0049/203/3783-238 
fax        +0049/203/3783-266
email      rstelzer@ims.fhg.de
**********************************************************************


From adamakis@nosc.mil  Mon Dec 15 09:40:17 1997
From: Mike Adamakis <adamakis@nosc.mil>
Date: Mon Dec 15 09:40:20 PST 1997
Subject: Re: 2000 problem
The PC version of AD is CE.  No points for originality here.

>P.S.: BCE = Before Common Era - it's the politically correct version of BC
>     (Before Christ), which assumes that you are talking to a Christian.  I 
>     have no idea what the PC version of AD is (instead of Anno Domine), but I
>     recall that the abbr. is either the same or so radically different that it
>     wasn't worth remembering.  If anyone remembers what it is, pls let me
>     know, that I might re-add it to my store of useless trivia.
>

---
Mike Adamakis
KOAM Engineering Systems
913 Catalina Blvd.
San Diego, CA 92106
(619) 224-1736 (office)
(619) 224-9795 (fax)
adamakis@nosc.mil



From js@eroch.mc.xerox.com  Mon Dec 15 17:24:36 1997
From: js@eroch.mc.xerox.com (Jeffrey R. Szczepanski)
Date: Mon Dec 15 17:24:40 PST 1997
Subject: 2/29/2000 Broken!?

...Speaking of year 2000 related items:

Has any one else noticed that the VxWorks time functions
work OK up through the year 2037, but the date 2/29/2000 reports backs
as "3/00/2000". All other leaps years seem to work correctly.

-Jeff

------------------------------------------------------------------------------
Jeffrey R. Szczepanski					Phone: (716) 264-6613
Xerox Engineering Systems
300 Main Street					
East Rochester, NY 14445			 Email: js@eroch.mc.xerox.com
------------------------------------------------------------------------------



From frits.vosman@nmr.varian.com  Mon Dec 15 19:01:42 1997
From: Frits Vosman x6952 <frits.vosman@nmr.varian.com>
Date: Mon Dec 15 19:01:46 PST 1997
Subject: Re: 2/29/2000 Broken!?
All years divisible by 4 are leapyears. However, when the year is divisible by 
400 it is not a leap year, ie 1600 and 2000 are NOT leapyears. the data 
2/29/2000 will never happen!

Frits Vosman



From daemon@csg.lbl.gov  Tue Dec 16 04:01:39 1997
From: daemon@csg.lbl.gov
Date: Tue Dec 16 04:01:43 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Tue Dec 16 04:01:37 PST 1997

        Subject: VxWorks driver for SCSI Adaptec 7880
        Subject: Re: How do you time a context switch?
        Subject: Re: set vme167 to date
        Subject: Re: 2000 problem
        Subject: Re: 2000 problem

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: VxWorks driver for SCSI Adaptec 7880
Date: 15 Dec 1997 19:22:52 GMT
From: "Simon Tourangeau" <simon@cgltech.com>
Organization: Metrix Interlink
Message-ID: <01bd098e$13a30a20$65c6cdcd@nelson.cgltech.com>

Is there a driver available for VxWorks for the 
Adaptec 7880 SCSI controller or for the Adaptec AHA-2940 SCSI card ?

Thanks

Simon

---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: How do you time a context switch?
Date: 9 Dec 1997 23:33:00 GMT
From: don@mars.dgrc.doc.ca (Donald McLachlan)
Organization: CRC
Message-ID: <66kkfd$np1@crc-news.doc.ca>
References: <348db6c5.111838001@news.jsc.nasa.gov>
Reply-To: don@mars.dgrc.doc.ca


I've never tried it but to avoid any other overhead (eg. of semaphores) how about:

	- from a main task create 2 invocations of a timer task. 
	- Give these 2 tasks the same priority (lower higher #) than the "main" task.
	- get start time.
	- suspend "main" task.  [control passes to the timer tasks]
	- timer tasks
		- while counter < limit	[ grubby global variable ]
		- increment counter
		- taskDelay(0)		[ forces context switch to other timer task ]

		- get stop time
          	- display delta-time and context switch time. (counter / delta-time).

	- want to get rid of the time delay due to loop control?
	- edit the timer task and remove the taskDelay(0).
	- use timex to time the task/function.
	- sub this time from the time the first test reported and you should have it.
	  (pretty close anyway).

This is all seat-of-the-pants but it sounds reasonable to me.

- -- 
Donald McLachlan			e-mail	Donald.McLachlan@crc.ca
Communications Research Centre / DRX	office	613-998-2845
3701 Carling Ave.,			fax	613-998-9648
Ottawa, Ontario
K2H 8S2
Canada



---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: set vme167 to date
Date: 9 Dec 1997 16:59:27 -0700
From: bgeer@xmission.xmission.com (bgeer)
Organization: XMission Internet (801 539 0900)
Message-ID: <66km0v$gdd$1@xmission.xmission.com>
References: <199712031408.GAA29087@lbl.gov> <348582F8.7C35@sandia.gov>

 >Wu, Huang wrote:
 >> We are using a VME167 board with MC68040 processor (host sunos4). We do
 >> like to set the
 >> vme167 board to the day, but without using host or network since our
 >> final
 >> application will be a standalone system. We are quite sure there is a
 >> realtime
 >> clock in the hardware of vme167 since it works for OS9 realtime
 >> operating
 >> system.

The '162 board uses a MK48T0x real-time clock chip, where x indicates
how much nonvolatile ram is included on-chip.

Just in case anyone wanted to know...:-)

- -- 
<> Robert Geer & Donna Tomky /              *             <>
<>    bgeer@xmission.com    |    _o      *   o *      o   <>
<>   Salt Lake City, Utah   |   -\<,      * <\      </L   <>
<>          U S A           |   O/ O     __ /__,    />    <>

---------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++
Subject: Re: 2000 problem
Date: Tue, 16 Dec 1997 01:47:10 -0600
From: "Dennis Weldy" <nojunkmail@ever.com>
Organization: Intergraph
Message-ID: <Qa9IaWfC9GA.168@news2.ingr.com>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <34906238.38C0@magmacom.com> <Pine.A41.3.95.971211171220.75072B-100000@acis.mc.yu.edu> <3491939D.255C@adobe.com> <66s9kf$vhr$1@home.edu.stockholm.se> <zmXburDC9GA.186@news2.ingr.com> <Pine.A41.3.95.971213230413.51964A-100000@acis.mc.yu.edu>


Joshua Waxman wrote in message ...
>On Sat, 13 Dec 1997, Dennis Weldy wrote:
>
>> I guess some folks dont quite remember that folks have more storage on
their
>> desk tops nowdays than many entire mainframe shops had back in the 60's
and
>> 70s. :-)
>>
>'Tis true. But remember also that there still do exist some limitations
>nowadays. For example, if the program is to be downloaded with a lot of
>date/a, there is a speed consideration. Speed may also be no concern due
>to a fast connection, but how about if the distribution is on floppies?
>And if you sell the program to many people, those extra disks add up. And
>let's say this is a program that will be ported also to palmtops. They
>don't (yet) have limitless space.

Yep. That is a consideration. Athough if its a large amount of data, CD
would probably be a better distrubution mechanism, since they're pretty
ubiquitous now. Compressing the daa prior to transmission or copying to a
floppy wuld yield better results than sticking with a 2-date year (in
general, IMHO).
Typically, the dates I was thinking of has to do with customer records.
Birthdates, transaction dates, calculation of interest, that sort of thing.

>
>Now back to the original topic. Someone made the remark that anyone who
>didn't use 4 character years needs a good talking to by their managers. I
>responded with what I admit now is a pretty yucky scheme, especially since
>if you want real compression you can use the full 8 bits to represent or
>the full 16 bits or whatever. The only real advantage to characters is
>that you don't need to enter a hex editor to examine the data, and if that
>is done frequently, a character based scheme might be better.

Yes, I made the remark (or one similr) and will stick by it. Usually, its a
good thing to discuss design issues with your manager (assuming they are
sharp, which fortunately mine is). Yes, there may be a good reason for using
2-year dates, although I don't see it with the millenuim just around the
corner.

Now, as far as viewing the records, it'd still probably be a better thing to
have a viewing program,
Othherwise how does one remember what that field is? ;-)

>
>Let me pose a hypothetical case based on an actual program I wrote. Lets
>say I want to make a calendar program for Jewish years, which are based on
>lunar months occasionally being corrected to match the solar. This program
>will provide all sorts of info for each date, which involves some
>computations based on other dates. On my Pentium my inefficient coding
>causes it to take three seconds to come up with a result. (This was for a
>class assignment, so I really wasn't concerned with speed. But if I
>was...)
>
>So to compare my data with another program to make sure my code was
>correct, I downloaded a shareware program (JCAL75.ZIP) to compare results.
>The way they operated, I guess to provide uniform speed, was to precompute
>all the data and store it in a database. All their program did was look it
>up. They only covered 300 years. My program had to cover years from the
>Biblical creation date (now is 5758) until the end of time or MAX_INT,
>whichever came first:)
>
>That would be a LOT of precomputed data. Part of the data would be the
>equivalent Gregorian date (and Julian) date. Should I use 4 character
>years? A better scheme would be to put each century in a different file
>based on century, and then just store 2 characters. Or a different file
>for each decade and use only one character. And then handle boundary
>cases.

In that case, perhaps it is. However, for a given century the years are
nicely static.
They dont change. You'd already dealt with the rollover. Although if you
knew your program would be out of date next year (didnt handle the next
calendar year, or the one after that) would y'consider this a good thing, or
would y'try to provide a means to either
    precompute fairly far into the future or
    provide means of calculating it, even though it might be slower.
What would y'do if only 5 years from now your 4-year date would be invalid?

Now lets put the Jewish years into a new customer database. If you only had
2 years left for which your 4-year date would be valid bfore the fields woud
have to be widened, would it be a good thing to go ahead & use 4? If it's
1000 years hence, then I think you could safely ignore it. :)

>
>I dislike general statements, like "anyone who doesn't use 4 digit dates
>needs a good talking to from their managers." I think that some cases
>should be judged independently.

So in talking to the manager, they can explain their design decisions. If
its a good one, then everythings fine. If not, its best to ctch it early.


>
>How would you handle this situation? What scheme would you use?
Since the data is fairly static, probably some sort if hash table. Hashing
of century sounds reasonable, as y'suggested.

>
>Josh Waxman
>
>
>> Ulric Eriksson wrote in message <66s9kf$vhr$1@home.edu.stockholm.se>...
>> >In article <3491939D.255C@adobe.com>, Stephen Zisk  <zisk@adobe.com>
wrote:
>> >>
>> >>Save your brain cells for real performance and space issues. A lot of
>> >>the costs companies are experiencing to "fix" the date problem are due
>> >>to an earlier generation of programmers and programs suffering from
>> >>attacks of terminal over-engineering of programming-time/space-saving
>> >>trade-offs. Let's not fall into the same trap today!
>> >
>> >That's unfair to the earlier generation. Given the cost of storing
>> >and handling two extra digits all these years, it may well be a net
>> >saving to do the conversion now instead of in the sixties.
>> >
>> >Ulric
>> >--
>> >"You say to-mah-to, I say to-mah-to, and he says to-mah-to,
>> > but ISO disagrees with all three of us and says to-mah-to."
>>
>>
>>
>>
>



---------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++
Subject: Re: 2000 problem
Date: Mon, 15 Dec 1997 13:07:11 -0800
From: tsw@cagent.com (Tom Watson)
Organization: CagEnt, Inc.
Message-ID: <tsw-1512971307110001@cypher.cagent.com>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <34906238.38C0@magmacom.com> <Pine.A41.3.95.971211171220.75072B-100000@acis.mc.yu.edu> <3491939D.255C@adobe.com> <66s9kf$vhr$1@home.edu.stockholm.se>

In article <66s9kf$vhr$1@home.edu.stockholm.se>,
ulric@evelin.edu.stockholm.se (Ulric Eriksson) wrote:

> In article <3491939D.255C@adobe.com>, Stephen Zisk  <zisk@adobe.com> wrote:
> >
> >Save your brain cells for real performance and space issues. A lot of
> >the costs companies are experiencing to "fix" the date problem are due
> >to an earlier generation of programmers and programs suffering from
> >attacks of terminal over-engineering of programming-time/space-saving
> >trade-offs. Let's not fall into the same trap today!
> 
> That's unfair to the earlier generation. Given the cost of storing
> and handling two extra digits all these years, it may well be a net
> saving to do the conversion now instead of in the sixties.
> 

Interestingly enough, I did a system that used 1 (one) digit years.  Turns
out that the Y2K problem quickly manifested itself as the code went from
1979 to 1980.  The quick fix was to do "signed" comaprisons on the date
encoding (which was the last digit of the year, and a day of year).  Since
the dates with '9' in BCD had the sign bit set, all was cool.  Later I
changed the code to use a lookup table from the 1 digit years to the 'n'
digit years.  The problem was brought home VERY quickly.

The "saving grace" was that the company didn't last 10 years.  The
hardware did, and I did some consulting to fix the problems.  Perhaps the
decision was the proper one.  It did save quite a bit of arithmetic, and
allowed the compaction of dates to two nice BCD formed bytes.  The product
didn't need dates in the range of over 10 years, which relaxed the
requirements.  It is similar to writing dates on a scrap of paper, and
only writing "December 15th" and knowing that the year is implied for the
usefulness range of the paper.

Legacy records (things like 30 year mortgages) need a bit more range. 
Televisions probably need only to know the day of the week.  My VCR only
needs to know the year to properly give the day of the week.  The TRS80
model 100 can't even figure that out.  It needs to be told the day of the
week.  If the microwave oven needs to know anything about days, it is
sadly "overdesigned".  Even a simple "Mickey Mouse" watch from the 50's
doesn't know about days, and is perfectly Y2K compatable :-).

- -- 
tsw@cagent.com         (Home: tsw@johana.com)
Please forward spam to: annagram@hr.house.gov (my Congressman), I do.

---------------------------

End of New-News digest
**********************


From jeking@sandia.gov  Tue Dec 16 07:31:22 1997
From: "Jon E. King"  <jeking@sandia.gov>
Date: Tue Dec 16 07:31:25 PST 1997
Subject: Re: 2/29/2000 Broken!? 

>>All years divisible by 4 are leapyears. However, when the year is
>>divisible by 400 it is not a leap year, ie 1600 and 2000 are NOT
>>leapyears. the data 2/29/2000 will never happen!

Not quite...the rule is all years divisible by 4, except when divisible
by 100 and not by 400.  In other words, 1700, 1800, 1900 were not leap
years because they are divisble by 100.  However, 1600 and 2000 are
leap years because, although divisible by 100, they are divisible by 400.

This info comes from the Royal Greenwich Observatory, and can be found
(along with a history of the leap year phenomenon) at the following URL:

http://www.ast.cam.ac.uk/RGO/leaflets/leapyear/leapyear.html

Does anyone have any other information or experience with how VxWorks will 
handle 2/29/2000?  This sounds like it needs some investigation...

--
Jon E. King (jeking@sandia.gov)
Testers & Experimental Groundstations
Sandia National Laboratories
PO Box 5800
Albuquerque, NM 87185-0965
(505)845-8908 / FAX (505)844-5993


From cgrames@mdc.com  Tue Dec 16 07:35:24 1997
From: Charlie Grames <cgrames@mdc.com>
Date: Tue Dec 16 07:35:28 PST 1997
Subject: Re: 2/29/2000 Broken!? -Reply
No, you have it backwards.  Century years divisible by 400 ARE leap years; century years NOT
divisible by 400 are not.  Thus 1600 was a leap year, as will be year 2000.  1700, 1800, and 1900
were not leap years.

Anyway, back to the original comment:  What routines were used to get the 3/00/2000 result?  I
used mktime() to create 2/29/2000 and printed out the resulting string created by asctime(), and
the results were what I expected.

Charlie Grames
The Boeing Company
(314) 233-1956
Charles.R.Grames@boeing.com

>>> the vxWorks Users Group Exploder <vxwexplo@lbl.gov> 12/15/97 09:01pm >>>
Submitted-by frits.vosman@nmr.varian.com  Mon Dec 15 19:01:42 1997
Submitted-by: Frits Vosman x6952 <frits.vosman@nmr.varian.com>

All years divisible by 4 are leapyears. However, when the year is divisible by 
400 it is not a leap year, ie 1600 and 2000 are NOT leapyears. the data 
2/29/2000 will never happen!

Frits Vosman



From vijay@hns.com  Tue Dec 16 09:00:29 1997
From: "Vijay Kumar" <vijay@hns.com>
Date: Tue Dec 16 09:00:32 PST 1997
Subject: Re: 2/29/2000 Broken!? -Reply
Year 2000 is the leap year. So, Vxworks will handle 2/29/2000 .

The rule is that every year which is divided by 4 is leap year except it is
divided by 100( 1700,1900 is not) and but if divided by 400 (1600,2000).

vijay

-- 
VIJAY KUMAR




From getker@sentientnet.com  Tue Dec 16 09:44:37 1997
From: Jim Getker <getker@sentientnet.com>
Date: Tue Dec 16 09:44:44 PST 1997
Subject: Re: 2/29/2000 Broken!?
At 05:24 PM 12/15/97 PST, you wrote:
>Submitted-by js@eroch.mc.xerox.com  Mon Dec 15 17:24:36 1997
>Submitted-by: js@eroch.mc.xerox.com (Jeffrey R. Szczepanski)
>
>
>...Speaking of year 2000 related items:
>
>Has any one else noticed that the VxWorks time functions
>work OK up through the year 2037, but the date 2/29/2000 reports backs
>as "3/00/2000". All other leaps years seem to work correctly.
>
>-Jeff

This is a problem in 5.2, but fixed in tornado.  We got a 5.2 patch from
wind river tech support.

Jim

-------------------------------------------------------------------
Jim Getker                          email: getker@sentientnet.com
Sentient Networks Inc.              phone: 408-473-8035
630 Alder Drive                     fax:   408-474-0333
Milpitas, CA 95035




From YF.Siu@eng.efi.com  Tue Dec 16 09:54:27 1997
From: "Yuet Fung Siu" <YF.Siu@eng.efi.com>
Date: Tue Dec 16 09:54:30 PST 1997
Subject: Re: 2/29/2000 Broken!?
On Dec 16,  7:31am, the vxWorks Users Group Exploder wrote:
>
> Does anyone have any other information or experience with how VxWorks will
> handle 2/29/2000?  This sounds like it needs some investigation...
>
> --
> Jon E. King (jeking@sandia.gov)
> Testers & Experimental Groundstations
> Sandia National Laboratories
> PO Box 5800
> Albuquerque, NM 87185-0965
> (505)845-8908 / FAX (505)844-5993
>

There is a careless bug in the ansi and gm time code in
VxWorks 5.2. This actually is not directly related to the
leap year evaluation but it will show up in year 2000 too.
If you set your time to 2/29/2000 23:59:55 and let it roll over,
you will end up with the 3/0/2000 result. I'm not sure if the
problem has been fixed in 5.3.

YF


From mam@pluto.dspt.com  Tue Dec 16 10:13:21 1997
From: "Mark Menge" <mam@pluto.dspt.com>
Date: Tue Dec 16 10:13:25 PST 1997
Subject: Dang nab it. ld doesn't clear the local bss variables ?
Has anyone ever seen a bug where the BSS segment is not being 
cleared by the loadModule command?

File.c:
BssTest()
{
 static int count;
 printf("Count addrs:0x%x value= %d\n\n", &count, count);
 return count;
}

->ld < host:/file.o
value = 16759184 = 0xffb990 = rtInf + 0x570 

-> staticTest()
Count addrs:0xbb3d9c value= -1809711128   

Hmmmmmm. It works for global bss variables.




From bwenholz@Pacesetter.COM  Tue Dec 16 10:16:24 1997
From: bwenholz@Pacesetter.COM (Bruce Wenholz)
Date: Tue Dec 16 10:16:28 PST 1997
Subject: Re: 2/29/2000 Broken!?

)
)Submitted-by js@eroch.mc.xerox.com  Mon Dec 15 17:24:36 1997
)Submitted-by: js@eroch.mc.xerox.com (Jeffrey R. Szczepanski)
)
)
)...Speaking of year 2000 related items:
)
)Has any one else noticed that the VxWorks time functions
)work OK up through the year 2037, but the date 2/29/2000 reports backs
)as "3/00/2000". All other leaps years seem to work correctly.
)
)-Jeff
Yes This has been reported to WRS quite some time ago.  We have already
put a product oput the door using a wrapper function to adjust for that
problem.
======================8<-------------------------
e-mail: bwenholz@pacesetter.com (Bruce Wenholz)
Pacesetter, Inc   Sylmar, Ca 91342, USA


From kb+@andrew.cmu.edu  Tue Dec 16 13:40:32 1997
From: Kevin Bradley <kb+@andrew.cmu.edu>
Date: Tue Dec 16 13:40:35 PST 1997
Subject: Re: Dang nab it. ld doesn't clear the local bss variables ?
Excerpts from mail: 16-Dec-97 Dang nab it. ld doesn't cle.. by the U. G.
Exploder@lbl.g 
> BssTest()
> {
>  static int count;
>  printf("Count addrs:0x%x value= %d\n\n", &count, count);
>  return count;
> }
>  
> ->ld < host:/file.o
> value = 16759184 = 0xffb990 = rtInf + 0x570 
>  
> -> staticTest()
> Count addrs:0xbb3d9c value= -1809711128   


I tried just this on my machine, using the same code.  This is
what I get:

-> ld < File.o
value = 13968932 = 0xd52624 = File.o_bss + 0xc
-> BssTest
Count addrs:0xd52618 value= 0

If I initialize to some other value, viz:

    static int count = 257;

then I get:

-> ld < File.o
value = 13968128 = 0xd52300 = File.o_bss + 0xc
-> BssTest
Count addrs:0xd52ddc value= 257


So I think it's something in your system somehow.
This is for an x86 BSP using gcc 2.7.2.2 on Linux (so it's not
Tornado's compiler) for VxWorks 5.3.1 (Tornado 1.0.1).


                                                    -- Kevin




From cgrames@mdc.com  Tue Dec 16 14:02:27 1997
From: Charlie Grames <cgrames@mdc.com>
Date: Tue Dec 16 14:02:30 PST 1997
Subject: Dang nab it. ld doesn't clear the local bss variables ? -Reply
For what it's worth, I tried running this test on an MVME2604 running VxWorks 5.3.1 (GNU
compiler), and it worked fine.

Charlie Grames
The Boeing Company
(314) 233-1956
Charles.R.Grames@boeing.com


>>> the vxWorks Users Group Exploder <vxwexplo@lbl.gov> 12/16/97 12:13pm >>>
Submitted-by mam@pluto.dspt.com  Tue Dec 16 10:13:21 1997
Submitted-by: "Mark Menge" <mam@pluto.dspt.com>

Has anyone ever seen a bug where the BSS segment is not being 
cleared by the loadModule command?

File.c:
BssTest()
{
 static int count;
 printf("Count addrs:0x%x value= %d\n\n", &count, count);
 return count;
}

->ld < host:/file.o
value = 16759184 = 0xffb990 = rtInf + 0x570 

-> staticTest()
Count addrs:0xbb3d9c value= -1809711128   

Hmmmmmm. It works for global bss variables.



From Wynn.Rostek-1@kmail.ksc.nasa.gov  Tue Dec 16 15:49:32 1997
From: Rostek-1 Wynn <Wynn.Rostek-1@kmail.ksc.nasa.gov>
Date: Tue Dec 16 15:49:36 PST 1997
Subject: Signals in vxworks???

I want to install a signal handler in some TCP/IP socket library
routines I developed in order to have the app close all open socket
before it terminates.

The problem is, when I 

#include <SigLib.h>, 

I end up with a whole series of messages complaining about not being
able to find  (No such file or directory):

arch/i960/sigI960Codes.h,
arch/mc68k/sigMc68kCodes.h
arch/mips/sigMipsCodes.h
arch/sparc/sigSparcCodes.h
arch/i86/sigI86Codes.h

When looking at sigCodes.h, it sure looks like only one of these should
be included, which one that is included is based on the value of
CPU_FAMILY, which I hope is the PPC.

The actual error messages are:


In file included from C:\Tornado\target/h/sigLib.h:24,
                 from htdsock.c:31:
C:\Tornado\target/h/sigCodes.h:24: arch/i960/sigI960Codes.h: No such
file or directory
C:\Tornado\target/h/sigCodes.h:28: arch/mc68k/sigMc68kCodes.h: No such
file or directory
C:\Tornado\target/h/sigCodes.h:32: arch/mips/sigMipsCodes.h: No such
file or directory
C:\Tornado\target/h/sigCodes.h:36: arch/sparc/sigSparcCodes.h: No such
file or directory
C:\Tornado\target/h/sigCodes.h:40: arch/i86/sigI86Codes.h: No such file
or directory
In file included from C:\Tornado\target/h/arch/ppc/sigPpcCodes.h:17,
                 from C:\Tornado\target/h/sigCodes.h:44,
                 from C:\Tornado\target/h/sigLib.h:24,
                 from htdsock.c:31:

Anyone have any ideas what I'm doing wrong?
Wynn Rostek
Lead Engineer, Advanced Development Laboratory
DNX-20
Kennedy Space Center, FL 32899

wynn.rostek-1@ksc.nasa.gov

Voice: (407) 867-6770
Fax: (407) 867-7435


From bhagvan@trinc.com  Tue Dec 16 18:39:31 1997
From: bhagvan@trinc.com (Bhagvan-Cheeyandira)
Date: Tue Dec 16 18:39:34 PST 1997
Subject: Qns on FTP
Hi

Had a question on FTP.

When doing a ftpLogin() after a successful ftpHookup(),
FTP is failing because of invalid 'user' and 'password'

1. Should the user and password be given when doing an FTP ?
2. If so, how do we set it on the remote side to accept these values.

Any advice would be helpful.

Thanks

Bhagvan
-------------------------------------------------------------------------
Bhagvan Cheeyandira			email: bhagvan@trinc.com
Technology Rendezvous Inc		Phone(O): (408) 566 0280,Extn 311 
3160 De La Cruz Blvd.,Suite 101		
SantaClara, CA 95054, USA
-------------------------------------------------------------------------


From vbkumar@wipinfo.soft.net  Tue Dec 16 21:34:00 1997
From: V B Kumar <vbkumar@wipinfo.soft.net>
Date: Tue Dec 16 21:34:12 PST 1997
Subject: Ethernet Driver Source ...
Is there any Vxworks ethernet driver source available for any board in the 
public domain ? 

Thanks in advance.








From philweb@sprynet.com  Wed Dec 17 00:47:49 1997
From: "Philippe Weber" <philweb@sprynet.com>
Date: Wed Dec 17 00:47:52 PST 1997
Subject: Re: 2000 problem

-----Original Message-----
>The PC version of AD is CE.  No points for originality here.
>
>>P.S.: BCE =3D Before Common Era - it's the politically correct version =
of BC
>>     (Before Christ), which assumes that you are talking to a =
Christian.  I=20
>>     have no idea what the PC version of AD is (instead of Anno =
Domine), but I
>>     recall that the abbr. is either the same or so radically =
different that it
>>     wasn't worth remembering.  If anyone remembers what it is, pls =
let me
>>     know, that I might re-add it to my store of useless trivia.
>>
>

I guess talking of year 1997 is also politically incorrect, as it =
assumes you are talking to a Christian...






From daemon@csg.lbl.gov  Wed Dec 17 04:01:04 1997
From: daemon@csg.lbl.gov
Date: Wed Dec 17 04:01:08 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Wed Dec 17 04:01:01 PST 1997

        Subject: NFS Hangs
        Subject: Re: mail client
        Subject: Loading vxWorks into Flash ROM on a MVME2604 Board
        Subject: Re: 2/29/2000 Broken!?

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: NFS Hangs
Date: Mon, 15 Dec 1997 10:09:28 -0500
From: "Joe W." <joew@wtc.gov>
Organization: US Army/Warrenton Training Center
Message-ID: <34954828.E03A79FE@wtc.gov>

I think I'm seeing what was discussed in this group several months
ago... the NFS server daemon takes over 100% of the CPU on my VxWorks
5.3.1 card, and then I must reboot.  Someone in the past suggested that
there was a patched dosFsLib available, but I can't find anything about
it on Wind River's site, except for something for x86 (we're
using Solaris.)

Any help would be much appreciated.

- --Joe W (joew@wtc.gov)


---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: mail client
Date: Tue, 16 Dec 1997 10:36:41 -0800
From: "Hwa-Jin Bae" <hwa-jin@npal.com>
Organization: Idiom Communications
Message-ID: <676hd6$a00$1@news.idiom.com>
References: <1997Dec15.171941+0000@av28>
Sender: readnews@204.32.126.155


Rainer Stelzer wrote in message <1997Dec15.171941+0000@av28>...
>Hi,
>I remember that about one year ago somebody
>published a small program for a simple
>SMTP-client in the VxWorks Users group.


http://www.pso.com/vxhacks.html




---------------------------

Newsgroups: comp.os.vxworks
Subject: Loading vxWorks into Flash ROM on a MVME2604 Board
Date: Mon, 15 Dec 1997 12:38:14 -0500
From: Franklyn Smith <frs@kodak.com>
Organization: Eastman Kodak Company
Message-ID: <34956B06.24DD@kodak.com>
Reply-To: Franklyn Smith <frs@kodak.com>

I'm trying to load vxWorks into the Flash ROM on Motorola's
MVME2604 board and I'm not having much luck!

We can load the bootrom_uncmp program OK using the instructions
in WRS target.txt file!

Which vxWorks target should I be trying to load?

Do I load it like I load the bootrom_uncmp program?

Any information on this subject would be much appreciated!


- -- 

/*******************************************************************\
* Franklyn R. Smith                    email: frs@kodak.com         *
* Commercial & Government Systems      phone: (716) 253-6119        *
* Eastman Kodak Company                fax:   (716) 253-5743        *
* 1447 St Paul St                                                   *
* Rochester, NY 14653-7005                                          *
\*******************************************************************/

---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: 2/29/2000 Broken!?
Date: 15 Dec 1997 22:37:46 -0500
From: Marc Unangst <mju@cs.cmu.edu>
Organization: Carnegie Mellon Univ. -- Computer Science Dept.
Message-ID: <vplg1nuklf9.fsf@teanininch.pdl.cs.cmu.edu>
References: <199712160301.TAA01277@carbon13.nmr.varian.com>
Sender: mju@teanininch.pdl.cs.cmu.edu

Frits Vosman x6952 <frits.vosman@nmr.varian.com> writes:
> All years divisible by 4 are leapyears. However, when the year is divisible by 
> 400 it is not a leap year, ie 1600 and 2000 are NOT leapyears. the data 
> 2/29/2000 will never happen!

Sigh, let's debunk this one early.  The year 2000 *is* a leap year.
The rule is as follows:

	The rule for leap years under the Gregorian calendar is that
	all years divisible by four are leap years EXCEPT century
	years NOT divisible by 400.  Thus 1700, 1800, and 1900 were
	not leap years, while 2000 will be one.  This rule gives 97
	leap years in 400 years or a mean year length of exactly
	365.2425 days.
	[source: sci.astro FAQ,
	http://www.landfield.com/faqs/astronomy/faq/part3/section-8.html]

- -Marc Unangst

---------------------------

End of New-News digest
**********************


From kyp@tailyn.com.tw  Wed Dec 17 04:21:21 1997
From: "kyp" <kyp@tailyn.com.tw>
Date: Wed Dec 17 04:21:25 PST 1997
Subject: question for GUN
I use Vxworks on WIN95.
I try to output IEEE format but fail (my ICE support IEEE format).
How to do it ?

Thanks for replay.


From ratkin@ix.netcom.com  Wed Dec 17 05:10:19 1997
From: ratkin@ix.netcom.com
Date: Wed Dec 17 05:10:22 PST 1997
Subject: Re: Re: 2/29/2000 Broken!?
>Submitted-by frits.vosman@nmr.varian.com  Mon Dec 15 19:01:42 1997
>Submitted-by: Frits Vosman x6952 <frits.vosman@nmr.varian.com>
>
>All years divisible by 4 are leapyears. However, when the year is divisible by 
>400 it is not a leap year, ie 1600 and 2000 are NOT leapyears. the data 
>2/29/2000 will never happen!
>
>Frits Vosman

Actually the algorithm for leap years is all years divisible by four, 
except those divisible by 100, _except_ those divisible by 400 are 
leap years. So the years 1600 and 2000 _are_ leap years, but the year 
1900 is not. 

Rob Atkin
Tiger Innovations, L.L.C.
Embedded Systems Consultants



From aram.nahidipour@spdg.COM  Wed Dec 17 07:14:16 1997
From: aram.nahidipour@spdg.COM (Aram Nahidipour)
Date: Wed Dec 17 07:14:19 PST 1997
Subject: Re: Qns on FTP

Bhagvan,

> 1. Should the user and password be given when doing an FTP ?

Yes.  You may use "anonymous" user if your remote site support that.
"anonymous" user typically does not need password.

You can also use tftp which does not need user name or password.  However
your remote site must support it also.

> 2. If so, how do we set it on the remote side to accept these values.
> 
That depends on your remote site OS.  Unix type os you use "adduser"
script, NT has "User Manager" and vxworks has loginUserAdd() function.

Hope this helps
Aram  


From Francis.Hallahan@gsfc.nasa.gov  Wed Dec 17 09:27:55 1997
From: Francis Hallahan <Francis.Hallahan@gsfc.nasa.gov>
Date: Wed Dec 17 09:27:58 PST 1997
Subject: Re: NFS Hangs (Ohhh Nooo! Not Again!)
>        Subject: NFS Hangs
>-------------------------------------------------------
>From: "Joe W." <joew@wtc.gov>
>
>I think I'm seeing what was discussed in this group several months
>ago... the NFS server daemon takes over 100% of the CPU on my VxWorks
>5.3.1 card, and then I must reboot.  Someone in the past suggested that
>there was a patched dosFsLib available, but I can't find anything about
>it on Wind River's site, except for something for x86 (we're
>using Solaris.)
>
>Any help would be much appreciated.
>
>- --Joe W (joew@wtc.gov)
>
>
>---------------------------
Joe,

I worked this problem with WRS back in 1995.  I am told that it was
fixed and this is a NEW(?) problem.  Regardless, the symptoms are
exactly the same, and when I apply the fix I got to 5.2 and 5.3 BSPs
the problem goes away!  The problem is in dosFsLib but does not show
up until you start using NFSd and/or FTPd.

My SPR was SPR #4672 for Sun/68k; it should work with Solaris/68k.
I believe there is also another SPR for this problem.  Either way,
you will need to contact WRS support at "support@wrs.com".

I will refrain from flaming WRS here, I'll do that directly with them.

Hope this helps,
Frank Hallahan

/-------------------------------------------------------------------------\
| Frank Hallahan                            |  Hallahan@gsfc.nasa.gov     |
|   Software Environment Leader - Code 521  |  fbh@vlsi.gsfc.nasa.gov     |
| Computer Sciences Corporation             |                             |
| at Nasa Goddard Space Flight Center       |  Phone (301) 286 7064       |
\-------------------------------------------------------------------------/




From kalalau!jmk@uu9.psi.com  Wed Dec 17 12:57:03 1997
From: jmk@acut.com (Joel Katz)
Date: Wed Dec 17 12:57:08 PST 1997
Subject: host,net, and service db's
I'm trying to port some UNIX code that uses the Unix network database=
 utilities including

{get,set,end}hostent
{get,set,end}netent
{get,set,end}svcent

I'm assuming that vxWorks has some kind of internal data table that is=
 loosely equivalent to these databases in order to do networking. Does=
 anyone have any insight into where these might be so that I can emulate the=
 database functions rather than modify my source code? Any tips would be app=
reciated.



Joel Katz, Principal Engineer  --- (603)-577-5895
Acuity Imaging, 9 Townsend West, Nashua, NH 03063 --- (603)-577-5965 (FAX)




From Wynn.Rostek-1@kmail.ksc.nasa.gov  Wed Dec 17 14:03:35 1997
From: Rostek-1 Wynn <Wynn.Rostek-1@kmail.ksc.nasa.gov>
Date: Wed Dec 17 14:03:39 PST 1997
Subject: RE: NFS Hangs (Ohhh Nooo! Not Again!) OT
>----------
>From: 	vxwexplo@lbl.gov[SMTP:vxwexplo@lbl.gov]
>Sent: 	Wednesday, December 17, 1997 11:28 AM
>To: 	Wynn.Rostek-1@kmail.ksc.nasa.gov
>Subject: 	Re: NFS Hangs (Ohhh Nooo! Not Again!)
>
>I will refrain from flaming WRS here, I'll do that directly with them.
>
I'm really sorry you refrained.  It's freezing here in the lab, and now
I can't warm my hands. :-)
>
>Wynn Rostek
>Lead Engineer, Advanced Development Laboratory
>DNX-20
>Kennedy Space Center, FL 32899
>
>wynn.rostek-1@ksc.nasa.gov
>
>Voice: (407) 867-6770
>Fax: (407) 867-7435
>
>
>
>
>


From david.seltz@wrs.com  Wed Dec 17 14:08:49 1997
From: David Seltz <david.seltz@wrs.com>
Date: Wed Dec 17 14:08:52 PST 1997
Subject: patching technology
Hi Everyone,
	Does anyone know anything about "patching technology"?  I know Pocketsoft
makes a product called RTPatch that uses this method to compares two files,
or two systems of files. It then stores only the changes into a small patch
file.  Using this patch and the patch-apply program, end-users can create
the new file (or system of files) from the old file (or system of files).
My customer is considering it as a way to dynamically make changes to their
system in smaller chunks then the object modules our dynamic loader allows.
	Does anyone have any knowledge of this being used in a VxWorks environment
(or any embedded environment)?  Any help would be appreciated.

Dave
 
****************************************************************

David Seltz                              email: dseltz@wrs.com
Field Application Engineer               phone: 978-453-4100 x56
Wind River Systems                       Fax:   978-453-9834 fax
150 Industrial Ave, East                 www:   http://www.wrs.com
Lowell, MA 01852

****************************************************************



From mfischer@qualcomm.com  Wed Dec 17 14:16:04 1997
From: Mark Fischer <mfischer@qualcomm.com>
Date: Wed Dec 17 14:16:08 PST 1997
Subject: Re: host,net, and service db's
According to the vxWorks Users Group Exploder:
>  anyone have any insight into where these might be so that I can emulate the=
>  database functions rather than modify my source code? Any tips would be app=
Have you tried gdbm? prep.ai.mit.edu:/pub/gnu/gdbm-1.7.3.tar.gz

Cheers,

Mark
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



From cruz_nojunk@xyplex.com  Wed Dec 17 14:37:40 1997
From: Roger Cruz <cruz_nojunk@xyplex.com>
Date: Wed Dec 17 14:37:43 PST 1997
Subject: Re: DOS filesystem Errors
>

I've been having lots of problems with the DOS FS and WRS has been useless in
helping me solve them.  I have experience the lock up condition that you
mentioned as well as other people in this list.  The problem goes back to Feb
96 and it is not fixed in the patch in their web site.  I obtained a work
around from another user.  Refer to TSR 49490 which makes some DOS Fs
semaphores priority safe.  The second problem that I have has to do with
corruption in the FAT and directory structure.  I too run scan disk which
reports problems with the file size.  What is worse is that over time, you'll
get two files sharing the same cluster (TSR 49805).  I still haven't received
a satisfactory response from WRS.  Please keep me posted with any news you
get from them regarding these issues.

Thanks,
Roger

PS.  Remove "_nojunk" from email address if replying directly

> Newsgroups: comp.os.vxworks
> Subject: DOS filesystem Errors
> Date: Tue, 09 Dec 1997 18:59:43 GMT
> From: jason@praxon.com (Jason Roybal)
> Organization: Praxon Inc.
> Message-ID: <348f94fa.613564258@news.alterdial.uu.net>
> Reply-To: jason@praxon.com
>
> I have been encountering frequent problems with using a DOS file
> system under VxWorks.  While running a multi-threaded application, an
> error has occurred that I can't seem to get around.  What happens is
> when one thread has a particular file open for reading, and another
> thread or separate application has the same file open for something
> other than read, a nasty error happens.  The immediate symptom is the
> system locking up.  When I reboot the target, the corrupt file can be
> opened for reading, but not for writing.  Also, the directory that
> contains that file seems to go 'read-only', and not allow any files in
> it's level, or any sub-directory to be created or opened for write.
> The 'fopen' on any of these files doesn't return an error, but once I
> try to write (with 'write', 'fwrite', 'fprintf', etc), the system
> crashes _hard_.
>
>         The only fix that I have been able to do is reboot in DOS, and
> run scandisk.  Scandisk then detects directory structure errors all
> over the place.  The particular errors are the lengths of files being
> mis-reported.  However, fixing the directory entries with scandisk
> doesn't fix the problem.  Any of the affected files must be deleted,
> and sometimes the directory affected must be removed and re-created.
>
>         I have tried to delete the corrupt files without running
> scandisk first, (in VxWorks), and it kills the system as well.
>
>         This vulnerability to errors is causing us serious concern.
> Has anyone encountered anything like this, and have any suggestions?
>
>         Please respond via email to:
>
>         jason@praxon.com
>
>         Thanks!
>



--
Roger Cruz                           cruz@xyplex.com
Xyplex Networks                      w: 508-952-4783
295 Foster Street                    f: 508-952-4887
Littleton, MA 01460





From kyp@tailyn.com.tw  Wed Dec 17 17:16:38 1997
From: "kyp" <kyp@tailyn.com.tw>
Date: Wed Dec 17 17:16:42 PST 1997
Subject: to Wang,Tom ( HT-EX)
Hi Tom:
      I am from Taiwain. My company is TAILYN in the Taoyuan.
I use Vxworks in DLC(digital loop carrier).
I think,may be you can send email to kyp@tailyn.com.tw for me .    


- Kao Yi-Ping


From daemon@csg.lbl.gov  Thu Dec 18 04:00:27 1997
From: daemon@csg.lbl.gov
Date: Thu Dec 18 04:00:30 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Thu Dec 18 04:00:23 PST 1997

        Subject: Language Internationalization

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Language Internationalization
Date: Wed, 10 Dec 1997 13:08:26 -0500
From: Michael McGee <Michael_McGee@stratus.com>
Organization: Stratus Computer Inc, Marlboro MA
Message-ID: <348EDA9A.222FC8AE@stratus.com>

Does anyone know of an internationalization library available for
VxWorks? I would really like a library that supports UNICODE strings.

Thanks
Mike


---------------------------

End of New-News digest
**********************


From thomas.arand@oen.siemens.de  Thu Dec 18 06:23:42 1997
From: thomas.arand@oen.siemens.de (Arand, Thomas)
Date: Thu Dec 18 06:23:46 PST 1997
Subject: WindView for IDTS465 BSP

Hi VxWorks world,

does anyone know how to include a timestamp driver to vxWorks in order to  =
 =
let WindView work properly with the IDTS465 eval board?

Thanks in advance,

 Thomas
 ----------------------------------------------------------------------
Thomas Arand                              Siemens AG
Tel.  +49 - 89 - 722 42296
Fax. +49 - 89 - 722 26572
thomas.arand=40oen.siemens.de




From currie@ghg.net  Thu Dec 18 12:04:25 1997
From: currie@ghg.net (Alan Currie)
Date: Thu Dec 18 12:04:35 PST 1997
Subject: Re: WindView for IDTS465 BSP
the vxWorks Users Group Exploder wrote:
> 
> Submitted-by thomas.arand@oen.siemens.de  Thu Dec 18 06:23:42 1997
> Submitted-by: thomas.arand@oen.siemens.de (Arand, Thomas)
> 
> Hi VxWorks world,
> 
> does anyone know how to include a timestamp driver to vxWorks in order to  =
>  =
> let WindView work properly with the IDTS465 eval board?
> 
We used a Tracemaker VME board to provide the timing info and
non-intrusively gather data for windview across the backplane.


From Richard.W.Mattox@lmco.com  Thu Dec 18 13:30:52 1997
From: Richard W Mattox <Richard.W.Mattox@lmco.com>
Date: Thu Dec 18 13:30:56 PST 1997
Subject: Ada vs C++/C

Hello Fellow VxWorkers,

I am taking an informal poll of the embedded software community that uses 
VxWorks as its RTOS.  I want to know what language or languages you are 
programming in; C, C++, Ada 83, Ada 95, etc.  Also,  I would appreciate 
someone's response from Boeing since my program office is convinced that all of 
Boeing's software is written in Ada.  Also, does anyone have any life cycle cost
analysis data comparing Ada 95 to C++.  I realize this would just be an estimate
by analogy because there are no metrics data for Ada 95.  Thanks for your input.

Rick Mattox
410.682.2315
richard.w.mattox@lmco.com


From ericn@technologies.ticketmaster.com  Thu Dec 18 15:41:20 1997
From: ericn@technologies.ticketmaster.com (Eric Nelson)
Date: Thu Dec 18 15:41:23 PST 1997
Subject: SIO drivers, TTY drivers and flow control
This is a multi-part message in MIME format.

------=_NextPart_000_003E_01BD0BD3.D4C7A2A0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Am I missing something, or is there a problem with the new serial driver
architecture?

I have written an SIO driver for the MC68328, and am trying to make it
support hardware flow control. The way I have done this in other
environments is to check for space in the received-data ring buffer and =
use
this to set the RTS signal appropriately.

The SIO/TTY architecture doesn't seem to support this for two reasons :
     1. There is no obvious way that the SIO driver can find the ring
=20
         buffer.
     2. There is no obvious way to insert code that executes when data =
is
=20
         pulled from the ring buffer by an application.

Does anybody know of a work-around?

Thanks in advance.



Eric Nelson
Ticketmaster Technologies, Inc
EricN@technologies.ticketmaster.com
EricNelson@acm.org

------=_NextPart_000_003E_01BD0BD3.D4C7A2A0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">
<HTML>
<HEAD>

<META content=3Dtext/html;charset=3Diso-8859-1 =
http-equiv=3DContent-Type>
<META content=3D'"MSHTML 4.71.1712.3"' name=3DGENERATOR>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Am I missing something, or is there a =
problem with=20
the new serial driver<BR>architecture?<BR><BR>I have written an SIO =
driver for=20
the MC68328, and am trying to make it<BR>support hardware flow control. =
The way=20
I have done this in other<BR>environments is to check for space in the=20
received-data ring buffer and use<BR>this to set the RTS signal=20
appropriately.<BR><BR>The SIO/TTY architecture doesn't seem to support =
this for=20
two reasons :<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1. There is no obvious way =
that the=20
SIO driver can find the ring<BR> </FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial =
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
buffer.<BR>&nbsp;&nbsp;&nbsp;&nbsp; 2. There is no obvious way to insert =
code=20
that executes when data is<BR> </FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial =
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
pulled from the ring buffer by an application.<BR><BR>Does anybody know =
of a=20
work-around?<BR><BR>Thanks in advance.<BR><BR><BR></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2><FONT face=3DArial size=3D2>Eric=20
Nelson<BR>Ticketmaster Technologies, Inc<BR><A=20
href=3D"mailto:EricN@technologies.ticketmaster.com">EricN@technologies.ti=
cketmaster.com</A><BR><A=20
href=3D"mailto:EricNelson@acm.org">EricNelson</A></FONT><A=20
href=3D"mailto:EricNelson@acm.org">@acm.org</A></FONT></DIV></BODY></HTML=
>

------=_NextPart_000_003E_01BD0BD3.D4C7A2A0--



From john.l.ahrens@boeing.com  Thu Dec 18 16:04:06 1997
From: "John. L. Ahrens" <john.l.ahrens@boeing.com>
Date: Thu Dec 18 16:04:10 PST 1997
Subject: Re: Ada vs C++/C
the vxWorks Users Group Exploder wrote:
> 
> Submitted-by Richard.W.Mattox@lmco.com  Thu Dec 18 13:30:52 1997
> Submitted-by: Richard W Mattox <Richard.W.Mattox@lmco.com>
> 
> Hello Fellow VxWorkers,
> 
> I am taking an informal poll of the embedded software community that uses
> VxWorks as its RTOS.  I want to know what language or languages you are
> programming in; C, C++, Ada 83, Ada 95, etc.  Also,  I would appreciate
> someone's response from Boeing since my program office is convinced that all of
> Boeing's software is written in Ada.  Also, does anyone have any life cycle cost
> analysis data comparing Ada 95 to C++.  I realize this would just be an estimate
> by analogy because there are no metrics data for Ada 95.  Thanks for your input.
> 

I know of Boeing systems using C, C++ and FORTRAN in realtime
environments. Some are even flight systems (even military flight
system).
--
I don't speak for my employer.      | You can't have an impact
Test Systems Research & Development | without expecting a collision.
john.l.ahrens@boeing.com            |


From ste%narwhal@wago.de  Fri Dec 19 01:13:29 1997
From: Steve James <ste%narwhal@wago.de>
Date: Fri Dec 19 01:13:33 PST 1997
Subject: Year 2000 29th Feb WAS Broken
This is a multi-part message in MIME format.
--------------32D8EEC50B507EBF54B957BF
Content-Type: text/plain; charset=us-ascii
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

There has been quite a bit of traffic on this group regarding this topic
recently. Here are the latest facts from my experiences:-

1. Year 2000 IS a leap year,

2. Our VxWorks 5.3 (from Tornado 1.0) target incorrectly displays 29th
Feb. 2000 as 0th Mar 2000,

3. I have been advised by WRS Support that this is fixed in VxWorks
5.3.1 (from Tornado 1.0.1),

4. The bug is in the gmtime module.

5. It manifested on our system in localtime_r().

With assistance from Support, we have used the VxWorks 5.3.1 gmtime.o
object and linked it to our 5.3 target. This has safely fixed the bug
and allowed us to postpone migration of our system to 5.3.1 until a more
convenient time next year.

--
--Steve James, Senior Design Eng.--............................
--Wandel & Goltermann Ltd........--.+44 (0)1752 765367 (vmail).
--Eurotech House, Burrington Way.--.+44 (0)1752 791101 (FAX)...
--Plymouth, Devon. PL5 3LZ. U.K..--.+44 (0)1752 772773 (switcb)


--------------32D8EEC50B507EBF54B957BF
Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Steve James
Content-Disposition: attachment; filename="vcard.vcf"

begin:          vcard
fn:             Steve James
n:              James;Steve
org:            Wandel & Goltermann Ltd., Plymouth
adr:            Eurotech House, Burrington Way;;Honicknowle;Plymouth;Devon;PL5 3LZ;UK
email;internet: narwhal!ste@wago.de
title:          Senior Design Engineer
tel;work:       +44 (0)1752 765367
tel;fax:        +44 (0)1752 791101
x-mozilla-cpt:  ;-1
x-mozilla-html: TRUE
end:            vcard


--------------32D8EEC50B507EBF54B957BF--




From phil.quiney@gecm.com  Fri Dec 19 03:16:32 1997
From: Philip Quiney <phil.quiney@gecm.com>
Date: Fri Dec 19 03:16:40 PST 1997
Subject: Re: WindView for IDTS465 BSP
Hi there,

I would recommend reading the application note "Creating a VxWorks Timestamp
Driver" (I believe it is supplied with the WindView software - or ask your WRS
rep for a copy). 

Code required for the Timestamp driver gets added to the BSP sysLib.c file so
it is worth checking to see if it is already there by searching sysLib.c for
the string 'TIMESTAMP'. The hardware support required for the timestamp driver
is described in the above application note. We simulated it in software via a
high speed (500usec) interrupt but had to resort to not using 'intConnect'
otherwise WindView showed the 'thread' as always being in the ISR handling the
high speed tick.

To build the support into the kernel you need to define the following in your
BSP config.h file:

#define INCLUDE_TIMESTAMP	/* include timestamp timer */
#define INCLUDE_INSTRUMENTATION /* These for WindView */
#define INCLUDE_WINDVIEW

Then re run make...

Regards

Phil Q

> 
> Hi VxWorks world,
> 
> does anyone know how to include a timestamp driver to vxWorks in order to  =
>  =
> let WindView work properly with the IDTS465 eval board?
> 
> Thanks in advance,
> 
>  Thomas

===============================================================================
Phil Quiney          _/_/_/_/        _/  _/_/_/_/  email : phil.quiney@gecm.com 
GEC Marconi         _/    _/        _/  _/    _/     tel : +44 1245 353221x3914
Communications Ltd _/_/_/_/  _/    _/  _/  _/_/      fax : +44 1245 275448
Chelmsford        _/        _/_/_/_/  _/_/_/_/
England CM1 1PL                              _/                             
===============================================================================


From daemon@csg.lbl.gov  Fri Dec 19 04:01:50 1997
From: daemon@csg.lbl.gov
Date: Fri Dec 19 04:01:53 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Fri Dec 19 04:01:48 PST 1997

        Subject: BOOTP and Gateways
        Subject: vxWorks DOS bugs - Filling a disk corrupts it
        Subject: VxWorks & Linux ???
        Subject: Re: 2000 problem
        Subject: Re: 2000 problem

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: BOOTP and Gateways
Date: Wed, 10 Dec 1997 19:27:57 +0000
From: Owen Friel <owen.friel@nt.com>
Organization: Bell Northern Research
Message-ID: <348EED3C.201F@nt.com>

I've been trying to use bootpMsgGet to return a gateway address. However
it always returns the BOOTP server address in the gateway field of the 
BOOTP_MSG. Is this a bug in the VXWorks BOOTP implemention?

Alternatively it may be a bug in the CMU Bootp Server distributed with
VxWorks. Is there a list of bugs for the CMU BOOTP 2.1 code or VxWorks
implementation of BOOTP.

Thanks,
Owen

---------------------------

Newsgroups: comp.os.vxworks
Subject: vxWorks DOS bugs - Filling a disk corrupts it
Date: Wed, 10 Dec 1997 19:28:48 +0000
From: Owen Friel <owen.friel@nt.com>
Organization: Bell Northern Research
Message-ID: <348EED70.63CC@nt.com>

Has anybody got a list of  VXWorks dosFsLib bugs. We are investigating
two at the moment and are wondering has anybody cracked them yet?

1. a write to a disk does not return an error when the disk is full. It
also hangs the system. 
2. Filling a disk corrupts the FAT table. Having done "1" above the FAT
is corrupted.

Thanks in advance.
Owen

---------------------------

Newsgroups: comp.os.vxworks
Subject: VxWorks & Linux ???
Date: 16 Dec 1997 11:42:23 -0500
From: Henning Pangels <hmp@rec.ri.cmu.edu>
Organization: National Robotics Engineering Consortium
Message-ID: <xwxafe18ck0.fsf@rec.ri.cmu.edu>
Sender: hmp@eagle


Is anyone out there seriously using linux as a host OS for VxWorks
development? I'd like to hear about the ups and downs of that
experience!
Thanks,

- -Henning Pangels

- -- 
*---------------------------------------------------------------------*
| Henning M. Pangels      Assistant Director for Software Engineering |
| hmp+@cmu.edu               National Robotics Engineering Consortium |
|                                                                     |
| http://rec.ri.cmu.edu/~hmp                          #10 40th Street |
|                                                Pittsburgh, PA 15201 |
| Robotics Institute                            Phone:  (412)681-6935 |
| Carnegie Mellon University                    FAX:    (412)681-6961 |
*---------------------------------------------------------------------*

---------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++
Subject: Re: 2000 problem
Date: 11 Dec 1997 11:31:53 GMT
From: je@bton.ac.uk (John English)
Organization: University of Brighton
Message-ID: <66oiv9$ljd@saturn.brighton.ac.uk>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <62lk9n$gqf@dg-rtp.dg.com> <01bcdf9c$71b5bfc0$daac2ac0@pub00005m> <344F62B2.6EA@sensor.com> <66ngud$5s2$2@news.cc.ucf.edu> <348F6DC1.2C81@flash.net>
Followup-To: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++

Spaceman Spiff (csweber@flash.net) wrote:
: This is the 20th century because years 1 - 99 are the first century, 
: 100 - 199 are the second century, and so on.

No, a century is 100 years, not 99 -- the 1st century was 1-100,
the 2nd century was 101-200, and the 20th century is 1901-2000
(inclusive); the 21st century starts on January 1st, 2001.

- -----------------------------------------------------------------
 John English              | mailto:je@brighton.ac.uk
 Senior Lecturer           | http://www.comp.it.bton.ac.uk/je
 Dept. of Computing        | ** NON-PROFIT CD FOR CS STUDENTS **
 University of Brighton    |    -- see http://burks.bton.ac.uk
- -----------------------------------------------------------------

---------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++
Subject: Re: 2000 problem
Date: Thu, 11 Dec 1997 17:17:30 -0500
From: Joshua Waxman <jwaxman@ymail.yu.edu>
Organization: Yeshiva University
Message-ID: <Pine.A41.3.95.971211171220.75072B-100000@acis.mc.yu.edu>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <OzBgx$r48GA.289@nih2naac.prod2.compuserve.com> <M77Nmaz48GA.75@news2.ingr.com> <Pine.A41.3.95.971028190810.11082D-100000@acis.mc.yu.edu> <34906238.38C0@magmacom.com>

On Thu, 11 Dec 1997, Barry Millman wrote:

> Joshua Waxman wrote:
> > 
> > > whas different from
> > > 10/10/2001 from 10/10/2000?
> > > Anyone who does not account, when making their fix, fir 2-digit months, 2
> > > digit days and 4 digit years probably needs a good talking to by their
> > > managers. ;-)
> > 
> > Why not 3 digit years? A date in 1900's can be written as 10/10/9xx, in
> > 2000 as 10/10/0xx, and so on until the end of 2899. While there was reason
> > to worry about the turn of the millenium, I doubt that the code written
> > today will be used in a couple hundred years.
> > 
> > Josh Waxman
> 
> Josh:
> 	Your suggestion scares the pants off me!  I have seen too many systems
> that diddled dates, and they all suffered for it!
> 
> 	First, how many bytes would you save with this technique?  A gigabyte?
> 
It all depends how much data in general you are talking about. If you have
a LOT of data and lets say 1/100 of it is data information, and that
information is being backed up daily, then it can quickly add up to a
gigabyte.


> 	Now, how much code needs to be added whenever any of these fields need
> to be manipulated.  How would you store the data....probably as a string
> of bytes.  Think of all the conversion code to handle this "savings".  
> 

Surely we are not talking about primary storage here. There would be no
one who has gigabytes of data residing in RAM. Conversions would be done
on read from a file, and then no other conversion code would be necessary
except on write.

In general, I agree, it can create a lot of problems, and I never really
thought in general otherwise. But there might be some case where it is not
better to save space.

> 	In all data processing, we must look at the big picture.  

Sometimes we must also look at each case individually.
> 
> Sorry about the flame,
No problem.
> Barry
> 
Josh Waxman

> 
> -- 
> ===========================================================================
> 			Click, Click, Comment
> 
> to make suggestions, commments, complaints and feedback FAST to 
> thousands of organizations worldwide via
>   
> 			http://www.sugbox.com
> ===========================================================================
> 
> 


---------------------------

End of New-News digest
**********************


From mfischer@qualcomm.com  Fri Dec 19 14:48:42 1997
From: Mark Fischer <mfischer@qualcomm.com>
Date: Fri Dec 19 14:48:46 PST 1997
Subject: objectives?
All,

Was wondering, has anyone ever run Objective-C applications on target?
If so, any caveats? If not, why not?

Mark Fischer
Qualcomm, Inc.



From sfakhour@nortel.ca  Fri Dec 19 16:13:49 1997
From: "Salim Fakhouri" <sfakhour@nortel.ca>
Date: Fri Dec 19 16:13:52 PST 1997
Subject: Strange SNMP GetNext behaviour

Hi everyone, I am using WindNet SNMPv1/v2c
version 1.0 and am noticing some strange
behaviour with GetNext:

Basically, when a table is empty I see
that the getNext function for this table
is called several times. My function
executes nextproc_no_next() so I do not
understand why the SNMP agent calls it
several times.

Has anyone noticed the same thing?

Thanks.

Salim Fakhouri
Nortel
Email: sfakhour@nortel.ca


From LegoasMarcoA@space.honeywell.com  Fri Dec 19 22:52:24 1997
From: "Legoas, Marco A (FL51)" <LegoasMarcoA@space.honeywell.com>
Date: Fri Dec 19 22:52:27 PST 1997
Subject: VxWorks in Flight Software?

Does anyone know if  VxWorks has ever been used in any type flight
control software? 

Thanks for your answer

Marco Legoas
malegoas@space.honeywell.com


From daemon@csg.lbl.gov  Sat Dec 20 04:01:12 1997
From: daemon@csg.lbl.gov
Date: Sat Dec 20 04:01:16 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Sat Dec 20 04:01:07 PST 1997

        Subject: Re: 2000 problem
        Subject: Re: 2000 problem

-------------------------------------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++
Subject: Re: 2000 problem
Date: Tue, 16 Dec 1997 16:50:58 -0600
From: Mike Snyder <wyndo@cxo.com>
Organization: Accu-Scan/Superior School Supplies
Message-ID: <6770tv$8ts@mtinsc04.worldnet.att.net>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <OzBgx$r48GA.289@nih2naac.prod2.compuserve.com> <M77Nmaz48GA.75@news2.ingr.com> <Pine.A41.3.95.971028190810.11082D-100000@acis.mc.yu.edu> <34906238.38C0@magmacom.com> <Pine.A41.3.95.971211171220.75072B-100000@acis.mc.yu.edu> <3491939D.255C@adobe.com>
Reply-To: wyndo@cxo.com

> I find it depressing that half-assed solutions are still being promoted
> in the name of chimeral space savings. First of all, if you are doing
> backups, you are probably using some compression to get more onto the
> tapes. This will negate any "savings" you might get from a 3-digit date.
> Second, you have not talked about what format you are storing the
> numbers in. Simple choices, like binary vs ascii representation, will
> have much larger effects than 3- vs 4-digit representations. Third, the
> cost of a gigabyte of tape storage is so small compared to the cost of
> maintaining code to handle a three-digit date scheme as to be trivial.

What will happen:

After a decade or two, the majority of computer users will get tired of
having dates expressed in 4 (or even 3) digits since "who cares" about
the 1900's. Software will return to 2-digit dates because people won't
care to see previous-century dates.  IMHO.

Mike.

---------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++
Subject: Re: 2000 problem
Date: Fri, 12 Dec 1997 07:58:04 -0500
From: "Marty Doane" <doanemr@rapistan.com>
Message-ID: <3491375c.0@diamond.diamondmm.com>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <62lk9n$gqf@dg-rtp.dg.com> <01bcdf9c$71b5bfc0$daac2ac0@pub00005m> <344F62B2.6EA@sensor.com> <66ngud$5s2$2@news.cc.ucf.edu> <348F6DC1.2C81@flash.net> <66oiv9$ljd@saturn.brighton.ac.uk> <34901488.4994@bedrockcomputers.demon.co.uk> <34908FE6.72AF@flash.net> <3491152F.24E4@bedrockcomputers.demon.co.uk> <Pine.OSF.3.96.971212053541.2248A-100000@worf.netins.net>

>If Christ had been born in the year 0 A.D., it would have been a different
>matter.  But they hadn't QUITE got around to the idea of zero by then.  So
it
>got labelled as 1.  Weep all you want, but that's how it turned out.


Actually, most historians believe Christ was born in 4 BC. I guess that
means we're already in the next millenium. Story of my life - missed it
again.

Marty Doane
Rapistan Systems




---------------------------

End of New-News digest
**********************


From daemon@csg.lbl.gov  Sun Dec 21 04:01:20 1997
From: daemon@csg.lbl.gov
Date: Sun Dec 21 04:01:23 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Sun Dec 21 04:01:18 PST 1997

        Subject: Re: VxWorks & Linux ???
        Subject: Only $5.00/mo. for 45,000+ Uncensored Usenet Newsgroups
        Subject: Re: 2000 problem

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Re: VxWorks & Linux ???
Date: Tue, 16 Dec 1997 23:00:21 -0800
From: Michael Morrison <mike@ringo.reno.nv.us>
Organization: My House
Message-ID: <34977885.B3759FB4@ringo.reno.nv.us>
References: <xwxafe18ck0.fsf@rec.ri.cmu.edu>

Henning Pangels wrote:
> 
> Is anyone out there seriously using linux as a host OS for VxWorks
> development? I'd like to hear about the ups and downs of that
> experience!
> Thanks,


Yes, I use it to target a Pentium SBC.  My Boss went and bought Tornado
for M$-Windows, 
but since I just can't use that crap, I got myself set up with Linux. 
The hardest part was getting the stock GDB to work.  There isn't a
canned config for i486-vxworks targets, so I
had to do some hacking to get it to work correctly.  I use the 'ddd'
front end for GDB, 
which is really an excellent program.  Targeting a 68k should be easy as
there is a canned
config for vxworks.  The binutils package configuration went just fine
as it has a canned 
config for i486-aout targets.   GCC worked just fine after I figured out
the correct
arguments for the 'configure' script.   

On the down side, WRS doesn't support Linux, so you are on your own as
far as problems 
you may encounter with the compiler, linker et-al.  I haven't had any
problems so this
isn't an issue for me.  GDB will only work when you configure vxworks to
operate in the
older 5.2 configuration.  However, I was able to compile thier WDB code
and do some
"Tornado" browser stuff, like connect with the target server and get the
stack sizes etc.

On the up side, you can use one of the finest operating systems on the
planet to do 
your real-time development.  It's unfortunate that WRS doesn't support
Linux as a
development platform.

    

Michael Morrison
mike@ringo.reno.nv.us

---------------------------

Newsgroups: comp.os.vxworks
Subject: Only $5.00/mo. for 45,000+ Uncensored Usenet Newsgroups
Date: 16 Dec 97 20:36:12 GMT
From: ycrxxfhi@realnews.net
Organization: Realnews
Message-ID: <3496e63c.0@diamond.diamondmm.com>

- --PART_BOUNDARY_KJEZMEYJIR
Content-Type: text/html; charset=us-ascii; name="test.html"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="test.html"
Content-Base: "file:///C|/test.html"


<BASE HREF="file:///C|/test.html">
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT language="JavaScript">
<!--
B = open("http://www.realnews.net")
blur(B)
//-->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
- --PART_BOUNDARY_KJEZMEYJIR
Need good access to the usenet newsgroups? Don't want to switch your
 ISP or pay to much?  Than maybe we can help. We offer access to usenet
 for the flat rate price of $5 a month. Over 40,000 groups to search
 from and we are adding feeds as fast as we can..We sell company,School
 and ISP accounts starting at only $49.95 a month..Go to
 www.realnews.net to signup online. Your login and password will be
 sent to you in less then 24 hours.. You can also call 203-888-4527 to
 signup the same day... For the first 100 new customers you can get
 realnews along with a unlimited dialup ppp account for only $9.97 a
 month. Thats right both accounts for $9.97 a month when paying 12 months in advance..We have dialup access to most major US cities.

- --PART_BOUNDARY_KJEZMEYJIR


---------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++
Subject: Re: 2000 problem
Date: 17 Dec 1997 11:21:21 GMT
From: "Leon Jones" <leon.jones@lineone.net>
Organization: British Telecom
Message-ID: <01bd0aa1$4b7ae6c0$LocalHost@default>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <62ijm7$qmu@bgtnsc02.worldnet.att.net> <344DCDF8.26351658@absyss.fr> <OzBgx$r48GA.289@nih2naac.prod2.compuserve.com> <M77Nmaz48GA.75@news2.ingr.com> <Pine.A41.3.95.971028190810.11082D-100000@acis.mc.yu.edu> <34906238.38C0@magmacom.com> <Pine.A41.3.95.971211171220.75072B-100000@acis.mc.yu.edu> <3491939D.255C@adobe.com> <6770tv$8ts@mtinsc04.worldnet.att.net>

I think this is extremely unlikely bearing in mind the attention that this
problem has earned this time round.

I may be wrong but I don't care anyway - I'll be dead!!!

Leon
leon.jones@lineone.net

Mike Snyder <wyndo@cxo.com> wrote in article
<6770tv$8ts@mtinsc04.worldnet.att.net>...
[snip previous post]

| After a decade or two, the majority of computer users will get tired of
| having dates expressed in 4 (or even 3) digits since "who cares" about
| the 1900's. Software will return to 2-digit dates because people won't
| care to see previous-century dates.  IMHO.
| 
| Mike.
| 

---------------------------

End of New-News digest
**********************


From bmcgonig@captain.mariners.com  Sun Dec 21 20:07:40 1997
From: Brian <bmcgonig@captain.mariners.com>
Date: Sun Dec 21 20:07:43 PST 1997
Subject: Minimal VxWorks size


Hi folks..

Im wondering if anyone knows the minimal
size that I can get VxWorks down to in 
my shippable system?

I have a 486, I dont need Network, disk drives. 
I need serial. 

So far I sould only get it down to 
approx. 300K. 

Im sure that I should be able to do better
than that. My approach has been deleting 
some of the #includes in configall.h and
config.h.  Is there another/better way?

Thanx

brian


From kyp@tailyn.com.tw  Mon Dec 22 01:19:29 1997
From: "kyp" <kyp@tailyn.com.tw>
Date: Mon Dec 22 01:19:34 PST 1997
Subject: =?BIG5?B?Zm9yIElFRUUgZm9ybWF0?=

everybody,
  Where can found a2i68k to convert a.out to IEEE format.

Thanks to replay.


From daemon@csg.lbl.gov  Mon Dec 22 04:00:39 1997
From: daemon@csg.lbl.gov
Date: Mon Dec 22 04:00:43 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Mon Dec 22 04:00:37 PST 1997

        Subject: Looking for good Flash File System
        Subject: Signal/interrupt problems in VxSim 5.3.1
        Subject: FIOFSTATGET
        Subject: What is breakpoint -9?

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Looking for good Flash File System
Date: 17 Dec 1997 12:36:51 GMT
From: "Simon Tourangeau" <simon@cgltech.com>
Organization: Metrix Interlink
Message-ID: <01bd0ae7$a22b1ee0$65c6cdcd@nelson.cgltech.com>

I am looking for a Flash File System for VxWorks to be used on x86
architecture with 28f016 flashes...

As anybody used such drivers ? 

Which would you recommend ? 

Anybody used the one from RST ?

Thanks 

Simon Tourangeau

---------------------------

Newsgroups: comp.os.vxworks
Subject: Signal/interrupt problems in VxSim 5.3.1
Date: Thu, 18 Dec 1997 07:47:45 -0500
From: "John H. Zouck" <jhz@aplexus.jhuapl.edu>
Organization: Johns Hopkins University Applied Physics Lab, Laurel, MD, USA
Message-ID: <Pine.GSO.3.96.971218072935.11078B-100000@aplexus.jhuapl.edu>

I am new to VxSim, but have a running system (with Tornado) on a SPARC
20/Solaris workstation, and have gotten the demo and some more
sophisticated programs running. 

However, I am having trouble with getting signals working as user
interrupts. Even with the simplest code, I kill the entire Vxworks process
each time I issue the 'kill' command from a csh session to the process
running tgtsvr. I have tried both user signals (16 and 17 on Solaris)
with equal unsuccess.

I can issue the kill with the clock signal (14 on Solaris)  and not kill
the process, but others kill it, just like the signal was not set up to be
handled. I've tried doing the intConnect from the shell and wrioting 
a programs that does the intConnect. Neither work. 

I must have missed some step in setting up the signal.

From the shell:

intConnect( 16, logMsg, "Interrupt...\n")

Then from another solaris session:

kill -16 <process number of tgtsrv>

That disconnects the tgtsvr process.

Here's the code, derived from the demo code included in VxSim:

======================================================================
#include "vxWorks.h"
#include "taskLib.h"
#include "stdio.h"
#include "iv.h" // Includes ivSimSolaris.h

static int icount = 0;
static void my_int_handler( int );

//
// A simple demo routine
//

void demo(int param)
{
        int status;

        // find out what task we are and print message

                printf("Hello from task (%s) built by jhz.  Startup parameter was %d.\n",
                        taskName(0), param);
        // Connect interrupt from signal to handler

        // SIGUSR1 in solaris = 16
        status = intConnect ( 16, my_int_handler, 0);
        printf ("Interrupt connect status response: %d\n", status);

        for (;;) {
                taskDelay( 100);
                printf ("Interrupt count = %d\n", icount);
         }
}

static void my_int_handler( int val ) {
        icount++;
}





============================
John H. Zouck 
The Johns Hopkins University
Applied Physics Laboratory
============================


---------------------------

Newsgroups: comp.os.vxworks
Subject: FIOFSTATGET
Date: Wed, 17 Dec 1997 10:00:49 -0800
From: Phil Staub <phils@ap.com>
Organization: Audio Precision, Inc.
Message-ID: <34981351.3C3D@ap.com>
Reply-To: phils@ap.com

In the process of developing a device driver to provide input to a
flex/bison parser, I encountered an ioctl call that getc()

---------------------------

Newsgroups: comp.os.vxworks
Subject: What is breakpoint -9?
Date: Wed, 17 Dec 1997 10:29:43 -0800
From: Phil Staub <phils@ap.com>
Organization: Audio Precision, Inc.
Message-ID: <349818B4.4FBC@ap.com>
Reply-To: phils@ap.com

In using Tornado 1.0.1 with a custom BSP for x86, I have encountered a
situation in single stepping that I'd appreciate some clarification on.

When attached to a task, and single-stepping, I get the following
warning with every step:

Disabling unsettable breakpoints:
- -9
warning: Error setting breakpoint: WTX Error 0x100ca
(AGENT_MEM_ACCESS_ERROR)
Cannot insert breakpoint -9:

The single step seems to work just fine.

I see what I *think* this is telling me (that it's trying to put a
breakpoint in ROM), but I don't know what breakpoint -9 is, nor why it
is occurring on each step, even though it says it is disabling the
breakpoint. Is this some sort of internal breakpoint or something?

Thanks,
Phil

---------------------------

End of New-News digest
**********************


From enrico.ferro@elsag.it  Mon Dec 22 07:57:14 1997
From: Enrico Ferro <enrico.ferro@elsag.it>
Date: Mon Dec 22 07:57:18 PST 1997
Subject: "Packed" structures
Hi guys,

I have a little perplexity about the option "packed" to be associated to a
structure.
I have always used the following:

packed struct myStruct {
char a;
char b;
int c; 
};

Now, from the GNU toolkit manual I seem to understand that the "packed"
directive must be repeated for each entry of the structure like:
                
struct myStruct {
char a __attribute__((packed));
char b __attribute__((packed));
int c; 
};

Am I correct on my assumption? Or there is a better way I have not figured out?

I thank in advance whoever may want to clarify this issue to me.

Enrico Ferro
Elsag Bailey Hartmann & Braun S.p.A.
Via Hermada 6, 16154 Genova - Italy
Tel. 0039-10-6586222 --- Fax. 0039-10-6586210
Home 0039-10-6517797
Work E-mail Enrico.Ferro@elsag.it
Backup work e-mail address Enrico.Ferro@usa.net
Home e-mail cluinfo@clu.assicomitalia.it




From wbrown@csg.lbl.gov  Mon Dec 22 09:42:20 1997
From: wbrown@csg.lbl.gov (Bill Brown)
Date: Mon Dec 22 09:42:23 PST 1997
Subject: Administrivia - No support between 12/23/97 and 12/2/98

LBNL (which hosts this mailing list) will be closed down from December 23
until January 2.  What this means is that admin requests will pile up in
the mailbox until the second of January.  AFAIK, there are no planned
power outages or network interuptions so the list should be running on
auto-pilot, so to speak.

It's likely that one or two of us may have the opportunity to log in from
home and check for problems, but there's no guarantees that this will
happen.

Best wishes to all for a joyful holiday season!

-bill
Duty "Keeper of the List"


From kyp@tailyn.com.tw  Tue Dec 23 00:38:25 1997
From: "kyp" <kyp@tailyn.com.tw>
Date: Tue Dec 23 00:38:30 PST 1997
Subject: Re : Alon for IEEE format

>Kyp,
>
>I have an old version.  It has not worked on my ICE debugger, though.
>Try it if you wish, and tell me If it worked. It is UNIX based.
>
>Alon



Hi Alon ,

Thank for  your replay.  Please  send 	the  file to my e-main
"kyp@tailyn.com.tw".

--Kyp


From phil.quiney@gecm.com  Tue Dec 23 01:57:50 1997
From: Philip Quiney <phil.quiney@gecm.com>
Date: Tue Dec 23 01:57:53 PST 1997
Subject: Re: Minimal VxWorks size
Hi there,
 
> 
> Im sure that I should be able to do better
> than that. My approach has been deleting 
> some of the #includes in configall.h and
> config.h.  Is there another/better way?
> 

A better way of doing this is to leave the 'common' configAll.h file alone and
put the changes in the BSP config.h file. Features you don't want you can #undef
and any ones (eg POSIX timers) not normally included by default #included
there. This works because config.h includes configAll.h itself so your changes
to the standard set of features will be seen by the other BSP files.

Also doing this allows you to have other BSP's with a more 'standard' set of 
features and have a seperate minimalist version for your deliverable system.

FYI our 68k based VxWorks kernel yields the following size information

text	data	bss	dec	hex	filename
246384 	6360   	32804  	285548 	45b6c  	vxWorks

This includes networking, debug etc but without floating point, shared memory
networking or other ethernet (apart from the one we are using!!), rpc, symbol
table.... here is the bit from our config.h.......


/* Put in undefs for unwanted facilities for this target. This avoids altering
 * ../all/configAll.h which would affect other targets
 */

#undef INCLUDE_DOSFS           	/* dosFs file system */
#undef INCLUDE_ENP              /* CMC Ethernet interface */
#undef INCLUDE_EX               /* Excelan Ethernet interface */
#undef INCLUDE_ENV_VARS         /* unix compatible environment variables */
#undef INCLUDE_FTP_SERVER	/* ftp server */
/* #undef INCLUDE_GCC_FP */          /* gcc floating point support libraries */
/* #undef INCLUDE_LOGGING   */       /* logTask logging facility */
/* #undef INCLUDE_NET_SHOW  */       /* network info and status facilities */ 
#undef INCLUDE_PROXY_CLIENT     /* proxy arp client (Slave Board) */
#undef INCLUDE_PIPES            /* pipe driver */
#undef INCLUDE_RAMDRV          	/* ram disk driver */
#undef INCLUDE_RAWFS           	/* rawFs file system */
#undef INCLUDE_SM_NET           /* backplane net interface */
#undef INCLUDE_TIMEX            /* timexLib for exec timing */
#undef INCLUDE_MC68881          /* MC68881/2 (68040) floating pt coprocessor */
#undef INCLUDE_HW_FP            /* potential hardware fp support */
#undef INCLUDE_RPC		/* rpc package */
#undef INCLUDE_RT11FS		/* rt11Fs file system */
#undef INCLUDE_TFTP_CLIENT	/* tftp client */
#undef INCLUDE_CACHE_SUPPORT
#undef INCLUDE_I_CACHE_MODE
#undef INCLUDE_D_CACHE_MODE
#undef INCLUDE_I_CACHE_ENABLE
#undef INCLUDE_D_CACHE_ENABLE
#undef INCLUDE_B_CACHE_ENABLE
#undef INCLUDE_SM_SEQ_ADDR
#undef INCLUDE_MMU_FULL
#undef INCLUDE_MMU_BASIC
#undef INCLUDE_NET_SYM_TBL

/* Put in 'show' routines for testing (Hack 2-05-97) */
#define INCLUDE_SHOW_ROUTINES

Hope this helps...

Regards

Phil Q

===============================================================================
Phil Quiney          _/_/_/_/        _/  _/_/_/_/  email : phil.quiney@gecm.com 
GEC Marconi         _/    _/        _/  _/    _/     tel : +44 1245 353221x3914
Communications Ltd _/_/_/_/  _/    _/  _/  _/_/      fax : +44 1245 275448
Chelmsford        _/        _/_/_/_/  _/_/_/_/
England CM1 1PL                              _/                             
===============================================================================


From daemon@csg.lbl.gov  Tue Dec 23 04:00:40 1997
From: daemon@csg.lbl.gov
Date: Tue Dec 23 04:00:45 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Tue Dec 23 04:00:37 PST 1997

        Subject: Looking for equivalence of "rsh"
        Subject: Re: Ada vs C++/C

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Looking for equivalence of "rsh"
Date: 17 Dec 1997 20:38:01 GMT
From: "Raymond K.S. Yeung" <ryeung@adicomw.com>
Organization: AdiCom Wireless
Message-ID: <01bd0b2c$03d81000$df60a9ce@host.hooked.net>

I've a workstation (Windows 95 or NT environment) connected to
a vxWorks target. What is the simplest way to leverage the wealth
of commands (e.g. reboot, rename, ls etc) already available on the 
target?  A very straight-forward way is to have SNMP transport a 
command across the connection,  have SNMP agent to interpret it 
and translate it into vxWorks system call.
But then I thought if there's equivalence of "rsh", we can eliminate
the work on SNMP agent side.  Would "rpc" be something worth
looking into?

Any ideas?

Thanks,
Raymond

---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: Ada vs C++/C
Date: Fri, 19 Dec 1997 09:05:45 -0500
From: "Robert L. Spooner" <RLS19@psu.edu>
Organization: Applied Research Laboratory
Message-ID: <349A7F39.9D6B1522@psu.edu>
References: <67c794$ao5@overload.lbl.gov>
Reply-To: rls19@psu.edu

We use Ada 83, soon will be using Ada 95.  We do this by choice, not because we are
required to by our sponsors.

Regards,
Bob

Richard W Mattox wrote:

> Hello Fellow VxWorkers,
>
> I am taking an informal poll of the embedded software community that uses
> VxWorks as its RTOS.  I want to know what language or languages you are
> programming in; C, C++, Ada 83, Ada 95, etc.  Also,  I would appreciate
> someone's response from Boeing since my program office is convinced that all of
> Boeing's software is written in Ada.  Also, does anyone have any life cycle cost
> analysis data comparing Ada 95 to C++.  I realize this would just be an estimate
> by analogy because there are no metrics data for Ada 95.  Thanks for your input.
>
> Rick Mattox
> 410.682.2315
> richard.w.mattox@lmco.com



- --
                               Robert L. Spooner
                         Registered Professional Engineer
                               Research Assistant
                         Intelligent Control Systems Group

            Applied Research Laboratory        Phone: (814) 863-4120
            The Pennsylvania State University  FAX:   (814) 863-7843
            P. O. Box 30
            State College, PA 16804-0030       RLS19@psu.edu



---------------------------

End of New-News digest
**********************


From mabrouk@nortel.ca  Tue Dec 23 05:50:55 1997
From: "Mabrouk Aboughanaima" <mabrouk@nortel.ca>
Date: Tue Dec 23 05:50:59 PST 1997
Subject: Compiling vxWorks with gdwarf option
Hi All,

I'm developing a C++ application using vxWorks 5.3.1 for a PowerPC860
platform. I need to comiple with -gdwarf options so I can use debug it
with SingleStep emulator but the GNU compiler that comes with vxWorks
does not suppoert this option for C++. Does anyone know or did have this
problem and how they fixed it. I heard that DIAB compiler supports -gwarf
option for C++ does anyone know how to comiple vxWorks with the DIAB comipler?


Any help will be greatly apprecaited. Please e_mail or call me.

Thanks a million.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  Mabrouk Aboughanaima            + Tel: (613) 763-6000         +
+  CDMA Radio Software             +      ESN:  393-6000         +
+  Nortel Wireless Networks        + FAX: (613) 763-2686         +
+  P.O. Box 3511, Station 'C'      + Internet: mabrouk@nortel.ca +
+  Ottawa K1Y 4H7 Canada           +                             +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++               
                                                           


From J.Hayden@Dialogic.com  Tue Dec 23 07:40:24 1997
From: "Hayden, John" <J.Hayden@Dialogic.com>
Date: Tue Dec 23 07:40:28 PST 1997
Subject: IP type of service
Hi,

I would like to change the precedence bits in the Type of Service field
of the IP header
of outbound datagrams for an individual socket. Does anyone know of and
API to control 
the generation of these bits on outbound IP datagrams ? Is there an
ioctl parameter that will 
allow me to set/clear these bits?

Thanks in advance,
John




From ktsubota@keck.hawaii.edu  Tue Dec 23 17:54:01 1997
From: ktsubota@keck.hawaii.edu (Kevin Tsubota)
Date: Tue Dec 23 17:54:08 PST 1997
Subject: trying to add 64M offboard memory to system pool
----------
X-Sun-Data-Type: text
X-Sun-Data-Description: text
X-Sun-Data-Name: text
X-Sun-Charset: us-ascii
X-Sun-Content-Lines: 33


Configuration:

frc40 16M cpu
micro memory MM6260AD 64M memory card
vxWorks 5.1.1 and vxWorks 5.3.1

We have a frc40 16M CPU card running vxWorks and needed more memory so
we purchased a 64M memory card from micro memory.  I've been able
to read and write practically all 64M on the card, both as longs and
doubles.  However when I attempt to do a vxWorks ld command from the
target shell I always get an error.  I've had this error in vxWorks
5.1.1 and I've just upgraded to vxWorks 5.3.1 with the same results.

I've tried it in the windsh and it loads but I get other errors.  
I would prefer to run it from the target shell as the startup script.

I've been fighting this for some time now with help from vxWorks but
I'm still at square one.

Has anyone else done anything similiar? 

I've attached the output from vxWorks 5.3.1 target shell as well as my configAll.h and sysLib.c files.
 
I'm using bfill to set the parity bit and memAddToPool and want to freely use 
the offboard memory without specifically addressing it.

Thank You.

Kevin Tsubota
W.M. Keck Observatory
(808)885-778
ktsubota@keck.hawaii.edu
----------
X-Sun-Data-Type: h-file
X-Sun-Data-Description: h-file
X-Sun-Data-Name: configAll.h
X-Sun-Charset: us-ascii
X-Sun-Content-Lines: 885

/* configAll.h - default configuration header */

/* Copyright 1984-1996 Wind River Systems, Inc. */

/*
modification history
--------------------
06u.04feb96,ms   added WDB support for NetROM 500 series.
06t,03dec96,dbt  removed #ifdef INCLUDE_ANSI_ALL and #ifdef INCLUDE_MIB2_ALL 
		 (moved in usrDepend.c).
06s,15nov96,jag  changed string associated with MIB2_SYS_DESCR (SPR# 7476)
06r,04oct96,elp  added INCLUDE_SYM_TBL_SYNC (SPR# 6775).
06q,09aug96,dbt  Moved the ifdef INCLUDE_POSIX_ALL to usrDepend.c (SPR #5524).
06p,29jul96,ms   reworked the fix for SPR #5603.
06o,24jul96,ism  hand-merged SIMSOLARIS.
06n,19jul96,dbt  Moved the ifdef INCLUDE_CONFIGURATION_5_2 
		 to usrDepend.c (SPR #5603).
06m,11jul96,jmb  Eliminated alternative WDB macros names.  SPR #5707
06l,21jun96,jmb  long modhist -- deleted entries prior to 1994.  SPR #6528
06k,20jun96,tpr  added PowerPC 860 support.
06j,18jun96,dbt  removed line INCLUDE_ADA (spr 6645)
06i,10jun96,tam  changed STACK_RESIDENT to RAM_DST_ADRS for PPC
06j,16oct96.rjc  deleted snmp memory partition defines
06j,12aug96.rjc  changes for snmpdMemoryAlloc changes
06i,22apr96,kkk	 fixed typo on CPU_FAMILY for PPC (SPR# 6385)
06h,04apr96,rjc  Modifications for snmp v1 agent for 5.3
06g,07mar96,dat  WDB comm config can be specified on make command line
06f,05mar96,tpr  Added RESERVED for PowerPC.
06e,04dec95,vin  increased EVT_STACK_SIZE to 7000.
06d,06sep95,jag  deleted unnecessary STREAMS defines.
06c,01aug95,dzb  renamed STREAMS macros.  Added STREAMS_PROTO_INIT_RTN macro.
06b,28jul95,jag  Changed INCLUDE_STREAMS_LOG to INCLUDE_STREAMS_STRACE and
		 INCLUDE_STREAMS_STERR. Changed STREAMS_LOG_CONFIG_DIR to
		 STREAMS_STRERR_OUTPUT_DIR and STREAMS_STRACE_OUTPUT_DIR
06a,26jul95,dzb  adjusted default socket macro for STREAMS.
05z,25jul95,dzb  added INCLUDE_BSD_SOCKET and DEFAULT_XXX_SOCKET.
05y,18jul95,dzb  added PPP_CONNECT_DELAY.
05x,11jul95,dzb  modified INCLUDE_PPP inclusion.
05w,26jun95,dzb  removed PPP_OPT_USEHOSTNAME option.
05v,22jun95,sgv  Added STREAMS support
05u,21jun95,dzb  Added INCLUDE_PPP_CRYPT for unbundled crypt() support.
05t,20jun95,dzb  added PPP support.
06e,23sep95,tpr  changed VM_PAGE_SIZE for PPC family.
06d,19jun95,caf  additional PPC support.
06e,11oct95,ms   made 5.2 configuration easier to recreate (SPR #5134).
06d,10oct95,dat	 backward compatible BSP_VERSION and BSP_REV
06c,28sep95,dat	 new #define INCLUDE_WDB_ANNOUNCE
06b,21sep95,ms	 switched some WDB macros between here and usrWdb.c
06a,27jun95,ms	 renamed WDB_COMM_XXX macros
05z,21jun95,ms	 added INCLUDE_WDB_TTY_TEST and INCLUDE_WDB_EXIT_NOTIFY
05y,21jun95,tpr  added #define INCLUDE_WDB_MEM.
05x,13jun95,srh  Updated C++ support triggers.
05w,07jun95,ms	 WDB_STACK_SIZE is now CPU dependant.
05v,07jun95,p_m  added INCLUDE_FORMATTED_IO. suppressed spy from default
                 configuration.
05u,01jun95,ms	 all WDB macros start with WDB_ (usrWdb.c modhist has details).
05t,22may95,ms   added WDB agent support.
          + p_m  suppressed shell, symbol table and debug support from default
		 configuration.
05s,29mar95,kdl  added INCLUDE_GCC_FP.
05r,28mar95,kkk  added scalability MACROS, changed edata and end to arrays 
		 (SPR #3917), added misc constants SM_PKTS_SIZE and 
		 SM_CPUS_MAX (SPR #4130), added misc constant CONSOLE_BAUD_RATE
05q,24mar95,tpr  added #define USER_B_CACHE_ENABLE (SPR #4168). 
05p,14mar95,caf  restored mips resident rom support (SPR #3856).
05o,18jan95,tmk  Added MC68060 case for HW_FP
06c,25may95,yao  changed to use _end for FREE_MEM_ADRS for PowerPC.
06b,12jan95,caf  added PPC floating point support.
06a,09jan95,yao  added PPC support.
05n,10dec94,kdl  Moved INCLUDE_POSIX_ALL to unincluded (SPR 3822).
05m,10dec94,caf  undid mod 05a, use _sdata for resident roms (SPR #3856).
05l,09dec94,jag  Added INCLUDE_MIB2_AT.
05k,17nov94,kdl  Added INCLUDE_NFS_SERVER (excluded); removed TRON references.
05j,13nov94,dzb  Moved INCLUDE_PING to excluded.
05i,11nov94,dzb  Added ZBUF_SOCK, TCP_DEBUG, and PING defines.
05h,11nov94,jag  cleanup of SNMP and MIB defines.
05g,04nov94,kdl	 initial merge cleanup.
05b,16jun94,caf  defined INCLUDE_ELF for MIPS, updated copyright notice.
04x,20jul94,ms   changed INCLUDE_HPPA_OUT to INCLUDE_SOM_COFF
05d,11apr94,jag  Removed conditions for definition of  NFS_GROUP and NFS_USER
		 ID for SNMP demo support.
05c,18feb94,elh  (SNMP VERSION) moved INCLUDE_POSIX_ALL to false section.
		 Added support for the mib2 library.
05f,25may94,kdl	 (POSIX VERSION) removed erroneous NFS def's.
05e,23mar94,smb	 (POSIX VERSION) removed PASSIVE_MODE
05d,15mar94,smb	 renamed tEvtTask parameters.
05c,15feb94,smb	 added define of WV_MODE
05b,12jan94,kdl	 (POSIX VERSION) turned off instrumentation, added 
		 INCLUDE_POSIX_ALL; added INCLUDE_POSIX_SIGNALS; changed
		 INCLUDE_POSIX_MEM_MAN to INCLUDE_POSIX_MEM; added
		 NUM_SIGNAL_QUEUES.
*/

/*
DESCRIPTION
This header contains the parameters that define the default
configuration for VxWorks.
*/

#ifndef	INCconfigAllh
#define	INCconfigAllh

#include "smLib.h"
#include "vme.h"
#include "iv.h"

/******************************************************************************/
/*                                                                            */
/*                      INCLUDED SOFTWARE FACILITIES                          */
/*                                                                            */
/******************************************************************************/




#define INCLUDE_BOOTP		/* bootp */
#define INCLUDE_BSD_SOCKET	/* include the BSD socket library */
#define INCLUDE_CACHE_SUPPORT	/* include cache support package */
#define INCLUDE_CONSTANT_RDY_Q	/* constant insert time ready queue */
#define INCLUDE_ENV_VARS	/* unix compatable environment variables */
#define INCLUDE_EXC_HANDLING	/* include basic exception handling */
#define INCLUDE_EXC_TASK	/* miscelaneous support task */
#define INCLUDE_FLOATING_POINT	/* floating point I/O */
#define INCLUDE_FORMATTED_IO	/* formatted I/O */
#define INCLUDE_FTP_SERVER	/* ftp server */
#define INCLUDE_GCC_FP		/* gcc floating point support libraries */
#define INCLUDE_IO_SYSTEM	/* include I/O system */
#define INCLUDE_LOGGING		/* logTask logging facility */
#define INCLUDE_MEM_MGR_FULL	/* full featured memory manager */
#define INCLUDE_MSG_Q		/* include message queues */
#define INCLUDE_NETWORK         /* network subsystem code */
#define INCLUDE_NET_INIT        /* network subsystem initialization */
#define INCLUDE_NET_SHOW        /* network info and status facilities */
#define INCLUDE_PROXY_CLIENT	/* proxy arp client (Slave Board) */
#define INCLUDE_PIPES		/* pipe driver */
#define INCLUDE_SELECT		/* select() facility */
#define INCLUDE_SEM_BINARY	/* include binary semaphores */
#define INCLUDE_SEM_MUTEX	/* include mutex semaphores */
#define INCLUDE_SEM_COUNTING	/* include counting semaphores */
#define INCLUDE_SIGNALS		/* software signal library */
#define INCLUDE_STDIO		/* standard I/O */
#define INCLUDE_TASK_HOOKS	/* include kernel callouts */
#define INCLUDE_TASK_VARS	/* task variable package */
#define INCLUDE_TFTP_CLIENT	/* tftp client */
#define INCLUDE_TIMEX		/* timexLib for exec timing */
#define INCLUDE_TTY_DEV		/* attach serial drivers */
#define INCLUDE_WATCHDOGS	/* include watchdogs */
#define INCLUDE_WDB		/* WDB debug agent */
#define INCLUDE_ANSI_ALL        /* includes complete ANSI C library functions */
#define INCLUDE_ANSI_ASSERT	/* ANSI-C assert library functionality */
#define INCLUDE_ANSI_CTYPE	/* ANSI-C ctype library functionality */
#define INCLUDE_ANSI_LOCALE	/* ANSI-C locale library functionality */
#define INCLUDE_ANSI_MATH	/* ANSI-C math library functionality */
#define INCLUDE_ANSI_STDIO	/* ANSI-C stdio library functionality */
#define INCLUDE_ANSI_STDLIB	/* ANSI-C stdlib library functionality */
#define INCLUDE_ANSI_STRING	/* ANSI-C string library functionality */
#define INCLUDE_ANSI_TIME	/* ANSI-C time library functionality */

/******************************************************************************/
/*                                                                            */
/*                           KECK CUSTOMIZATION                               */
/*                                                                            */
/******************************************************************************/

/* EPICS requires both the symbol table, loader, and shell within VxWorks */
#define INCLUDE_CONFIGURATION_5_2 /* pre-tornado tools */

/* allow NFS facilities */
#define INCLUDE_NFS             /* nfs package */
#define INCLUDE_NFS_SERVER      /* nfs server */
#define INCLUDE_NFS_MOUNT_ALL	/* automatically mount all NFS file systems */
#define INCLUDE_RDB             /* remote debugging package */
#define INCLUDE_RPC		/* rpc package */

/* allow target shell interaction (ie. console port) */
#define INCLUDE_SHELL           /* interactive c-expression interpreter */
#define INCLUDE_SYM_TBL         /* symbol table package */
#define INCLUDE_SYM_TBL_SYNC	/* synchronize host and target symbol tables */
#define INCLUDE_NET_SYM_TBL     /* load symbol table from network */
#define INCLUDE_STAT_SYM_TBL    /* create user-readable error status */
#define INCLUDE_LOADER          /* object module loading */
#define INCLUDE_UNLOADER        /* object module unloading */

/* allow execution of startup script on boot */
#define INCLUDE_STARTUP_SCRIPT  /* execute start-up script */

/* allow remote access to target shell */
#define INCLUDE_RLOGIN          /* remote login */
#define INCLUDE_TELNET          /* telnet-style remote login */

/* misc routines */
#define INCLUDE_SECURITY	/* shell security for network access */
#define INCLUDE_SHOW_ROUTINES   /* show routines for system facilities*/
#define INCLUDE_SPY             /* spyLib for task monitoring */

/* CPU-SPECIFIC INCLUDED SOFTWARE FACILITIES */

/* include support for possibly existing floating point coprocessor */

#if	(CPU==MC68020 || CPU==MC68040 || CPU==MC68060 || CPU==CPU32)
#define INCLUDE_MC68881         /* MC68881/2 (68040) floating pt coprocessor */
#define INCLUDE_HW_FP		/* potential hardware fp support */
#endif	/* CPU==MC68020 || CPU==MC68040 || CPU==MC68060 || CPU==CPU32 */

#if	(CPU_FAMILY == SPARC) && defined(INCLUDE_FLOATING_POINT)
#define INCLUDE_SPARC_FPU       /* SPARC Floating-Point Unit */
#define INCLUDE_HW_FP		/* potential hardware fp support */
#endif	/* CPU_FAMILY == SPARC */

#if	(CPU_FAMILY==MIPS)
#define INCLUDE_R3010           /* R3010 float point co-processor */
#define INCLUDE_HW_FP		/* potential hardware fp support */
#endif	/* CPU_FAMILY==MIPS */

#if	((CPU_FAMILY==PPC) && (CPU!=PPC403) && (CPU!=PPC860))
#define INCLUDE_PPC_FPU         /* PowerPC floating point unit */
#define INCLUDE_HW_FP           /* potential hardware fp support */
#endif	/* (CPU_FAMILY==PPC) && (CPU!=PPC403) */

#if	(CPU==I960KB)
#define INCLUDE_HW_FP		/* potential hardware fp support */
#endif  /* I960KB */

#if     (CPU_FAMILY==I80X86)
#define INCLUDE_I80387          /* I80387 float point co-processor */
#define INCLUDE_HW_FP           /* potential hardware fp support */
#endif  /* CPU_FAMILY==I80X86 */


/* define appropriate object module format for a given architecture */

#if	((CPU_FAMILY==MIPS) || (CPU_FAMILY==PPC) || (CPU_FAMILY==SIMSPARCSOLARIS))
#define INCLUDE_ELF             /* ELF object modules */
#else
#if	((CPU_FAMILY==I960) || (CPU_FAMILY==AM29XXX))
#define INCLUDE_COFF            /* COFF object modules */
#else
#if	(CPU_FAMILY==SIMHPPA)
#define	INCLUDE_SOM_COFF
#else	/* default */
#define INCLUDE_AOUT            /* a.out object modules */
#endif
#endif
#endif

/* INCLUDED HARDWARE SUPPORT */

#if CPU_FAMILY==MIPS
#define INCLUDE_EGL             /* include Interphase Ethernet interface */
#else
#define INCLUDE_EX		/* include Excelan Ethernet interface */
#endif	/* CPU_FAMILY==MIPS */

#define INCLUDE_ENP		/* include CMC Ethernet interface*/
#define INCLUDE_SM_NET		/* include backplane net interface */
#define INCLUDE_SM_SEQ_ADDR     /* shared memory network auto address setup */

/******************************************************************************/
/*                                                                            */
/*                          EXCLUDED FACILITIES                               */
/*                                                                            */
/******************************************************************************/

#if FALSE

#define INCLUDE_CPLUS		/* include C++ support */
#define INCLUDE_CPLUS_MIN	/* include minimal C++ support */
#define INCLUDE_CPLUS_IOSTREAMS	/* include iostreams classes */
#define INCLUDE_CPLUS_VXW	/* include VxWorks wrapper classes */
#define INCLUDE_CPLUS_TOOLS	/* include Tools class library */
#define INCLUDE_CPLUS_HEAP	/* include Heap class library */
#define INCLUDE_CPLUS_BOOCH	/* include Booch Components library */
#define INCLUDE_DEBUG           /* pre-tornado debugging */
#define INCLUDE_DEMO		/* include simple demo instead of shell */
#define INCLUDE_DOSFS           /* dosFs file system */
#define INCLUDE_INSTRUMENTATION /* windView instrumentation */
#define INCLUDE_MIB2_ALL        /* All of MIB 2 */
#define INCLUDE_MIB2_SYSTEM	/* the system group */
#define INCLUDE_MIB2_TCP        /* the TCP group */
#define INCLUDE_MIB2_ICMP	/* the ICMP group */
#define INCLUDE_MIB2_UDP        /* the UDP group */
#define INCLUDE_MIB2_IF		/* the interfaces group */
#define INCLUDE_MIB2_AT         /* the AT group */
#define INCLUDE_MIB2_IP		/* the IP group */

/* INCLUDE_MMU_BASIC is defined by many bsp's in config.h. If INCLUDE_MMU_FULL
 * is defined in configAll.h and INCLUDE_MMU_BASIC is defined in config.h,
 * then INCLUDE_MMU_FULL will take precedence. 
 */

#define INCLUDE_MMU_BASIC 	/* bundled mmu support */
#define INCLUDE_MMU_FULL	/* unbundled mmu support */


#define INCLUDE_PING		/* ping() utility */
#define INCLUDE_POSIX_AIO       /* POSIX async I/O support */
#define INCLUDE_POSIX_AIO_SYSDRV/* POSIX async I/O system driver */
#define INCLUDE_POSIX_ALL       /* include all available POSIX functions */
#define INCLUDE_POSIX_FTRUNC	/* POSIX ftruncate routine */
#define INCLUDE_POSIX_MEM	/* POSIX memory locking */
#define INCLUDE_POSIX_MQ        /* POSIX message queue support */
#define INCLUDE_POSIX_SCHED	/* POSIX scheduling */
#define INCLUDE_POSIX_SEM 	/* POSIX semaphores */
#define INCLUDE_POSIX_SIGNALS 	/* POSIX queued signals */
#define INCLUDE_POSIX_TIMERS 	/* POSIX timers */
#define INCLUDE_PPP		/* include Point-to-Point Procotol */
#define INCLUDE_PROTECT_TEXT	/* text segment write protection (unbundled) */
#define INCLUDE_PROTECT_VEC_TABLE /* vector table write protection (unbundled)*/
#define INCLUDE_PROXY_DEFAULT_ADDR /* Use ethernet addr to generate bp addrs */
#define INCLUDE_PROXY_SERVER	/* proxy arp server (Master Board) */
#define INCLUDE_RAMDRV          /* ram disk driver */
#define INCLUDE_RAWFS           /* rawFs file system */
#define INCLUDE_RT11FS		/* rt11Fs file system */
#define INCLUDE_SLIP		/* include serial line interface */
#define INCLUDE_SM_OBJ          /* shared memory objects (unbundled) */
#define INCLUDE_SNMPD 	        /* SNMP Agent */
#define INCLUDE_STANDALONE_SYM_TBL /* compiled-in symbol table */
#define INCLUDE_SW_FP		/* software floating point emulation */
#define	INCLUDE_TCP_DEBUG	/* TCP debug facility */
#define INCLUDE_TFTP_SERVER	/* tftp server */
#define INCLUDE_WINDVIEW	/* WindView command server */
#define	INCLUDE_ZBUF_SOCK	/* zbuf socket interface */

#define INCLUDE_LN		/* include AMD LANCE interface */
#define INCLUDE_LNSGI		/* include AMD LANCE interface for SGI VIP10 */
#define INCLUDE_MED		/* include Matrix network interface*/
#define INCLUDE_NIC		/* include National NIC interface */

#define INCLUDE_ANSI_5_0	/* include only version 5.0 ANSI support */
#define INCLUDE_BP_5_0		/* version 5.0 backplane driver */
#define INCLUDE_DELETE_5_0	/* define delete() function as in VxWorks 5.0 */

#define INCLUDE_STREAMS_ALL	   /* Complete Streams subsystem */
#define INCLUDE_STREAMS		   /* CORE Streams (stream head) */
#define INCLUDE_STREAMS_SOCKET	   /* Streams Socket layer and socket library */
#define INCLUDE_STREAMS_TLI	   /* Streams TLI layer and TLI library */
#define INCLUDE_STREAMS_AUTOPUSH   /* SVR4 autopush mechanism */
#define INCLUDE_STREAMS_DLPI	   /* Streams DLPI to mbuf compatible driver */
#define INCLUDE_STREAMS_DEBUG      /* Streams Debugging facility */
#define INCLUDE_STREAMS_STRACE	   /* Streams trace utility */
#define INCLUDE_STREAMS_STRERR	   /* Streams error log utility */

#define DEFAULT_STREAMS_SOCKET	   /* default to Streams socket for AF_INET */

#endif	/* FALSE */

/******************************************************************************/
/*                                                                            */
/*                  KERNEL SOFTWARE CONFIGURATION                             */
/*                                                                            */
/******************************************************************************/

#define USER_I_CACHE_MODE	CACHE_WRITETHROUGH  /* default mode */
#define USER_D_CACHE_MODE	CACHE_WRITETHROUGH  /* default mode */
#define USER_I_CACHE_ENABLE		    	    /* undef to leave disabled*/
#define USER_D_CACHE_ENABLE			    /* undef to leave disabled*/
#define USER_B_CACHE_ENABLE			    /* undef to leave disabled*/
#define USER_I_MMU_ENABLE			    /* undef to leave disabled*/
#define USER_D_MMU_ENABLE			    /* undef to leave disabled*/

#define SYM_TBL_HASH_SIZE_LOG2	8	/* 256 entry hash table symbol table */
#define STAT_TBL_HASH_SIZE_LOG2	6	/* 64 entry hash table for status */
#define MQ_HASH_SIZE		0	/* POSIX message queue hash table size 
					 * 0 = default */
#define NUM_SIGNAL_QUEUES	16	/* POSIX queued signal count */

#define FREE_RAM_ADRS		(end)	/* start right after bss of VxWorks */


/* I/O system parameters */

#define NUM_DRIVERS		20	/* max 20 drivers in drvTable */
#define NUM_FILES		50	/* max 50 files open simultaneously */
#define NUM_DOSFS_FILES		20	/* max 20 dosFs files open */
#define NUM_RAWFS_FILES		5	/* max 5  rawFs files open */
#define NUM_RT11FS_FILES	5	/* max 5  rt11Fs files open */
#define MAX_LOG_MSGS		50      /* max 50 log msgs */

#define	NUM_TTY			2	/* number of tty channels */
#define	CONSOLE_TTY		0	/* console channel */

#define CONSOLE_BAUD_RATE	9600	/* console baud rate */

#ifdef	INCLUDE_SLIP
#define	SLIP_TTY		1	/* serial line IP channel */
#endif	/* INCLUDE_SLIP */

#define MAX_LIO_CALLS		0	/* max outstanding lio calls 0=default */
#define MAX_AIO_SYS_TASKS	0	/* max aio system tasks, 0 = default */
#define AIO_TASK_PRIORITY	0	/* aio system tasks prior, 0 = default */
#define AIO_TASK_STACK_SIZE	0	/* aio tasks stack size, 0 = default */


/* kernel and system task parameters by architecture */

#if	CPU_FAMILY==MC680X0
#define INT_LOCK_LEVEL  	0x7	/* 68k interrupt disable mask */
#define ROOT_STACK_SIZE		10000	/* size of root's stack, in bytes */
#define SHELL_STACK_SIZE	10000	/* size of shell's stack, in bytes */
#define WDB_STACK_SIZE	 	0x1000	/* size of WDB agents stack, in bytes */
#define ISR_STACK_SIZE		1000	/* size of ISR stack, in bytes */
#define TRAP_DEBUG		2	/* trap 2 - breakpoint trap */
#define VEC_BASE_ADRS           ((char *) LOCAL_MEM_LOCAL_ADRS)
#endif	/* CPU_FAMILY==MC680X0 */

#if	CPU_FAMILY==SPARC
#define INT_LOCK_LEVEL  	15	/* SPARC interrupt disable level */
#define ROOT_STACK_SIZE		10000	/* size of root's stack, in bytes */
#define SHELL_STACK_SIZE	50000	/* size of shell's stack, in bytes */
#define WDB_STACK_SIZE	 	0x2000	/* size of WDB agents stack, in bytes */
#define ISR_STACK_SIZE		10000	/* size of ISR stack, in bytes */
#define VEC_BASE                (LOCAL_MEM_LOCAL_ADRS + 0x1000)
#define VEC_BASE_ADRS           ((char *) VEC_BASE)
#endif	/* CPU_FAMILY==SPARC */

#if     CPU_FAMILY==SIMSPARCSUNOS  || CPU_FAMILY==SIMHPPA || CPU_FAMILY==SIMSPARCSOLARIS
#define INT_LOCK_LEVEL          0x1     /* interrupt disable mask */
#define ROOT_STACK_SIZE         20000   /* size of root's stack, in bytes */
#define SHELL_STACK_SIZE        50000   /* size of shell's stack, in bytes */
#define WDB_STACK_SIZE	 	0x2000	/* size of WDB agents stack, in bytes */
#define ISR_STACK_SIZE          50000   /* size of ISR stack, in bytes */
#define VEC_BASE_ADRS           0       /* dummy */
#endif  /* CPU_FAMILY==SIMSPARCSUNOS  || CPU_FAMILY==SIMHPPA || CPU_FAMILY==SIMSPARCSOLARIS */

#if	CPU_FAMILY==I960
#define INT_LOCK_LEVEL  	0x1f	/* i960 interrupt disable mask */
#define ROOT_STACK_SIZE		20000	/* size of root's stack, in bytes */
#define SHELL_STACK_SIZE	40000	/* size of shell's stack, in bytes */
#define WDB_STACK_SIZE	 	0x2000	/* size of WDB agents stack, in bytes */
#define ISR_STACK_SIZE		1000	/* size of ISR stack, in bytes */
#define TRAP_DEBUG		0	/* n/a for the 80960 */
#define VEC_BASE_ADRS           NONE	/* base register not reconfigurable */
#endif	/* CPU_FAMILY==I960 */

#if	CPU_FAMILY==MIPS
#define INT_LOCK_LEVEL          0x1     /* R3K interrupt disable mask */
#define ROOT_STACK_SIZE         (20000) /* size of root's stack, in bytes */
#define SHELL_STACK_SIZE        (20000) /* size of shell's stack, in bytes */
#define WDB_STACK_SIZE	 	(0x2000)/* size of WDB agents stack, in bytes */
#define ISR_STACK_SIZE          (5000)  /* size of ISR stack, in bytes */
#define VEC_BASE_ADRS           ((char *) 0x0)  /* meaningless in R3k land */
#define VME_VECTORED            FALSE   /* use vectored VME interrupts */
#define TRAP_DEBUG              0       /* trap 0 - breakpoint trap */
#endif	/* CPU_FAMILY==MIPS */

#if	CPU_FAMILY==PPC
#define INT_LOCK_LEVEL          0x0     /* not used */
#define ROOT_STACK_SIZE         (20000) /* size of root's stack, in bytes */
#define SHELL_STACK_SIZE        (20000) /* size of shell's stack, in bytes */
#define WDB_STACK_SIZE	 	0x2000	/* size of WDB agents stack, in bytes */
#define ISR_STACK_SIZE          (5000)  /* size of ISR stack, in bytes */
#define VEC_BASE_ADRS           ((char *) 0x0)
#endif	/* CPU_FAMILY==PPC */

#if     CPU_FAMILY==I80X86
#define INT_LOCK_LEVEL          0x0     /* 80x86 interrupt disable mask */
#define ROOT_STACK_SIZE         10000   /* size of root's stack, in bytes */
#define SHELL_STACK_SIZE        10000   /* size of shell's stack, in bytes */
#define WDB_STACK_SIZE	 	0x1000	/* size of WDB agents stack, in bytes */
#define ISR_STACK_SIZE          1000    /* size of ISR stack, in bytes */
#define TRAP_DEBUG              0       /* not used */
#define VEC_BASE_ADRS           ((char *) LOCAL_MEM_LOCAL_ADRS)
#endif  /* CPU_FAMILY==I80X86 */

#if	CPU_FAMILY==AM29XXX
#define INT_LOCK_LEVEL  	0x0001	/* 29k all interrupts disable mask */
#define ROOT_STACK_SIZE		10000	/* size of root's stack, in bytes */
#define SHELL_STACK_SIZE	40000	/* size of shell's stack, in bytes */
#define WDB_STACK_SIZE	 	0x2000	/* size of WDB agents stack, in bytes */
#define ISR_STACK_SIZE		10000	/* size of ISR stack, in bytes */
#define TRAP_DEBUG		15	/* trap 2 - breakpoint trap */
#define VEC_BASE_ADRS           ((char *) LOCAL_MEM_LOCAL_ADRS)
#endif	/* CPU_FAMILY==AM29XXX */

/* WDB debug agent configuration */

#ifdef  INCLUDE_WDB

/* optional agent facilities */

#define INCLUDE_WDB_BANNER		/* print banner after agent starts */
#define INCLUDE_WDB_VIO			/* virtual I/O support */
#define	INCLUDE_WDB_TTY_TEST		/* test serial line communcation */

/* core agent facilities - do not remove */

#define INCLUDE_WDB_CTXT		/* context control */
#define INCLUDE_WDB_FUNC_CALL		/* spawn function as separate task */
#define INCLUDE_WDB_DIRECT_CALL		/* call function in agents context */
#define INCLUDE_WDB_EVENTS		/* host async event notification */
#define INCLUDE_WDB_GOPHER		/* gopher info gathering */
#define INCLUDE_WDB_BP			/* breakpoint support */
#define INCLUDE_WDB_EXC_NOTIFY		/* notify host of exceptions */
#define INCLUDE_WDB_EXIT_NOTIFY		/* notify the host of task exit */
#define INCLUDE_WDB_MEM			/* optional memory services */
#define INCLUDE_WDB_REG			/* get/set hardware registers */

/* agent mode */

#define WDB_MODE        WDB_MODE_DUAL	/* WDB_MODE_[DUAL|TASK|EXTERN] */

/* agent communication paths */

#define WDB_COMM_NETWORK 	0	/* vxWorks network	- task mode */
#define WDB_COMM_SERIAL		1	/* raw serial		- bimodal   */
#define WDB_COMM_TYCODRV_5_2	2	/* older serial driver	- task mode */
#define WDB_COMM_ULIP		3	/* vxSim packet device	- bimodal   */
#define WDB_COMM_NETROM		4	/* netrom packet device	- bimodal   */
#define WDB_COMM_CUSTOM		5	/* custom packet device	- bimodal   */

/* communication path configuration */

#ifndef WDB_COMM_TYPE
#define WDB_COMM_TYPE WDB_COMM_NETWORK	/* default path is the network */
#endif

#ifndef WDB_TTY_CHANNEL
#define WDB_TTY_CHANNEL		1	/* default Sio SERIAL channel */
#endif

#ifndef WDB_TTY_DEV_NAME
#define WDB_TTY_DEV_NAME    "/tyCo/1"	/* default TYCODRV_5_2 device name */
#endif

#ifndef WDB_TTY_BAUD
#define WDB_TTY_BAUD		9600	/* default baud rate */
#endif

#ifndef WDB_ULIP_DEV
#define WDB_ULIP_DEV    "/dev/ulip14"	/* default ULIP packet device */
#endif

#define	WDB_NETROM_TYPE		400	/* default is old 400 series */
#define	WDB_NETROM_WIDTH	1	/* width of a ROM word. This macro
					 * is not used for the 500 series. */
#define WDB_NETROM_INDEX	0	/* index into word of pod zero */
#define	WDB_NETROM_NUM_ACCESS	1	/* of pod zero per byte read */
#define	WDB_NETROM_ROMSIZE	ROM_SIZE /* size of a single ROM. If your
					 * board has N ROMs, this definition
					 * must be divided by N to be right */
#define WDB_NETROM_POLL_DELAY	2	/* # clock ticks to poll for input */

/* miscelaneous agent constants */

#define WDB_MTU         	1500	/* max RPC message size */
#define WDB_POOL_SIZE 		((sysMemTop() - FREE_RAM_ADRS)/16) /* memory pool for host tools */
#define WDB_SPAWN_STACK_SIZE	0x5000	/* default stack size of spawned task */

#endif  /* INCLUDE_WDB */

/* WindView event task and buffer parameters */

#define EVT_STACK_SIZE		7000
#define WV_EVT_STACK		EVT_STACK_SIZE
#define EVT_PRIORITY		0
#define WV_EVT_PRIORITY		EVT_PRIORITY
#define EVTBUFFER_SIZE		20000
#define EVTBUFFER_ADDRESS	(char *)NULL

/* WindView command server task parameters */

#define WV_SERVER_STACK		10000
#define WV_SERVER_PRIORITY	100

/* WindView event task */


/* WindView event collection mode 
 *
 * The WindView collection mode can be one of the following,
 *	CONTINUOUS_MODE		- continuous collection and display of events 
 *	POST_MORTEM_MODE	- collection of events only
 */

#define WV_MODE			CONTINUOUS_MODE

/******************************************************************************/
/*                                                                            */
/*                   "GENERIC" BOARD CONFIGURATION                            */
/*                                                                            */
/******************************************************************************/

/* device controller I/O addresses when included */

#define IO_ADRS_EI      ((char *) 0x000fff00)   /* 32A,32D i82596CA Ethernet */
#define IO_ADRS_EX	((char *) 0x00ff0000)	/* 24A,32D Excelan Ethernet */
#define IO_ADRS_ENP	((char *) 0x00de0000)	/* 24A,32D CMC Ethernet */
#define IO_ADRS_EGL	((char *) 0x00004000)	/* 16A,16D Interphase Enet */

#define IO_AM_EX	VME_AM_STD_SUP_DATA	/* Excelan address modifier */
#define IO_AM_EX_MASTER	VME_AM_STD_SUP_DATA	/* Excellan AM for DMA access */
#define IO_AM_ENP	VME_AM_STD_SUP_DATA	/* CMC address modifier */

/* device controller interrupt vectors when included */

#define INT_VEC_ENP		192	/* CMC Ethernet controller*/
#define INT_VEC_EX		193	/* Excelan Ethernet controller*/
#define INT_VEC_EGL		200	/* Interphase Ethernet controller*/

/* device controller interrupt levels when included */

#define INT_LVL_EGL		5	/* Interphase Ethernet controller */
#define INT_LVL_EX		2	/* Excelan Ethernet controller */
#define INT_LVL_ENP		3	/* CMC Ethernet controller */


/******************************************************************************/
/*                                                                            */
/*                   "MISCELLANEOUS" CONSTANTS                                */
/*                                                                            */
/******************************************************************************/

/* shared memory objects parameters (unbundled) */

#define SM_OBJ_MAX_TASK		40	/* max # of tasks using smObj */
#define SM_OBJ_MAX_SEM		60	/* max # of shared semaphores */
#define SM_OBJ_MAX_MSG_Q	10	/* max # of shared message queues */
#define SM_OBJ_MAX_MEM_PART	4	/* max # of shared memory partitions */
#define SM_OBJ_MAX_NAME		100	/* max # of shared objects names */
#define SM_OBJ_MAX_TRIES	100	/* max # of tries to obtain lock */

/* shared memory network parameters  - defaults to values DEFAULT_PKTS_SIZE
 * and DEFAULT_CPUS_MAX in smPktLib.h respectively
 */

#define SM_PKTS_SIZE            0       /* shared memory packet size */
#define SM_CPUS_MAX             0       /* max # of cpus for shared network */

/* low memory layout */

#if     (CPU_FAMILY == I80X86)
#define GDT_BASE_OFFSET         0x800
#define SM_ANCHOR_OFFSET        0x1100
#define BOOT_LINE_OFFSET        0x1200
#define EXC_MSG_OFFSET          0x1300
#elif   (CPU_FAMILY == PPC)
#define SM_ANCHOR_OFFSET        0x4100
#define BOOT_LINE_OFFSET        0x4200
#define EXC_MSG_OFFSET          0x4300
#else
#define SM_ANCHOR_OFFSET        0x600
#define BOOT_LINE_OFFSET        0x700
#define EXC_MSG_OFFSET          0x800
#endif  /* (CPU_FAMILY == I80X86) */

/* The backplane driver onboard anchor at the following address */

#define SM_ANCHOR_ADRS	((char *) (LOCAL_MEM_LOCAL_ADRS+SM_ANCHOR_OFFSET))


/* The bootroms put the boot line at the following address */

#define BOOT_LINE_ADRS	((char *) (LOCAL_MEM_LOCAL_ADRS+BOOT_LINE_OFFSET))
#define	BOOT_LINE_SIZE	255	/* use 255 bytes for bootline */

/* The boot line is stored in non-volatile RAM at the following offset */

#define	NV_BOOT_OFFSET	0	/* store the boot line at start of NVRAM */


/* Messages from exceptions during exceptions go at the following address */

#define EXC_MSG_ADRS	((char *) (LOCAL_MEM_LOCAL_ADRS+EXC_MSG_OFFSET))


/* Backplane H/W support */

#define	SM_TAS_TYPE	SM_TAS_HARD	/* hardware supports test-and-set */


/* Resident ROMs constants */

#if     (CPU_FAMILY==I960)
#define STACK_SAVE      512     	/* maximum stack used to preserve */
#else	/* sparc or others */
#if	((CPU_FAMILY==SPARC) || (CPU_FAMILY==PPC))
#define	STACK_SAVE	0x1000
#else	/* all other architecutes */
#define STACK_SAVE      0x40    	/* maximum stack used to preserve */
#endif					/* mips cpp no elif */
#endif

#if     (CPU_FAMILY==SPARC)
#define RESERVED        0x2000		/* vector table base plus table size */
#else	/* 68000 or others */
#if	(CPU==MC68000)
#define RESERVED	0x400		/* avoid zeroing MC68302 vector table */
#else	
#if	(CPU_FAMILY == PPC)
#define RESERVED	0x4400		/* avoid zeroing EXC_MSG */
#else	/* all other architectures */
#define RESERVED        0
#endif
#endif					/* mips cpp no elif */
#endif

#if     ((CPU_FAMILY == MIPS) || (CPU_FAMILY == PPC))
#define	STACK_RESIDENT	RAM_DST_ADRS
#else
#define	STACK_RESIDENT	_sdata
#endif

#if	(_STACK_DIR == _STACK_GROWS_DOWN)

#ifdef	ROM_RESIDENT
#define STACK_ADRS	STACK_RESIDENT
#else
#define STACK_ADRS	_romInit
#endif	/* ROM_RESIDENT */

#else	/* _STACK_DIR == _STACK_GROWS_UP */

#ifdef	ROM_RESIDENT
#define STACK_ADRS	(STACK_RESIDENT-STACK_SAVE)
#else
#define STACK_ADRS	(_romInit-STACK_SAVE)
#endif	/*  ROM_RESIDENT */

#endif	/* _STACK_DIR == _STACK_GROWS_UP */


/* Default Boot Parameters */

#define HOST_NAME_DEFAULT	"bootHost"	/* host name */
#define TARGET_NAME_DEFAULT	"vxTarget"	/* target name (tn) */
#define HOST_USER_DEFAULT	"target"	/* user (u) */
#define HOST_PASSWORD_DEFAULT	""		/* password */
#define SCRIPT_DEFAULT		""	 	/* startup script (s) */
#define OTHER_DEFAULT		"" 		/* other (o) */

/* Default NFS parameters - constants may be changed here, variables
 * may be changed in usrConfig.c at the point where NFS is included.
 */

#define NFS_USER_ID		2001		/* dummy nfs user id */
#define NFS_GROUP_ID		100		/* dummy nfs user group id */


/* Login security initial user name and password.
 * Use vxencrypt on host to find encrypted password.
 * Default password provided here is "password".
 */

#ifdef	INCLUDE_SECURITY
#define LOGIN_USER_NAME		"target"
#define LOGIN_PASSWORD		"bReb99RRed"	/* "password" */
#endif	/* INCLUDE_SECURITY */


/* install environment variable task create/delete hooks */

#ifdef  INCLUDE_ENV_VARS
#define	ENV_VAR_USE_HOOKS	TRUE
#endif	/* INCLUDE_ENV_VARS */

/*
 * default page size for MMU is 8k.
 * 68040 will also work with 4k page size
 * powerPC is only 8k
 */

#if	(CPU_FAMILY == PPC)
#define VM_PAGE_SIZE		4096
#else 	/* (CPU_FAMILY != PPC) */
#define VM_PAGE_SIZE		8192
#endif	/* (CPU_FAMILY != PPC) */

/* STREAMS Configuration Parameters */

/* the following define the STREAMS default configuration parameters */
 
#define STREAMS_MEM_MAX		102400	/* max STREAMS memory usage */
#define STREAMS_MEM_PART_ADDR	0x0	/* mem partition address, NULL=alloc */
#define STREAMS_MEM_PART_SIZE	0x0	/* mem partition size, NULL=max */
#define STREAMS_PUSH_MAX	9	/* max pushable modules */
#define STREAMS_MSGSZ_MAX	4096	/* max data message size */
#define STREAMS_CTLSZ_MAX	1024	/* max control message size */

#define	STREAMS_PROTO_INIT_RTN	NULL	/* streams protocol init routine */
 
/* The "/tmp" directory for storing log files will work only if the
 * communication protocol between the host and target is "ftp" or "rsh" .
 * If "nfs" is being used then the directory has to be set to the 
 * directory exported by the host system.
 */

#define STREAMS_STRERR_OUTPUT_DIR  "/tmp"   /* Directory for strerr utility */
#define STREAMS_STRACE_OUTPUT_DIR  "/tmp"   /* Directory for strace file */

/* SNMP configuration parameters */
/* MIB-2 Variable defaults - see RFC 1213 for complete description */
 
#define MIB2_SYS_DESCR                  "VxWorks SNMPv1/v2c Agent"
#define MIB2_SYS_CONTACT                "Wind River Systems"
#define MIB2_SYS_LOCATION               "Planet Earth"

/* MIB2_SYS__OBJID_LEN is the number of elements in the object id
 * MIB_2_SYS_OBJID is the object id.  The default is "0.0" which
 * has the length of 2
 */
 
#define MIB2_SYS_OBJID_LEN              2
#define MIB2_SYS_OBJID                  { 0, 0 }

#define SNMP_TRACE_LEVEL            0    /* Must be >= 0 and <= 3 with higher */
                                         /* values giving more info and 0     */
                                         /* giving no info                    */ 




#define PPP_TTY				1	/* default PPP serial channel */
#define PPP_OPTIONS_STRUCT			/* use PPP options macros */
#define	PPP_OPTIONS_FILE		NULL	/* use PPP options file */
#define	PPP_CONNECT_DELAY		15	/* delay to establish link */

#undef	INCLUDE_PPP_CRYPT			/* include PPP crypt support */

/* PPP options flags - set to 1 to turn on option */

#define	PPP_OPT_NO_ALL			0	/* Don't allow any options */
#define	PPP_OPT_PASSIVE_MODE		0	/* Set passive mode */
#define	PPP_OPT_SILENT_MODE		0	/* Set silent mode */
#define	PPP_OPT_DEFAULTROUTE		0	/* Add default route */
#define	PPP_OPT_PROXYARP		0	/* Add proxy ARP entry */
#define	PPP_OPT_IPCP_ACCEPT_LOCAL	0	/* Acpt peer's IP addr for us */
#define	PPP_OPT_IPCP_ACCEPT_REMOTE	0	/* Acpt peer's IP addr for it */
#define	PPP_OPT_NO_IP			0	/* Disable IP addr negot. */
#define	PPP_OPT_NO_ACC			0	/* Disable addr/control compr */
#define	PPP_OPT_NO_PC			0	/* Disable proto field compr */
#define	PPP_OPT_NO_VJ			0	/* Disable VJ compression */
#define	PPP_OPT_NO_VJCCOMP		0	/* Disable VJ conct-ID compr */
#define	PPP_OPT_NO_ASYNCMAP		0	/* Disable async map negot. */
#define	PPP_OPT_NO_MN			0	/* Disable magic num negot. */
#define	PPP_OPT_NO_MRU			0	/* Disable MRU negotiation */
#define	PPP_OPT_NO_PAP			0	/* Don't allow PAP auth */
#define	PPP_OPT_NO_CHAP			0	/* Don't allow CHAP auth */
#define	PPP_OPT_REQUIRE_PAP		0	/* Require PAP auth */
#define	PPP_OPT_REQUIRE_CHAP		0	/* Require CHAP auth */
#define	PPP_OPT_LOGIN			0	/* Use login dbase for PAP */
#define	PPP_OPT_DEBUG			0	/* Enable daemon debug mode */
#define	PPP_OPT_DRIVER_DEBUG		0	/* Enable driver debug mode */

/* PPP options strings - set to desired string to turn on option */

#define	PPP_STR_ASYNCMAP		NULL	/* desired async map */
#define	PPP_STR_ESCAPE_CHARS		NULL	/* chars to escape on xmits */
#define	PPP_STR_VJ_MAX_SLOTS		NULL	/* max VJ compr header slots */
#define	PPP_STR_NETMASK			NULL	/* netmask value */
#define	PPP_STR_MRU			NULL	/* MRU value for negotiation */
#define	PPP_STR_MTU			NULL	/* MTU value for negotiation */
#define	PPP_STR_LCP_ECHO_FAILURE	NULL	/* max LCP echo failures */
#define	PPP_STR_LCP_ECHO_INTERVAL	NULL	/* time for LCP echo requests */
#define	PPP_STR_LCP_RESTART		NULL	/* timeout for LCP */
#define	PPP_STR_LCP_MAX_TERMINATE	NULL	/* max LCP term-reqs */
#define	PPP_STR_LCP_MAX_CONFIGURE	NULL	/* max LCP conf-reqs */
#define	PPP_STR_LCP_MAX_FAILURE		NULL	/* max conf-naks for LCP */
#define	PPP_STR_IPCP_RESTART		NULL	/* timeout for IPCP */
#define	PPP_STR_IPCP_MAX_TERMINATE	NULL	/* max IPCP term-reqs */
#define	PPP_STR_IPCP_MAX_CONFIGURE	NULL	/* max IPCP conf-reqs */
#define	PPP_STR_IPCP_MAX_FAILURE	NULL	/* max # conf-naks for IPCP */
#define	PPP_STR_LOCAL_AUTH_NAME		NULL	/* local name for auth */
#define	PPP_STR_REMOTE_AUTH_NAME	NULL	/* remote name for auth */
#define	PPP_STR_PAP_FILE		NULL	/* PAP secrets file */
#define	PPP_STR_PAP_USER_NAME		NULL	/* username for PAP peer auth */
#define	PPP_STR_PAP_PASSWD		NULL	/* password for PAP peer auth */
#define	PPP_STR_PAP_RESTART		NULL	/* timeout for PAP */
#define	PPP_STR_PAP_MAX_AUTHREQ		NULL	/* max PAP auth-reqs */
#define	PPP_STR_CHAP_FILE		NULL	/* CHAP secrets file */
#define	PPP_STR_CHAP_RESTART		NULL	/* timeout for CHAP */
#define	PPP_STR_CHAP_INTERVAL		NULL	/* CHAP rechallenge interval */
#define	PPP_STR_CHAP_MAX_CHALLENGE	NULL	/* max CHAP challenges */

/* for backward compatibility with old 1.0 BSPs */

#ifndef BSP_VERSION
#   define BSP_VERSION	"1.0"	/* old 1.0 style BSP */
#   define BSP_VER_1_0	TRUE
#endif

#ifndef BSP_REV
#   define BSP_REV	"/0"	/* old 1.0 style BSP */
#endif

#endif	/* INCconfigAllh */
----------
X-Sun-Data-Type: c-file
X-Sun-Data-Description: c-file
X-Sun-Data-Name: sysLib.c
X-Sun-Charset: us-ascii
X-Sun-Content-Lines: 952

/* sysLib.c - Force SYS68K/CPU-40, -41 system-dependent library */

/* Copyright 1984-1996 Wind River Systems, Inc. */
#include "copyright_wrs.h"

/*
modification history
--------------------
02g,04mar97,db   added sysPhysMemTop(). added LOCAL_MEM_AUTOSIZE. removed 
		 NOMANUAL from header of sysHwInit2().(SPR #7947)
02f,16dec96,dat  fixed SPR 3219, FGA_CTL7 not set correctly.
02e,16dec96,myz  fixed SPR#: 3797
02d,10oct96,dat  merge from Windview102 (added m68230Timer.c timestamp driver)
02c,21jun96,wlf  doc: cleanup.
02b,14nov95,myz  connect serial interrupt handler in sysHwInit2
02a,29sep95,dat  new BSP revision id
01z,14apr95,myz  moved serial configuration to sysSerial.c.
01y,17oct94,rhp  delete blank line in this comment block (SPR 3713).
01x,12feb93,caf  use LANCE address macro in sysPhysMemDesc (SPR 1928).
01w,02feb93,dzb  tweak to sysBusToLocalAdrs() (SPR 1764).  updated copyright.
01v,31oct92,caf  MMU now maps 16MB as cached space for RAM.
01u,22oct92,caf  changed sysPhysMemDesc[] to use LOCAL_MEM_SIZE.
		 modified sysToMonitor() accommodate 5.0.x boot ROMs (SPR 1688).
		 fixed initialization of DUSCC chips (SPR 1689).
		 changed sysMemTop() to use FRC40_MEM_SIZE macro.
01t,20oct92,caf  reworked EAGLE module interface. initialized *FGA_ICRLOCAL7.
		 made VMEbus accesses CACHEABLE_NOT (SPR 1686).
01s,29sep92,caf  removed relative path.
01r,24sep92,gae  doc tweak.
01q,16sep92,gae  pared down DESCRIPTION.
01p,11sep92,caf  added sysPhysMemDesc, disabled MMU in sysToMonitor().
01o,03sep92,caf  extracted last two bytes of Ethernet address from NVRAM.
01n,02sep92,caf  changed nvRamLib.c to nvRam.c.
01m,11aug92,ccc	 added SCSI support.
01l,16jul92,caf  added support for Eagle-01c and Eagle-02 modules.
01k,14jul92,caf  moved VMEbus interrupt and mailbox routines to fga002Vme.c.
		 ANSIfied.
01j,09jul92,caf  added support for rev 2 hardware (search for REV2).
		 moved sysNvRamSet() and sysNvRamGet() to nvRamLib.c.
		 moved sys[Aux]Clk routines to m68562Timer.c.
		 created sysHwInit2() to connect additional interrupts.
01i,26may92,rrr  the tree shuffle
01h,07jan92,jdi  documentation cleanup.
            shl  ANSI cleanup.
01g,04oct91,rrr  passed through the ANSIfication filter
		  -changed VOID to void
		  -changed copyright notice
01f,15sep91,jpb  removed exBusAdrsSpace.  The AM is passed as arg to exattach.
01e,20Aug91,jpb  Fixed spelling errors.
01d,18Aug91,jcf  rewrote sysMemTop().
01c,18aug91,jdi  documentation cleanup.
01b,25jul91,jpb  fixed auxiliary clock, non slot 1 shared
		 memory access, and documentation
01a,07jun91,jpb  adaptation for 68040 support and validation according to
		  WRS coding conventions, original from Mike McCrary (Force).
*/

/*
DESCRIPTION
This library provides board-specific routines.  The chip drivers included are:

    m68562Sio.c - Motorola MC68562 DUSCC tty driver 
    nvRam.c - non-volatile RAM library
    m68562Timer.c - MC68562 DUSCC timer library
    fga002Vme.c - Force Computers FGA-002 gate array VMEbus library
    fga002Dma.c - Force Computers FGA-002 DMA library
    frcEagle01.c - Force Eagle-01c module library
    frcEagle02.c - Force Eagle-02 module library

INCLUDE FILES: sysLib.h

SEE ALSO:
.pG "Configuration"
*/

/* includes */

#include "vxWorks.h"
#include "vme.h"
#include "ioLib.h"
#include "sysLib.h"
#include "tyLib.h"
#include "config.h"
#include "vxLib.h"
#include "intLib.h"
#include "string.h"
#include "private/vmLibP.h"
#include "drv/multi/m68562.h"

/* defines */

#define DUSCC_BASE_ADRS FRC40_DUSCC1_BASE_ADRS  /* for m68562Timer.c */

/* globals */

PHYS_MEM_DESC sysPhysMemDesc [] =
    {
    /* adrs and length parameters must be page-aligned (multiples of 0x2000) */

    /* ram */
    {
    (void *) LOCAL_MEM_LOCAL_ADRS,
    (void *) LOCAL_MEM_LOCAL_ADRS,
    0x1000000,				/* 16MB (adjust if necessary) */
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
    VM_STATE_VALID      | VM_STATE_WRITABLE      | VM_STATE_CACHEABLE
    },

    /* some a32 vme */
    {
    (void *) 0x1000000,
    (void *) 0x1000000,
    0x8000000,                          /* 128MB */
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
    VM_STATE_VALID      | VM_STATE_WRITABLE      | VM_STATE_CACHEABLE_NOT
    },

    /* message broadcast area */
    {
    (void *) 0xfa000000,
    (void *) 0xfa000000,
    0x1000000,				/* 16MB */
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
    VM_STATE_VALID      | VM_STATE_WRITABLE      | VM_STATE_CACHEABLE_NOT
    },

    /* a16 and a24 vme */
    {
    (void *) 0xfb000000,
    (void *) 0xfb000000,
    0x2000000,				/* 32MB */
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
    VM_STATE_VALID      | VM_STATE_WRITABLE      | VM_STATE_CACHEABLE_NOT
    },

#ifdef	LN_POOL_ADRS
    /* LANCE Ethernet */
    {
    (void *) LN_POOL_ADRS,
    (void *) LN_POOL_ADRS,
    0x82000,				/* 520KB */
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
    VM_STATE_VALID      | VM_STATE_WRITABLE      | VM_STATE_CACHEABLE_NOT
    },
#endif	/* LN_POOL_ADRS */

#ifdef FRC40_E002_FLASH_BASE_ADRS
    /* eagle-2 flash eprom */
    {
    (void *) FRC40_E002_FLASH_BASE_ADRS,
    (void *) FRC40_E002_FLASH_BASE_ADRS,
    0x20000,                            /* 128K bytes, adjust if necessary */
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
    VM_STATE_VALID      | VM_STATE_WRITABLE_NOT      | VM_STATE_CACHEABLE_NOT
    },
#endif

    /* system EPROM */
    {
    (void *) ROM_BASE_ADRS,
    (void *) ROM_BASE_ADRS,
    ROM_SIZE,
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
    VM_STATE_VALID      | VM_STATE_WRITABLE_NOT  | VM_STATE_CACHEABLE_NOT
    },

    /* local I/O, SRAM */
    {
    (void *) 0xff800000,
    (void *) 0xff800000,
    0x600000,				/* 6MB */
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
    VM_STATE_VALID      | VM_STATE_WRITABLE      | VM_STATE_CACHEABLE_NOT
    },

    /* boot EPROM */
    {
    (void *) 0xffe00000,
    (void *) 0xffe00000,
    0x100000,				/* 1MB */
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE,
    VM_STATE_VALID      | VM_STATE_WRITABLE_NOT  | VM_STATE_CACHEABLE_NOT
    }
    };

int sysPhysMemDescNumEnt = NELEMENTS (sysPhysMemDesc);

int sysBus = BUS;      /* system bus type (VME_BUS, etc) */
int sysCpu = CPU;      /* system cpu type (MC680x0) */
char *sysBootLine = BOOT_LINE_ADRS;	/* address of boot line */
char *sysExcMsg = EXC_MSG_ADRS;	/* catastrophic message area */
int sysProcNum;	       /* processor number of this cpu */
int sysFlags;	       /* boot flags */
char sysBootHost[BOOT_FIELD_LEN];	/* name of host from which we booted */
char sysBootFile[BOOT_FIELD_LEN];	/* name of file from which we booted */

/*
 * The Force CPU-40 has the licensed inet number of 00.80.42.c0.xx.xx.
 *
 * The last two bytes are initialized in sysHwInit2().
 */

unsigned char lnEnetAddr[6] = {0x00, 0x80, 0x42, 0xc0, 0x00, 0x00};


#include "mem/nvRam.c"
#include "timer/m68230Timer.c"	/* for timestamp driver only */
#include "timer/m68562Timer.c"
#include "vme/fga002Vme.c"
#include "sysSerial.c"

#ifdef	 EAGLE_C_FILE
#include EAGLE_C_FILE
#endif	 /* EAGLE_C_FILE */

#undef  DUSCC_BASE_ADRS

/*******************************************************************************
*
* sysModel - return the model name of the CPU board
*
* This routine returns the model name of the CPU board.
*
* RETURNS: A pointer to the string "Force SYS68K/CPU-40".
*/

char *sysModel (void)
    {
    return ("Force SYS68K/CPU-40");
    }

/*******************************************************************************
*
* sysBspRev - return the BSP version and revision number
*
* This routine returns a pointer to a BSP version and revision number, for
* example, 1.1/0. BSP_REV is concatenated to BSP_VERSION and returned.
*
* RETURNS: A pointer to the BSP version/revision string.
*/

char * sysBspRev (void)
    {
    return (BSP_VERSION BSP_REV);
    }

/*******************************************************************************
*
* sysAbortInt - handle NMI from ABORT switch on front panel
*
* RETURNS: N/A
*/

LOCAL void sysAbortInt (void)
    {
    *FGA_ISABORT = 0x0; /* acknowledge interrupt */

    sysToMonitor (BOOT_WARM_NO_AUTOBOOT);
    }

/*******************************************************************************
*
* sysHwInit - initialize the system hardware
*
* This routine initializes various features of the Force SYS68K/CPU-40,
* -41 boards.  It is called from usrInit() in usrConfig.c.
*
* This routine initializes and turns off the timers, and sets up the FGA-002
* VMEbus interface chip.
*
* NOTE: This routine should not be called directly by the user application.
*
* RETURNS: N/A
*/

void sysHwInit (void)
    {
    char zero = 0;     /* used to force compilers to use move instead of clr */

#ifdef	 EAGLE_C_FILE
    sysEagleInit ();	/* initialization specific to Eagle module */
#endif	 /* EAGLE_C_FILE */

    /* Initialize PIT1 ports */

    /* Timer */

    *PIT_TCR (FRC40_PIT1_BASE_ADRS) = TIMER_CTL_7;	/* disable timer */
    *PIT_TVIR (FRC40_PIT1_BASE_ADRS) = INT_VEC_PIT1;

    /*
     * Port General
     * Unidirectional, 8 bit mode, H34 disabled, H12 enabled, low assert
     */

    *PIT_PGCR (FRC40_PIT1_BASE_ADRS) = zero;

    /* PC4/DMAREQ is PC4, no DMA, PC5/PIRQ is PIRQ, PC6/PIACK is PC6 */

    *PIT_PIVR (FRC40_PIT1_BASE_ADRS) = INT_VEC_PIT1;
    *PIT_PSRR (FRC40_PIT1_BASE_ADRS) = PIRQ;

    /*
     * Port A - Rotary Switches
     * Bit I/O - Pin Definable single buffered
     * output, non-latched input
     */

    *PIT_PACR (FRC40_PIT1_BASE_ADRS) = PORT_SUBMODE_3;
    *PIT_PADDR (FRC40_PIT1_BASE_ADRS) = zero;	/* all inputs */

    /*
     * Port B - A31-A24 Control for slave access
     * Bit I/O - Pin definable
     * single buffered output, non-latched input
     */

    *PIT_PBCR (FRC40_PIT1_BASE_ADRS) = PORT_SUBMODE_3;	/* submode 1X */
    *PIT_PBDR (FRC40_PIT1_BASE_ADRS) = zero;	/* A31..A24 */
    *PIT_PBDDR (FRC40_PIT1_BASE_ADRS) = 0xff;	/* all outputs */

    /*
     * Port C - Snoop Control
     * PC0,PC1,PC6,PC7 output, others input
     */

    *PIT_PCDR (FRC40_PIT1_BASE_ADRS) = zero;	/* Snooping does not work */
    *PIT_PCDDR (FRC40_PIT1_BASE_ADRS) = 0xd3;   /* Changed for REV2 */


    /* Initialize PIT2 ports */


    /* Timer */

    *PIT_TCR (FRC40_PIT2_BASE_ADRS) = TIMER_CTL_7;	/* disable timer */
    *PIT_TVIR (FRC40_PIT2_BASE_ADRS) = INT_VEC_PIT2;

    /*
     * Port General
     * Mode 0, (Unidirectional 8 bit Mode), H34 && H12 disabled.
     */

    *PIT_PGCR (FRC40_PIT2_BASE_ADRS) = zero;

    /* PC4/DMAREQ = PC4, PC5/PIRQ = PC5, PC6/PIACK = PC6 */

    *PIT_PIVR (FRC40_PIT2_BASE_ADRS) = INT_VEC_PIT2;
    *PIT_PSRR (FRC40_PIT2_BASE_ADRS) = PIRQ;

    /*
     * Port A - I/O Port via B12
     * Bit I/O - Pin Definable single buffered
     * output, non-latched input
     */

    *PIT_PACR (FRC40_PIT2_BASE_ADRS) = PORT_SUBMODE_3;	/* submode 1x */
    *PIT_PADDR (FRC40_PIT2_BASE_ADRS) = zero;	/* all I/O */

    /*
     * Port B - Memory size, board ID.
     * Bit I/O - Pin Definable single
     * buffered output, non-latched input
     */

    *PIT_PBCR (FRC40_PIT2_BASE_ADRS) = PORT_SUBMODE_3;	/* submode 1X */
    *PIT_PBDDR (FRC40_PIT2_BASE_ADRS) = zero;	/* all input */

    /*
     * Port C - RAM Characteristics: type, burst, parity, enable A24 slave.
     * PC2 - RAMtype, PC4-Burst Capable, PC6-Parity Capable, PC0-1-Unused,
     * PC3-5-Int, PC7 Enable A24 Access
     */

    *PIT_PCDR (FRC40_PIT2_BASE_ADRS) = zero;	/* A24 not enabled */
    *PIT_PCDDR (FRC40_PIT2_BASE_ADRS) = 0x80;   /* Input 1,2,4,6 */
                                                /* Changed for REV2 */

    /* Initialize the M68562 serial devices */

    sysSerialHwInit();

    /* Initialize the FGA-002 */

    /* set FGA to allow DUSCC chips to provide vector */

    *FGA_LOCALIACK = FGA_LOCALIACK_EXT_500NS | (FGA_LOCALIACK_EXT_500NS << 2);

    /* enable RMW cycles */

    *FGA_CTL15 |= FGA_CTL15_SHAREDRMW;

    *FGA_CTL16 &= ~0x80;    /* Must have unaligned off to get RMW to work! */
			    /* Changed for REV2 */

    *FGA_CTL1 &= ~FGA_CTL1_SCON;	/* FGA arbitration off */

    /* disable dual porting of memory.  It is enabled in sysProcNumSet() */

    *FGA_ENAMCODE = zero;

    /* dual port from the beginning of RAM */

    *FGA_MAINUM = zero;	       /* local base = 0x0 */
    *FGA_MAINUU = zero;	       /* (start of RAM)   */

    /* set VME dual port base address */

    *FGA_VMEPAGE = (LOCAL_MEM_BUS_ADRS & 0xf0000000) >> 28;	/* A31-A28 */
    *FGA_BOTTOMPAGEU = (LOCAL_MEM_BUS_ADRS & 0x0ff00000) >> 20;	/* A27-A20 */
    *FGA_BOTTOMPAGEL = (LOCAL_MEM_BUS_ADRS & 0x000ff000) >> 12;	/* A19-A12 */

    /* set VME dual port top access location */

    *FGA_TOPPAGEU = ((ULONG) (LOCAL_MEM_BUS_ADRS - 1 +
	             sysPhysMemTop ()) & 0x0ff00000) >> 20;	/* A27-A20 */
    *FGA_TOPPAGEL = ((ULONG) (LOCAL_MEM_BUS_ADRS - 1 +
	             sysPhysMemTop ()) & 0x000ff000) >> 12;

    /* set mailbox accesses to be either user or supervisor */

    *FGA_CTL5 |= FGA_CTL5_VME_A16_BOTH;

    /* initialize vector register */

    *FGA_CTL3 = INT_VEC_FGA >> 4;

    /* initialize interrupt control registers */

    *FGA_ICRMBOX0 = INT_LVL_MBOX;
    *FGA_ICRMBOX1 = INT_LVL_MBOX;
    *FGA_ICRMBOX2 = INT_LVL_MBOX;
    *FGA_ICRMBOX3 = INT_LVL_MBOX;
    *FGA_ICRMBOX4 = INT_LVL_MBOX;
    *FGA_ICRMBOX5 = INT_LVL_MBOX;
    *FGA_ICRMBOX6 = INT_LVL_MBOX;
    *FGA_ICRMBOX7 = INT_LVL_MBOX;

    *FGA_ICRTIM0 = INT_LVL_FGA_TIMER;

    *FGA_ICRFMB0REF = INT_LVL_MBOX;
    *FGA_ICRFMB1REF = INT_LVL_MBOX;
    *FGA_ICRFMB0MES = INT_LVL_MBOX;
    *FGA_ICRFMB1MES = INT_LVL_MBOX;
    *FGA_ICRDMANORM = INT_LVL_DMA;
    *FGA_ICRDMAERR = INT_LVL_DMA;

    *FGA_ICRPARITY = INT_LVL_PARITY;

    *FGA_ICRVME1 = 1;	       /* one to one makes sense */
    *FGA_ICRVME2 = 2;
    *FGA_ICRVME3 = 3;
    *FGA_ICRVME4 = 4;
    *FGA_ICRVME5 = 5;
    *FGA_ICRVME6 = 6;
    *FGA_ICRVME7 = 7;

    /* extended interrupt control registers */

    *FGA_ICRABORT = INT_LVL_ABORT | FGA_ICR_EDGE | FGA_ICR_AUTOCLEAR;
    *FGA_ICRACFAIL = INT_LVL_ACFAIL | FGA_ICR_AUTOCLEAR;
    *FGA_ICRSYSFAIL = INT_LVL_SYSFAIL | FGA_ICR_AUTOCLEAR;

    *FGA_ICRLOCAL0 = INT_LVL_RTC | FGA_ICR_AUTOCLEAR;
    *FGA_ICRLOCAL2 = INT_LVL_PIT1 | FGA_ICR_AUTOCLEAR;
    *FGA_ICRLOCAL3 = INT_LVL_PIT2 | FGA_ICR_AUTOCLEAR;
    *FGA_ICRLOCAL4 = INT_LVL_DUSCC1 | FGA_ICR_AUTOCLEAR; /* actually external */
    *FGA_ICRLOCAL5 = INT_LVL_DUSCC2 | FGA_ICR_AUTOCLEAR; /* actually external */

#ifndef	EAGLE_C_FILE
    *FGA_ICRLOCAL1 = NULL;	/* no EAGLE module installed */
    *FGA_ICRLOCAL6 = NULL;	/* no EAGLE module installed */
    *FGA_ICRLOCAL7 = NULL;	/* no EAGLE module installed */
#endif	/* EAGLE_C_FILE */

    /* setup VMEbus arbitration registers */

    /*
     * On this board (CPU-40) the arbitration cannot be controlled via
     * software.  That is, the enable/disable capability is by hardware
     * jumper only.  The CPU-40 utilizes an device that contains a 4 level
     * arbiter; therefore the FGA arbiter is disabled.  The arbitration
     * method used is still under software control.  Bus request level, is
     * under either hardware or software control, as decided by software when
     * the arbiter is initialized.  Currently, it is set up to allow the user
     * to set jumper B19 in order to set the bus request level.
     */

    /*
     * It is still required to set up the FGA for the VMEbus release cycles,
     * as those are independent from arbitration.
     */

    /* Set up release cycles */

    *FGA_CTL7 = (*FGA_CTL7 & ~0x7) | FGA_CTL7_RAT_64US;	        /* RAT */
    *FGA_CTL7 &= ~FGA_CTL7_NO_RELEASE_ON_BCLR;	/* RBCLR */

    /* This should still work with FGA arbitration disabled. */

    *FGA_CTL8 |= FGA_CTL8_FAIR_ARB;	/* FAIR */

    /* Set up the arbiter */

    *FRC40_ARB = 0x0;	       /* Priority, request level via jumper */

    /* disable FMB channels 1 and 0; slot code set in sysProcNumSet */

    *FGA_CTL5 = FGA_CTL5_VME_A16_BOTH;

    /* enable a few choice interrupts */

    *FGA_ICRLOCAL2 |= FGA_ICR_ENABLE;	/* PIT1 */
    *FGA_ICRLOCAL4 |= FGA_ICR_ENABLE;	/* DUSCC1 */
    *FGA_ICRLOCAL5 |= FGA_ICR_ENABLE;	/* DUSCC2 */

    /* The RTC, FDC, SCSI, LANCE are not initialized here but in the drivers */
    }

/*******************************************************************************
*
* sysHwInit2 - additional system configuration and initialization
*
* This routine connects system interrupts and does any additional
* configuration necessary.
*
* RETURNS: N/A
*/

void sysHwInit2 (void)
    {
    /* connect sys clock and aux clock interrupts */

    (void) intConnect (INUM_TO_IVEC (INT_VEC_CLOCK), sysClkInt, NULL);
    (void) intConnect (INUM_TO_IVEC (INT_VEC_AUX_CLOCK), sysAuxClkInt, NULL);

    /* connect serial device interrupts */

    sysSerialHwInit2 (); 

    /* connect and enable the ABORT switch interrupt */

    if (intConnect (INUM_TO_IVEC (INT_VEC_ABORT), sysAbortInt, 0) != ERROR)
	*FGA_ICRABORT |= FGA_ICR_ENABLE;

    /* connect the mailbox interrupt */

    (void) intConnect (INUM_TO_IVEC (INT_VEC_MBOX), sysMailboxInt, 0);

    /* extract the last two bytes of Ethernet address out of non-volatile RAM */

#ifdef FRC40_E002_FLASH_BASE_ADRS
    /*
    ** the ethernet address for CPU 40 Eagle-02 version is stored in the
    ** EAGLE-02 Flash Eprom at address 0xfe8000ac, according to Force company.
    */
#undef NV_ENET_ADRS
#define NV_ENET_ADRS ((char *)FRC40_E002_FLASH_BASE_ADRS + 0xac)
#endif

    lnEnetAddr [4] = (UCHAR) NV_ENET_ADRS [0];
    lnEnetAddr [5] = (UCHAR) NV_ENET_ADRS [1];
    }

/*******************************************************************************
*
* sysPhysMemTop - get the address of the top of memory
*
* This routine finds the size of memory.
*
* When LOCAL_MEM_AUTOSIZE is defined, the memory size is determined at run
* time by probing memory.  If LOCAL_MEM_AUTOSIZE is not defined, then the
* memory size is taken from the macro LOCAL_MEM_SIZE.
*
* NOTE
* The Parallel Interface/Timer (PIT) port B has 3 input bits containing the
* encoded memory size.
*
* RETURNS: The address of the top of memory.
*/

char *sysPhysMemTop (void)
    {
    static char	* memTop = NULL;

    if (memTop == NULL)
	{
#ifdef	LOCAL_MEM_AUTOSIZE
	memTop = (char *) (FRC40_MEM_SIZE);
	
#else
	memTop = (char *)(LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE);
#endif
	}
    return memTop;
    }

/*******************************************************************************
*
* sysMemTop - get the address of the top of logical memory
*
* This routine returns the address of the first unusable byte of memory.
* VxWorks will not use any memory at or above this address.
*
* The user can reserve local memory from the board by declaring the
* macro USER_RESERVED_MEM with the amount of memory to reserve. This
* routine will return a pointer to the first byte of the reserved memory
* area.
*
* RETURNS: The address of the top of usable memory.
*/

char *sysMemTop (void)
    {
    static char * memTop = NULL;

    if (memTop == NULL)
	{
	memTop = sysPhysMemTop () - USER_RESERVED_MEM;
	}

    return memTop;
    }

/*******************************************************************************
*
* sysToMonitor - transfer control to the ROM monitor
*
* This routine transfers control to the ROM monitor.  Normally, it is called
* only by reboot()--which services ^X--and by bus errors at interrupt level.
* However, in some circumstances, the user may wish to introduce a
* <startType> to enable special boot ROM facilities.
*
* RETURNS: Does not return.
*/

STATUS sysToMonitor
    (
    int startType  /* parameter passed to ROM to tell it how to boot */
    )
    {
    FUNCPTR pRom = (FUNCPTR) (ROM_TEXT_ADRS + 8);

    /* disable the MMU */

    VM_ENABLE (FALSE);

    /* disable system clock to allow reboot with 5.0.x boot ROMs (SPR 1688) */

    sysClkDisable ();

    (*pRom) (startType);

    return (OK);	       /* in case we ever continue from ROM monitor */
    }

/*******************************************************************************
*
* sysLocalToBusAdrs - convert a local address to a bus address
*
* This routine gets the VMEbus address that accesses a specified local
* memory address.
*
* RETURNS: OK, or ERROR if the address space is unknown or not mapped.
*
* SEE ALSO: sysBusToLocalAdrs()
*/

STATUS sysLocalToBusAdrs
    (
    int adrsSpace,      /* bus address space in which busAdrs resides */
    char *localAdrs,    /* local address to convert                   */
    char **pBusAdrs     /* where to return bus address                */
    )
    {
    if ((int) localAdrs < LOCAL_MEM_LOCAL_ADRS || localAdrs >= sysPhysMemTop ())
        {
	/* this is off-board memory - just return local address */

	*pBusAdrs = localAdrs;
	return (OK);
        }

    /*
     * this is on-board memory - map to bus address space;
     * the following memory mapping is established in sysProcNumSet():
     * - only processor 0 has memory on bus,
     * - the memory is placed in EXT space at
     *   address LOCAL_MEM_BUS_ADRS.
     */

    switch (adrsSpace)
	{
	case VME_AM_SUP_SHORT_IO:
	case VME_AM_USR_SHORT_IO:
	    return (ERROR); /* no A16 access to RAM */

	case VME_AM_STD_SUP_PGM:
	case VME_AM_STD_SUP_DATA:
	case VME_AM_STD_USR_PGM:
	case VME_AM_STD_USR_DATA:
	    return (ERROR); /* no A24 access to RAM */

	case VME_AM_EXT_SUP_PGM:
	case VME_AM_EXT_SUP_DATA:
	case VME_AM_EXT_USR_PGM:
	case VME_AM_EXT_USR_DATA:
	    *pBusAdrs = localAdrs + LOCAL_MEM_BUS_ADRS;
	    return (OK);

	default:
	    return (ERROR);
	}
    }

/*******************************************************************************
*
* sysBusToLocalAdrs - convert a bus address to a local address
*
* This routine gets the local address that accesses a specified VMEbus
* memory address.
*
* RETURNS: OK, or ERROR if the address is unknown or the mapping is
* not possible.
*
* SEE ALSO: sysLocalToBusAdrs()
*/

STATUS sysBusToLocalAdrs
    (
    int adrsSpace,      /* bus address space in which busAdrs resides */
    char *busAdrs,      /* bus address to convert                     */
    char **pLocalAdrs   /* where to return local address              */
    )
    {
    switch (adrsSpace)
        {
	case VME_AM_SUP_SHORT_IO:
	case VME_AM_USR_SHORT_IO:
	    *pLocalAdrs = (char *) (0xfcff0000 |
		                    (0x0000ffff & (unsigned int) busAdrs));
	    return (OK);

	case VME_AM_STD_SUP_ASCENDING:
	case VME_AM_STD_SUP_PGM:
	case VME_AM_STD_SUP_DATA:
	case VME_AM_STD_USR_ASCENDING:
	case VME_AM_STD_USR_PGM:
	case VME_AM_STD_USR_DATA:
            busAdrs = (char *) ((unsigned int) busAdrs & 0x00ffffff);

	    if ((unsigned int) busAdrs > (unsigned int) 0x00feffff)
		return (ERROR);
	    *pLocalAdrs = (char *) (0xfc000000 | (unsigned int) busAdrs);
	    return (OK);

	case VME_AM_EXT_SUP_ASCENDING:
	case VME_AM_EXT_SUP_PGM:
	case VME_AM_EXT_SUP_DATA:
	case VME_AM_EXT_USR_ASCENDING:
	case VME_AM_EXT_USR_PGM:
	case VME_AM_EXT_USR_DATA:
	    if ((UINT) busAdrs < (UINT) sysPhysMemTop () ||
		(UINT) busAdrs > (UINT) 0xf9ffffff)
	        {
		return (ERROR);
	        }
	    *pLocalAdrs = busAdrs;
	    return (OK);

	default:
	    return (ERROR);
        }
    }

/*******************************************************************************
*
* sysProcNumGet - get the processor number
*
* This routine returns the processor number for the CPU board, which is
* set with sysProcNumSet().
*
* RETURNS: The processor number for the CPU board.
*
* SEE ALSO: sysProcNumSet()
*/

int sysProcNumGet (void)
    {
    return (sysProcNum);
    }

/*******************************************************************************
*
* sysProcNumSet - set the processor number
*
* This routine sets the processor number for the CPU board.  Processor numbers
* should be unique on a single backplane.
*
* RETURNS: N/A
*
* SEE ALSO: sysProcNumGet()
*/

void sysProcNumSet
    (
    int procNum
    )
    {
    sysProcNum = procNum;

    /*
     * Shared RAM is made open to dual-port VME access only if this is
     * the system controller (processor 0).  This can be overridden here
     * to make the memory accessible for other processor numbers, but
     * make sure that the addressing scheme used causes no address
     * conflicts on VME.  It has been tested in this configuration also.
     */

    if (procNum == 0)
        {
	/*
	 * SYSCON slot 1 capabilities (bus arbitration) is
	 * selected with a hardware jumper.
	 */

	/* dual-port memory for extended (A32) access only */


        /* set VME dual port base address */

        *FGA_VMEPAGE = (LOCAL_MEM_BUS_ADRS & 0xf0000000) >> 28;    /* A31-A28 */
        *FGA_BOTTOMPAGEU = (LOCAL_MEM_BUS_ADRS & 0x0ff00000) >> 20;/* A27-A20 */
        *FGA_BOTTOMPAGEL = (LOCAL_MEM_BUS_ADRS & 0x000ff000) >> 12;/* A19-A12 */

        /* set VME dual port top access location */

        *FGA_TOPPAGEU = ((ULONG) (LOCAL_MEM_BUS_ADRS - 1 +
                         sysPhysMemTop ()) & 0x0ff00000) >> 20; /* A27-A20 */
        *FGA_TOPPAGEL = ((ULONG) (LOCAL_MEM_BUS_ADRS - 1 +
                         sysPhysMemTop ()) & 0x000ff000) >> 12;

	*FGA_ENAMCODE = FGA_ENAMCODE_EXTUSRDAT_RW | FGA_ENAMCODE_EXTSUPDAT_RW;

	/*
	 * standard (A24) access could also be enabled through the
	 * PI/T2 port C bit 7 (=1), which uses the PI/T1 port B as
	 * bits 24-31 of 32 bit address.  See User's Manual.
	 */
        }

    /* set VME short address space base for FGA-002; each proc w/ unique adrs */

    *FGA_MYVMEPAGE = (FRC40_FGA_VME_ADRS >> 8);

    /* set FMB slot code */

    *FGA_FMBCTL &= ~FGA_FMBCTL_SLOT_MASK;

				/* LOCAL_MEM_BUS_ADRS == 16M * (procNum+1) */
    *FGA_FMBCTL |= (procNum & FGA_FMBCTL_SLOT_MASK);
    }
/*******************************************************************************
*
* sysBusTas - test and set a location across the bus
*
* This routine performs a 680\f2x\f10 test-and-set instruction across the 
* backplane.
*
* RETURNS: TRUE if the value had not been set but is now, or FALSE if the
* value was set already.
*
* SEE ALSO: vxTas()
*/

BOOL sysBusTas
    (
    char *adrs          /* address to be tested and set */
    )
    {
    return (vxTas (adrs));
    }


/* miscellaneous support routines */

/*******************************************************************************
*
* sysSysfailConnect - connect a routine to the SYSFAIL signal
*
* This routine connects a specified routine to the CPU board's SYSFAIL signal.
*
* RETURNS: OK, or ERROR if the routine cannot be connected to the SYSFAIL
* signal.
*
* SEE ALSO: intConnect()
*/

STATUS sysSysfailConnect
    (
    VOIDFUNCPTR routine,  /* routine to be connected to SYSFAIL signal */
    int         arg       /* argument with which to call routine       */
    )
    {
    if (intConnect (INUM_TO_IVEC (INT_VEC_SYSFAIL),  routine, arg) == ERROR)
	return (ERROR);

    *FGA_ICRSYSFAIL |= FGA_ICR_ENABLE;

    return (OK);
    }

/*******************************************************************************
*
* sysAcfailConnect - connect a routine to the ACFAIL signal
*
* This routine connects a specified routine to the CPU board's ACFAIL signal.
*
* RETURNS: OK, or ERROR if the routine cannot be connected to the ACFAIL
* signal.
*
* SEE ALSO: intConnect()
*/

STATUS sysAcfailConnect
    (
    VOIDFUNCPTR routine,  /* routine to be connected to ACFAIL signal */
    int         arg       /* argument with which to call routine      */
    )
    {
    if (intConnect (INUM_TO_IVEC (INT_VEC_ACFAIL), routine, arg) == ERROR)
	return (ERROR);

    *FGA_ICRACFAIL |= FGA_ICR_ENABLE;

    return (OK);
    }

/*******************************************************************************
*
* sysFrontPanelSwitches - read the front panel switches of the CPU
*
* This routine returns the values of the CPU's front panel switches.
*
* RETURNS: The combined value of the two 4-bit rotary switches.
*/

int sysFrontPanelSwitches (void)

    {
    return (*PIT_PAAR (FRC40_PIT1_BASE_ADRS));
    }
----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: vxexplo.log
X-Sun-Charset: us-ascii
X-Sun-Content-Lines: 352




Press any key to stop auto-boot...
 1
auto-booting...


boot device          : ln
processor number     : 0 
host name            : host
file name            : /usr/local/vw/wind/target/config/frc40/vxWorks
inet on ethernet (e) : 128.171.96.84:ffffff00
host inet (h)        : 128.171.96.162
user (u)             : target
ftp password (pw)    : xxxxxxxx
flags (f)            : 0x28 
target name (tn)     : cpu4
startup script (s)   : nfs.hq

Attaching network interface ln0... done.
Attaching network interface lo0... done.
Loading... 523072 + 52976 + 35584
Starting at 0x1000...

Attaching network interface ln0... done.
Attaching network interface lo0... done.
Mounting NFS file systems from host host for target cpu4:
...done
Loading symbol table from host:/usr/local/vw/wind/target/config/frc40/vxWorks.sym ...done
 

 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
      ]]]]]]]]]]]  ]]]]     ]]]]]]]]]]       ]]              ]]]]         (R)
 ]     ]]]]]]]]]  ]]]]]]     ]]]]]]]]       ]]               ]]]]            
 ]]     ]]]]]]]  ]]]]]]]]     ]]]]]] ]     ]]                ]]]]            
 ]]]     ]]]]] ]    ]]]  ]     ]]]] ]]]   ]]]]]]]]]  ]]]] ]] ]]]]  ]]   ]]]]]
 ]]]]     ]]]  ]]    ]  ]]]     ]] ]]]]] ]]]]]]   ]] ]]]]]]] ]]]] ]]   ]]]]  
 ]]]]]     ]  ]]]]     ]]]]]      ]]]]]]]] ]]]]   ]] ]]]]    ]]]]]]]    ]]]] 
 ]]]]]]      ]]]]]     ]]]]]]    ]  ]]]]]  ]]]]   ]] ]]]]    ]]]]]]]]    ]]]]
 ]]]]]]]    ]]]]]  ]    ]]]]]]  ]    ]]]   ]]]]   ]] ]]]]    ]]]] ]]]]    ]]]]
 ]]]]]]]]  ]]]]]  ]]]    ]]]]]]]      ]     ]]]]]]]  ]]]]    ]]]]  ]]]] ]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]       Development System
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]       VxWorks version 5.3.1
 ]]]]]]]]]]]]]]]]]]]]]]]]]]       KERNEL: WIND version 2.5
 ]]]]]]]]]]]]]]]]]]]]]]]]]       Copyright Wind River Systems, Inc., 1984-1997

                               CPU: Force SYS68K/CPU-40.  Processor #0.
                              Memory Size: 0x1000000.  BSP version 1.1/1.
                             WDB: Ready.

Executing startup script nfs.hq ...
#
# $Id: nfs.hq,v 1.8 1997/07/24 20:56:43 ktsubota Exp $
#
# script to nfs mount individual disks onto VxWorks when booted
#
routeAdd "128.171.136.0","128.171.96.1"
value = 0 = 0x0
routeAdd "128.171.95.0", "128.171.96.1"
value = 0 = 0x0
hostAdd "kahala","128.171.96.178"
value = 0 = 0x0
hostAdd "hana","128.171.96.176"
value = 0 = 0x0
hostAdd "kapua","128.171.96.152"
value = 0 = 0x0
hostAdd "polihua","128.171.96.180"
value = 0 = 0x0
hostAdd "papahaku","128.171.96.181"
value = 0 = 0x0
#

hostAdd "kamehame","128.171.96.159"
value = 0 = 0x0
#
nfsMount "kamehame","/kamehame","/home/kamehame"
value = 0 = 0x0
#
nfsMount "kahala","/kahala","/home/kahala"
value = 0 = 0x0
nfsMount "hana","/hana/wlupton","/home/wlupton"
value = 0 = 0x0
nfsMount "kapua","/kapua/hlewis","/home/hlewis"
value = 0 = 0x0
nfsMount "polihua","/polihua","/home/polihua"
value = 0 = 0x0
nfsMount "papahaku","/sunos/local/kroot","/kroot"
value = 0 = 0x0
nfsMount "papahaku","/sunos/local/epics","/usr/local/epics"
value = 0 = 0x0
#
hostShow
hostname         inet address       aliases
--------         ------------       -------
cpu4             128.171.96.84     
localhost        127.0.0.1         
host             128.171.96.162    
kahala           128.171.96.178    
hana             128.171.96.176    
kapua            128.171.96.152    
polihua          128.171.96.180    
papahaku         128.171.96.181    
kamehame         128.171.96.159    
value = 0 = 0x0
nfsDevShow
device name          file system                                       
-----------          -----------                                       
/home/kamehame       kamehame:/kamehame                                
/home/kahala         kahala:/kahala                                    
/home/wlupton        hana:/hana/wlupton                                
/home/hlewis         kapua:/kapua/hlewis                               
/home/polihua        polihua:/polihua                                  
/kroot               papahaku:/sunos/local/kroot                       
/usr/local/epics     papahaku:/sunos/local/epics                       
value = 0 = 0x0

Done executing startup script nfs.hq
-> <ktao313/mem
< nfs.hq
#
# $Id: nfs.hq,v 1.8 1997/07/24 20:56:43 ktsubota Exp $
#
# script to nfs mount individual disks onto VxWorks when booted
#
routeAdd "128.171.136.0","128.171.96.1"
value = -1 = 0xffffffff = _end + 0xfff69acf
routeAdd "128.171.95.0", "128.171.96.1"
value = -1 = 0xffffffff = _end + 0xfff69acf
hostAdd "kahala","128.171.96.178"
value = -1 = 0xffffffff = _end + 0xfff69acf
hostAdd "hana","128.171.96.176"
value = -1 = 0xffffffff = _end + 0xfff69acf
hostAdd "kapua","128.171.96.152"
value = -1 = 0xffffffff = _end + 0xfff69acf
hostAdd "polihua","128.171.96.180"
value = -1 = 0xffffffff = _end + 0xfff69acf
hostAdd "papahaku","128.171.96.181"
value = -1 = 0xffffffff = _end + 0xfff69acf
#

hostAdd "kamehame","128.171.96.159"
value = -1 = 0xffffffff = _end + 0xfff69acf
#
nfsMount "kamehame","/kamehame","/home/kamehame"
value = -1 = 0xffffffff = _end + 0xfff69acf
#
nfsMount "kahala","/kahala","/home/kahala"
value = -1 = 0xffffffff = _end + 0xfff69acf
nfsMount "hana","/hana/wlupton","/home/wlupton"
value = -1 = 0xffffffff = _end + 0xfff69acf
nfsMount "kapua","/kapua/hlewis","/home/hlewis"
value = -1 = 0xffffffff = _end + 0xfff69acf
nfsMount "polihua","/polihua","/home/polihua"
value = -1 = 0xffffffff = _end + 0xfff69acf
nfsMount "papahaku","/sunos/local/kroot","/kroot"
value = -1 = 0xffffffff = _end + 0xfff69acf
nfsMount "papahaku","/sunos/local/epics","/usr/local/epics"
value = -1 = 0xffffffff = _end + 0xfff69acf
#
hostShow
hostname         inet address       aliases
--------         ------------       -------
cpu4             128.171.96.84     
localhost        127.0.0.1         
host             128.171.96.162    
kahala           128.171.96.178    
hana             128.171.96.176    
kapua            128.171.96.152    
polihua          128.171.96.180    
papahaku         128.171.96.181    
kamehame         128.171.96.159    
value = 0 = 0x0
nfsDevShow
device name          file system                                       
-----------          -----------                                       
/home/kamehame       kamehame:/kamehame                                
/home/kahala         kahala:/kahala                                    
/home/wlupton        hana:/hana/wlupton                                
/home/hlewis         kapua:/kapua/hlewis                               
/home/polihua        polihua:/polihua                                  
/kroot               papahaku:/sunos/local/kroot                       
/usr/local/epics     papahaku:/sunos/local/epics                       
value = 0 = 0x0

newTable = calloc(1,1024)
new symbol "newTable" added to symbol table.
newTable = 0xfa2150: value = 16295912 = 0xf8a7e8
memcpy(newTable,intVecBaseGet(),1024)
value = 16295912 = 0xf8a7e8
intVecBaseSet newTable
value = 0 = 0x0

shellPromptSet "kt313.> "
value = 532000 = 0x81e20 = _shellHistSize + 0x4

 sysMemTop
value = 16777216 = 0x1000000
 memShow 1

FREE LIST:
  num     addr      size
  --- ---------- ----------
    1   0xffea28         28
    2   0xf8a7c0         32
    3   0xfa1edc         16
    4   0xfa2028         32
    5   0xffef08         20
    6   0xfa3648         20
    7   0xffec28         20
    8   0xfa2858        400
    9   0xffd8f8        180
   10   0xfa378c        168
   11   0xf91ae4        404
   12   0xf8929c       3708
   13   0xf8e204      13968
   14   0xf6a860     104988
   15   0xf51634     102848
   16   0xf93a70         24
   17   0x18d2d0   14313040
   18   0xffc000       6376
   19   0xff2000       8184
   20   0xfe8000       8184
   21   0xfde000       8184
   22   0xfd4000       8112


SUMMARY:
 status   bytes    blocks   avg block  max block
 ------ --------- -------- ---------- ----------
current
   free  14578936       22     662678  14313040
  alloc    571424     3470        164        -
cumulative
  alloc   1238708     4077        303        -
value = 0 = 0x0

 bfill( 0x1000000, 0x4000000,0xffff)
value = 65535 = 0xffff = _vfprintf + 0x1d3

 memAddToPool( 0x1000000,  0x4000000 )
value = 0 = 0x0

 sysMemTop
value = 16777216 = 0x1000000
 memShow 1

FREE LIST:
  num     addr      size
  --- ---------- ----------
    1  0x1000008   67108848
    2   0xffea28         28
    3   0xf8a7c0         32
    4   0xfa1edc         16
    5   0xfa2028         32
    6   0xffef08         20
    7   0xfa3648         20
    8   0xffec28         20
    9   0xfa2858        400
   10   0xffd8f8        180
   11   0xfa378c        168
   12   0xf91ae4        404
   13   0xf8929c       3708
   14   0xf8e204      13968
   15   0xf6a860     104988
   16   0xf51634     102848
   17   0xf93a70         24
   18   0x18d2d0   14313040
   19   0xffc000       6376
   20   0xff2000       8184
   21   0xfe8000       8184
   22   0xfde000       8184
   23   0xfd4000       8112


SUMMARY:
 status   bytes    blocks   avg block  max block
 ------ --------- -------- ---------- ----------
current
   free  81687784       23    3551642  67108848
  alloc    571424     3470        164        -
cumulative
  alloc   1250772     4085        306        -
value = 0 = 0x0

cd "/home/kahala/ktsubota/kroot/rel/ao313/obs"
value = 0 = 0x0
pwd
/home/kahala/ktsubota/kroot/rel/ao313/obs
value = 42 = 0x2a = '*'

ld < dcs/bin/frc40/fmodFix
value = 16298140 = 0xf8b09c = fmodFix_bss + 0x8


ld < epics/base/bin/frc40/iocCore
ld error: error reading file (errno = 0x300046).
value = 0 = 0x0
kt313.> printErrno 0x300046
S_nfsLib_NFSERR_STALE
value = 22 = 0x16
kt313.> memShow 1
                 
FREE LIST:
  num     addr      size
  --- ---------- ----------
    1   0xf9e254        316
    2   0xffea7c         20
    3  0x4ff9460       9040
    4  0x4ff9068        356
    5   0xf8b248       1384
    6   0xf8ac74         72
    7   0xf8abe8         24
    8  0x1000008   66723916
    9   0xffea28         28
   10   0xf8a7c0         32
   11   0xfa1edc         16
   12   0xfa2028         32
   13   0xffef08         20
   14   0xfa3648         20
   15   0xffec28        324
   16   0xfa2858        400
   17   0xffd8f8       2080
   18   0xfa378c       2296
   19   0xf91ae4        936
   20   0xf8929c       4148
   21   0xf8e204      13968
   22   0xf6a860     122696
   23   0xf51634     102848
   24   0xf93a70         24
   25   0x18d2d0   14313040
   26   0xffc000       6376
   27   0xff2000       8184
   28   0xfe8000       8184
   29   0xfde000       8184
   30   0xfd4000       8112


SUMMARY:
 status   bytes    blocks   avg block  max block
 ------ --------- -------- ---------- ----------
current
   free  81337076       30    2711235  66723916
  alloc    922132     3480        264        -
cumulative
  alloc   1721380     4146        415        -
value = 0 = 0x0
kt313.>                       


From ktsubota@keck.hawaii.edu  Tue Dec 23 18:49:11 1997
From: ktsubota@keck.hawaii.edu (Kevin Tsubota)
Date: Tue Dec 23 18:49:14 PST 1997
Subject: Re: trying to add 64M offboard memory to system pool

Sorry, just to clarify things, the nfs_stale handle is just one of a couple
erorrs I encounter, others would be bus error or rpc error.  Without the
call to memAddToPool everything works fine. 


> From ktsubota Tue Dec 23 15:53:51 1997
> Date: Tue, 23 Dec 1997 15:53:45 -1000
> From: ktsubota (Kevin Tsubota)
> To: vxwexplo@lbl.gov
> Subject: trying to add 64M offboard memory to system pool
> Cc: ktsubota
> Content-Type: X-sun-attachment
> Content-Length: 79458
> 
> 
> Configuration:
> 
> frc40 16M cpu
> micro memory MM6260AD 64M memory card
> vxWorks 5.1.1 and vxWorks 5.3.1
> 
> We have a frc40 16M CPU card running vxWorks and needed more memory so
> we purchased a 64M memory card from micro memory.  I've been able
> to read and write practically all 64M on the card, both as longs and
> doubles.  However when I attempt to do a vxWorks ld command from the
> target shell I always get an error.  I've had this error in vxWorks
> 5.1.1 and I've just upgraded to vxWorks 5.3.1 with the same results.
> 
> I've tried it in the windsh and it loads but I get other errors.  
> I would prefer to run it from the target shell as the startup script.
> 
> I've been fighting this for some time now with help from vxWorks but
> I'm still at square one.
> 
> Has anyone else done anything similiar? 
> 
> I've attached the output from vxWorks 5.3.1 target shell as well as my configAll.h and sysLib.c files.
>  
> I'm using bfill to set the parity bit and memAddToPool and want to freely use 
> the offboard memory without specifically addressing it.
> 
> Thank You.
> 
> Kevin Tsubota
> W.M. Keck Observatory
> (808)885-778
> ktsubota@keck.hawaii.edu


From daemon@csg.lbl.gov  Thu Dec 25 04:01:04 1997
From: daemon@csg.lbl.gov
Date: Thu Dec 25 04:01:08 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Thu Dec 25 04:01:01 PST 1997

        Subject: Re: 2000 problem
        Subject: Re: Adding functions to lib*-files _with_ entry in symbol-table

-------------------------------------------------------

Newsgroups: comp.os.vxworks,comp.realtime,comp.unix.programmer,comp.lang.c,comp.lang.c++
Subject: Re: 2000 problem
Date: Sat, 20 Dec 1997 14:28:30 -0600
From: "Tim Clark" <tclark@myriad.net>
Organization: DigiPhone Corporation, Bryan/College Station Texas 409-693-8885
Message-ID: <67hdc6$um3@news.myriad.net>
References: <62fk8h$mjq@bcarh8ab.bnr.ca> <66rnkc$lpa$1@wbnws01.ne.highway1.com> <1997Dec16.124609.399@nntp.muohio.edu>

FYI,
Its approximately 12 years.

Randy Kaelber wrote in message <1997Dec16.124609.399@nntp.muohio.edu>...
>Paul G. Fox (pgf@foxharp.boston.ma.us) wrote:
>
>> the century starts when people want it to.  we've played with the
calendar
>> enough times in the past (isn't there a whole 11 years missing somewhere?
>> or is it only 11 days?  :-) that insisting on counting by 100's or by
>> 1000's, is being picky.
>




---------------------------

Newsgroups: comp.os.vxworks
Subject: Re: Adding functions to lib*-files _with_ entry in symbol-table
Date: Wed, 24 Dec 1997 17:12:39 -0800
From: Ingo Pakleppa <ingop@cts.com>
Organization: CTS Network Services
Message-ID: <34A1B306.280518E@cts.com>
References: <34A1315F.41C67EA6@fzi.de>
Reply-To: ingop@cts.com

Check out the userSymXXX.c files; there are several of them (I think, three
- - which one to use is a matter of maintainability; choose what you consider
appropriate). In order to included your functions in the symbol table,
you'll need to put two entries into one of these files, one to include the
function from the .o file (which will keep the linker from throwing it out),
and one to actually put it into the symbol table. It's pretty simple, just
follow the pattern from all the other functions that are already there.

Torsten Rupp wrote:

> Hello,
>
> I like to add own functions to the lib*gnuvx.a-files (e. g.
> libMC68040gnuvx.a). I have no problems to add the .o-file, but if the
> functions included in the lib*gnuvx.a-file are not referenced by some
> functions of the vxWorks kernel image they will be removed by the linker
> at creation time of the image (I tried different options for the linker,
> but I had no success). I know that I can add some .o-files to the
> vxWorks image with the MACH_EXTRA option in the makefile, but I want to
> add some special functions to the lib*-files. Does anybody how to
>
>  - add functions to some lib*gnuvx.a-file _AND_
>  - to include the added functions in the vxWorks symbol-table?
>
> Thank you very much!
>
> Bye,
>
>  Torsten
>
> --
> Computer Science Research Center (FZI)   phone : +49-721-9654-302
> Mobility Management and Robotics         fax   : +49-721-9654-309
> Haid-und-Neu-Str. 10-14                  e-mail: rupp@fzi.de
> D-76131 Karlsruhe (Germany)              www   : www.fzi.de/robot




---------------------------

End of New-News digest
**********************


From 93352560@aol.com  Fri Dec 26 11:24:24 1997
From: 93352560@aol.com
Date: Fri Dec 26 11:24:28 PST 1997
Subject:   Congratulations, AOL Member!

        
 Congratulations Member!

  You have been selected from the  Membership Directory to REGISTER for
a 9 Days/8 Nights FLORIDA/BAHAMAS Vacation and a CRUISE with full accommodations aboard the ship!! Only $299 per person! 
We are a high volume wholesaler that promotes tourism to hotels, resorts and cruise lines. So we are able to offer you great rates. This vacation is designed for your total enjoyment, and also to help us establish some good word-of-mouth advertising.

If qualified your fabulous Caribbean package will include:

* 3 Days/2 Nights in Disney World, Orlando, Florida
* 3 Days/3 Nights in Sunny Ft. Lauderdale, Florida
* 3 Days/2 Nights in beautiful Grand Bahama Island
* A Round Trip Cruise from and to the Bahamas with all your meals and entertainment included aboard the ship
* A Complimentary Alamo Rental Car with unlimited mileage for your stay in Florida

Send us e-mail with the following information. If you qualify 
one of our Experienced Travel Representatives will contact you with the full details:
BONUS! FIRST 500 QUALIFIED ENTRANTS WILL ALSO RECEIVE 
* 3 Days/3 Nights in Colonial Williamsburg, Virginia
* 4 Days/3 Nights in beautiful Cancun, Mexico
* 4 Days/3 Nights in exciting Las Vegas

Full Name: ______________
Address:   ______________
State:     ______________
Age:       ______________
Day Phone:  (__)_________
Night Phone:(__)_________

All trips are 100% transferable, so you may give it to a friend or a relative as well!

Important: All fields must me filled out completely in order to be qualified! Must be 21
years of age or older and have a major credit card for car rental deposit.
<a href="mailto:travelweb@juno.com">Click to REGISTER</a></b>

This info will remain completely confidential! 







From beany31@hotmail.com  Mon Dec 29 03:18:44 1997
From: beany31@hotmail.com
Date: Mon Dec 29 03:18:47 PST 1997
Subject: ALL You CAN Be

Dear Friend,

Your name was given to me, as a person with the ambition to make changes in your life, and
the ability, and desire to succeed.  I am sending you this information below as a possible
source of your endeavor.  This may not be for everybody, but with increasing information 
you can better understand, Determin, and attain your goals. 
 
This Report will enlighten you to ways of making Extra Income, or It can be the start of a 
New Career. You Make It Happen  with this "step by step" Proven Plan for the year 2000.

AFTER READING this report, & you see How This Can Work for YOU, e-mail me the order form
below with all the information filled out completely ...... and I will  send to You 
"167 BUSINESSES & FINANCIAL REPORTS".  This comes to you on a disk, with full information. 
 (1) You can use to build your own business, with the tools and samples for Marketing, and
tips and suggestions regarding Advertising, along with several different and varied slicks. 
 (2) You can print each report (375 pages for all reports) out and sell each of them for 
the price you set, or (3) You can reprint the disk and sell it.   Reports with this quality 
and quantity on a disk have sold for as high as $100. It is yours to do with  what you would 
like, and build your business and Future as Big as your Dreams and Desires allow you.

This is a reg $43.95 Value, for a limited time it is yours for $29.95 US Funds (incl s & h )
   [An additional $15.00 US s & h  if you are outside the US or Canada.]

The Very Best to  you in the New Year, and if you order before December 31st, I will send 
you a booklet " SAVING YOU MONEY ON YOUR TAXES ". 

If  you do not want this type mail or information, place REMOVE in the Subject and return.
We will remove your name. ( beany32@hotmail.com   )

               Thank You for your time it was greatly appreciated.
-------------------------------------------------------------------------------------

 TO ORDER: Send $29.95 (s&h included)  additional $15 US if you live outside the US or Canada. 

           Mastercard_____  Visa____  American Express____   
   
  Name_________________________________________

  Address_________________________________________________

  State/Province/Zip_______________________________________________

  Country_______________________E-Mail________________________________

  Phone____________________________Fax_________________________________

 CREDITCARD Information:

  Name (as it appears on card)________________________________________________

  Card Name & Number___________________________________________________

  Expiration Date:__________________________________________________

                            beany32@hotmail.com
    
                " Make A Happy Day.........LIFE Is But A MOMENT "



From daemon@csg.lbl.gov  Mon Dec 29 04:00:24 1997
From: daemon@csg.lbl.gov
Date: Mon Dec 29 04:00:28 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Mon Dec 29 04:00:21 PST 1997

        Subject: Realtime C++ Query
        Subject: Re: Realtime C++ Query

-------------------------------------------------------

Newsgroups: comp.arch.embedded,comp.realtime,comp.os.vxworks
Subject: Realtime C++ Query
Date: Sun, 21 Dec 1997 13:19:50 -0800
From: Harvey Taylor <het@despam.pangea.ca>
Organization: Organization? What organization?!
Message-ID: <349D87F6.367A@despam.pangea.ca>

Greetings,
	Several people where I work want to use C++ to develop 
	VxWorks [GNU 2.7.2] device drivers.  I would like to 
	know what people's opinions are on using: 
		-templates
		-multiple inheritance
		-virtual functions
	in a real time embedded environment...
		
	Comments?  Experiences?
<cordially>
- -het

- -- 
 "Simplicity is the ultimate sophistication."  - old Apple logo

Harvey Taylor het@despam_pangea.ca http://www.despam_pangea.ca/~het

---------------------------

Newsgroups: comp.arch.embedded,comp.realtime,comp.os.vxworks
Subject: Re: Realtime C++ Query
Date: Sun, 21 Dec 1997 19:30:05 -0800
From: Ingo Pakleppa <ingop@cts.com>
Organization: CTS Network Services
Message-ID: <349DDEBC.F760615A@cts.com>
References: <349D87F6.367A@despam.pangea.ca>
Reply-To: ingop@cts.com

All of these features are completely deterministic (well, for multiple
inheritance, that's arguable <g>), so they should not have any effect on
realtime performance. They will of course affect raw speed performance,
but usually only in minute amounts, and often for the better rather than
for the worse.

And they can affect the memory footprint significantly.

Templates are essentially nothing but the good old C macros in new
clothes - well, at least, almost. The code in the template is going to
get expanded multiple times - once for every combination of template
parameters, or the code might get inlined (this depends on compiler and
options; I'm not sure what GNU does). Either way, it means that your
programs can get a considerably larger footprint. You can often minimize
that effect by putting everything that is truly independent of the
template parameters into a base class, and deriving the template class
from that base class, keeping only those pieces of code that directly
depend on the template parameters in the template class.

Multiple inheritance is a mess, plain and simple, although some people
feel that it's the greatest thing since sliced bread. This is a design
issue unrelated to embedded systems. My advice is to avoid it like the
plague, although there are situations that do justify using multiple
inheritance. You'll find many people feeling very strongly about it
either way - and few in the middle. As far as realtime embedded systems
go: multiple inheritance per se shuldn't have any effect, although it
can compound the memory needs of virtual functions.

Virtual functions - ah, the beauty of C++. You will hear many people say
that virtual functions make code slower. On the surface, that seems to
be true - virtual functions are invoked indirectly through a jump table
(aka vTable), which means an additional pointer dereferencing every time
the virtual functions are invoked. However, in the bigger picture, the
opposite is usually true - without virtual function, you'd usually have
to implement the same functionality with a, sometimes length, list of if
statements or a switch - and they execute a lot slower than the indirect
function call. Or you could use function pointers - but then, you'd
again have the extra indirection.

One problem with virtual functions may be that the jump tables can take
up a considerable amount of space in memory - so if that is at premium,
you may want to restrict use of virtual functions to a few well-deserved
cases. Moreover, if you have a virtual function in a template (even if
you don't override it), you'll generate a vTable for each set of
template parameters - compounding the problem.

Harvey Taylor wrote:

> Greetings,
>         Several people where I work want to use C++ to develop
>         VxWorks [GNU 2.7.2] device drivers.  I would like to
>         know what people's opinions are on using:
>                 -templates
>                 -multiple inheritance
>                 -virtual functions
>         in a real time embedded environment...
>
>         Comments?  Experiences?
> <cordially>
> -het
>
> --
>  "Simplicity is the ultimate sophistication."  - old Apple logo
>
> Harvey Taylor het@despam_pangea.ca http://www.despam_pangea.ca/~het




---------------------------

End of New-News digest
**********************


From amolkho@madge.com  Mon Dec 29 06:28:04 1997
From: "Adi Molkho ELdevmt-TA" <amolkho@madge.com>
Date: Mon Dec 29 06:28:07 PST 1997
Subject: REMOVE
+---------------------------------+
Adi Molkho
Madge Networks
amolkho@lannet.com
972-3-6458351



From daemon@csg.lbl.gov  Tue Dec 30 04:00:22 1997
From: daemon@csg.lbl.gov
Date: Tue Dec 30 04:00:30 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Tue Dec 30 04:00:14 PST 1997

        Subject: Site of the day

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Site of the day
Date: 22 Dec 1997 22:31:55 GMT
From: Information<NotImportant@not.now>
Organization: Information
Message-ID: <67mpor$237$129@news.nacamar.de>

Check it out
http://193.195.1.1/cgi-bin/grusha/ad/bluechip/ricochet.cgi?FroeberJ

---------------------------

End of New-News digest
**********************


From daemon@csg.lbl.gov  Wed Dec 31 04:00:41 1997
From: daemon@csg.lbl.gov
Date: Wed Dec 31 04:00:45 PST 1997
Subject: comp.os.vxworks newsdigest
Comp.Os.Vxworks Daily Digest    Wed Dec 31 04:00:40 PST 1997

        Subject: Re: Strange SNMP GetNext behaviour
        Subject: Please tell me about all VME Applications.
        Subject: Moto MVME2303 ppc exceptions, interrupts, signals

-------------------------------------------------------

Newsgroups: comp.os.vxworks
Subject: Re: Strange SNMP GetNext behaviour
Date: Mon, 22 Dec 1997 18:19:15 -0600
From: "Douglas A. Gribben" <dgribben@ix.netcom.com>
Organization: Netcom
Message-ID: <349F0383.AC33644D@ix.netcom.com>
References: <199712200013.QAA20623@lbl.gov>

Salim Fakhouri wrote:
> 
> Basically, when a table is empty I see
> that the getNext function for this table
> is called several times. My function
> executes nextproc_no_next() so I do not
> understand why the SNMP agent calls it
> several times.
> 
  If the Manager issues a GetNext with multiple
varbinds and your function doesn't take responsibility
for all of them (that's what the for loop on vbp is
for in the sample code) the next method will get
called ad nauseum. It's harmless.

---------------------------

Newsgroups: comp.os.vxworks
Subject: Please tell me about all VME Applications.
Date: 28 Dec 1997 20:02:52 GMT
From: lsrsearch@aol.com (LSRsearch)
Organization: AOL http://www.aol.com
Message-ID: <19971228200200.PAA16397@ladder02.news.aol.com>

Help, I am looking for VME applications.
    Specifically, I am trying to come up with an exhaustive list of all the
applications for VME and down to as much detail/specifics as possible.  I am
creating a chart with the categories being:
Specific Application, CPU type, Competing/Replacement Technology, Leading OEMs,
Typical End-Products and Market Potential.
    Any help with my effort is greatly appreciated.  Responding directly to my
email address (LSRsearch@aol.com) is easier for me.

Thanks,
Lisa Solomon


---------------------------

Newsgroups: comp.os.vxworks
Subject: Moto MVME2303 ppc exceptions, interrupts, signals
Date: 30 Dec 97 20:43:40 GMT
From: "Shawn McCurdy" <gordon@magicnet.net>
Organization: ComsatRSI Baseband Technologies
Message-ID: <01bd1564$071e96c0$796f8586@smccurdy.comsatrsibb.com>

I am thoroughly confused regarding the handling of what the
various literature terms "exceptions" or "interrupts". I am
working in the Tornado 1.0.1 environment, PC-hosted, with
a MVME2303 (very similar to a 2603) PPC board.  I thought
that maybe signals were the way to go, but they really
only handle a subset of the exceptions listed in the PPC
literature. So looking in the VxWorks ref. manual, there
is an excArchLib and an intArchLib. Each one has a 
connect routine. Is there some difference between these
libraries - when does one use an exception handler as
opposed to an interrupt handler? The terms exception
and interrupt seem to be loosely interchangeable. And
when is it preferred to handle an exception with a signal
handler rather than using one of these other mechanisms?
If there are examples or better documentation on this stuff
that someone can point me at I would appreciate it. I am
finding Wind River's BSP and lack of documentation very
frustrating to deal with.

Shawn McCurdy
e-mail: gordon@magicnet.net



---------------------------

End of New-News digest
**********************


From rjpage@mit.edu  Wed Dec 31 05:29:08 1997
From: "Russell J. Page, Sr." <rjpage@mit.edu>
Date: Wed Dec 31 05:29:11 PST 1997
Subject: Advertising
Hi All:

I don't know about the rest of you out there, but I am getting pretty
fed up with the unsolicited advertising as of late. This is SUPPOSSED to
be a forum for users of vxWorks. I can accept "advertising" from WRS or
other vendors of products related to our work, however advertising for
life insurance, on-line gambling and just about any product you can
think of, is out of line. What's worse, is when these items these items
get incorporated into the daily digest.  Personally, I believe "help
wanted" ads are also out of place here, but TMHO.

Isn't there something that can be done, maybe require registration of
users, to eliminate some of this clutter ?

Russ
-- 
-----------------------------------------------------------------
|Russell J. Page, Sr.		    Phone (617) 253-9585	|
|MIT Bates Linear Accelerator Ctr.  FAX   (617) 253-9799	|
|PO Box 846			    email :rjpage@mit.edu	|
|Middleton, MA  01949		    http://mitbates.mit.edu/	|
-----------------------------------------------------------------



From chenyc@fnal.gov  Wed Dec 31 08:47:43 1997
From: Yenchu Chen <chenyc@fnal.gov>
Date: Wed Dec 31 08:47:46 PST 1997
Subject: Re: Advertising
Hi,

   I agree with Russ that we should at least try to keep this forum
clean. Anything being put out here should be VxWorks or at least VME
related.

   Best regards,      Yen-Chu Chen
                      chenyc@fnal.gov
                      (630) 840-8871 (experiment)
                      (886)-(2) 789-9681 (Inst. of Phys., Academia Sinica)



From mabrouk@nortel.ca  Wed Dec 31 10:07:17 1997
From: "Mabrouk Aboughanaima" <mabrouk@nortel.ca>
Date: Wed Dec 31 10:07:20 PST 1997
Subject: Compiling vxWorks with gdwarf option
Hi All,

I'm developing a C++ application using vxWorks 5.3.1 for a PowerPC860
platform. I need to connect interrupt service routines to handle external =

interrupts. My code works fine for edge interrupt but I can not get to work=
 =

for LEVEL interrupts it seems to hang or crash VxWorks OS and I have to reb=
oot =

to establish the Tornado connection. =


Here is how I'm coding the interrupts for edge triggered.

unsinged long immrBase =3D vxImmrGet();

intConnect(IV_IRQ1, isr, 0);

*SIEL(immrBase) |=3D SIEL_ED1;   //Set for edge interrupt
*SIMASK(immrBase) |=3D SIMASK_IRM1; // set the mask bit for IRQ1

//Here is the isr function

void isr(void)
{

   unsigned long immrBase2 =3D vxImmrGet();

   *SIPEND(immrBase2) =3D SIPEND_IRQ1;

   // handle the interrupt here

}

As I said this code works fine all time. But the following code which is ve=
ry similar to the above execpt I set the bit for LEVEL instead of EDGE does=
 not work

Please if you see anything wrong let me know as soon as possible.

unsinged long immrBase =3D vxImmrGet();

intConnect(IV_IRQ1, isr, 0);

*SIEL(immrBase) &=3D ~(SIEL_ED1);   //Set for LEVEL ie clear that bit
*SIMASK(immrBase) |=3D SIMASK_IRM1; // set the mask bit for IRQ1

//Here is the isr function

void isr(void)
{

   unsigned long immrBase2 =3D vxImmrGet();

   *SIPEND(immrBase2) =3D SIPEND_IRQ1;

  //handle the interrupt - =

}

Any help will be greatly apprecaited. Please e_mail or call me.

Thanks a million.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  Mabrouk Aboughanaima            + Tel: (613) 763-6000         +
+  CDMA Radio Software             +      ESN:  393-6000         +
+  Nortel Wireless Networks        + FAX: (613) 763-2686         +
+  P.O. Box 3511, Station 'C'      + Internet: mabrouk@nortel.ca +
+  Ottawa K1Y 4H7 Canada           +                             +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++         =
      =

                                                           =

                                            =