Commit Graph

3596 Commits

Author SHA1 Message Date
a3354f5db9 libCom: NTP Time Provider adjusts to OS tick rate changes
Allow the NTP Time provider (used on VxWorks and RTEMS only)
to adapt to changes in the OS clock tick rate after the provider
has been initialized.

Changing the tick rate after iocInit() is not advisable,
other software might still misbehave if initialized before
an OS tick rate change.
2014-02-13 10:09:12 -06:00
Andrew Johnson
e1e389a2dd Low-memory behaviour fixes.
Fix unchecked buffer allocation in dbChannel.c
Replace calls to epicsStrDup() with checked malloc() for
things that happen often after iocInit.

Michael Davidsaver pointed out this issue.
2014-02-07 17:19:28 -06:00
Andrew Johnson
502366fdc3 epicsMutex C++ API: New constructor and newEpicsMutex macro
The new constructor accepts source file & line number.
The macro passes these in.
2014-02-07 14:13:12 -06:00
Andrew Johnson
b32127c5de libCom: Fix epicsTime::strftime() roll-over bug
Fractional seconds could round-up to .000 without
incrementing the integer seconds.
We can't actually do the latter, so we prevent the
roll-over and clamp at all 9's instead.
Idea from Eric Norum.
2014-01-29 16:52:22 -06:00
Michael Davidsaver
746c739769 add epicsStrnLen()
Base currently requires only POSIX 2001 while
strnlen() is part of POSIX 2008.
2014-01-11 10:58:39 -05:00
Andrew Johnson
dbb8d232ee libCom/test: Losen the timer error threshold.
Windows was consistently failing the fastest timer tests.
2013-12-17 17:13:27 -06:00
unknown
b93601bc22 libCom/test: epicsStrGlobMatch() tests 2013-12-17 16:37:46 -06:00
Andrew Johnson
9e37ab649b libCom: Clear up warnings from VxWorks 6.9. 2013-12-17 14:19:18 -06:00
Andrew Johnson
0a2020e2fc Merged changes from 3.14 branch
Up to 3.14.12.4 release.
2013-12-17 12:54:04 -06:00
Andrew Johnson
97636a45e0 libCom: Remove epicsShareAPI from epicsExit APIs
Passing epicsExitCallAtExits into atexit() was generating
a warning about passing in a __stdcall routine pointer.
2013-12-16 14:52:29 -06:00
Andrew Johnson
a50c66b6ff libCom/test: Added epicsEnvTest.c
VxWorks 6.x can make environment variables private to each
thread, which doesn't work too well.
A test failure on VxWorks explains how to change the image
configuration to fix this.
2013-12-16 12:48:25 -06:00
Andrew Johnson
197e992241 Fixed iocsh stream redirection for several commands
Eric provided the fixes to iocsh (empty commands would not reset
redirected streams), I fixed various commands.
2013-12-11 17:50:29 -06:00
Andrew Johnson
78a4e462d5 libCom: Recognize hex literals in epicsStrtod()
Allows Windows and VxWorks to accept hex integers as a double.
2013-12-02 11:12:19 -06:00
Michael Davidsaver
841d66993a test epicsMMIO.h
Check byte order swapping.
2013-11-30 16:40:07 -05:00
Michael Davidsaver
d24ed309e9 fix copyright header 2013-11-30 15:31:59 -05:00
Jeff Hill
b38e48642e probably fixed PPC build (its not easy to test this here) 2013-11-20 17:55:44 -07:00
Andrew Johnson
773eb1b33d Clean up array subscript has type ‘char’ warnings. 2013-11-20 17:28:41 -06:00
Jeff Hill
0a86ec01fa o fixed spelling in comments
o fixed warnings during MSVC based build
2013-11-20 10:51:14 -07:00
Andrew Johnson
93be1400c1 Fixed various 64-bit windows build issues. 2013-11-19 18:42:45 -06:00
Andrew Johnson
176ee926ad cygwin: Fixed SocketSystemCallInterruptMechanism
Cygwin changed it back again.
2013-11-19 18:41:03 -06:00
Andrew Johnson
2d52067484 libCom: Clean up build warnings from Visual Studio. 2013-11-19 15:26:22 -06:00
Andrew Johnson
4d64941bd2 libCom: truncateFile size arg should be unsigned long
It gets compared against LONG_MAX and cast to a long, so now
we have architectures where int != long we must distinguish them
2013-11-15 17:24:33 -06:00
Andrew Johnson
66209118f6 libCom/macLib: Don't use unsigned chars in macParseDefns()
These pointers are really pointing to standard chars.
2013-11-13 12:39:23 -06:00
Andrew Johnson
f146f9ea6e Move the string array declarations into alarm.h
This also removes all internal use of alarmString.h which
is now deprecated again (see 3.14.5, Jan 2004).
2013-11-12 16:18:17 -06:00
Jeff Hill
280ff742c5 fix for mingw gcc V3 build 2013-11-07 18:56:17 -07:00
Jeff Hill
6f67091628 fixed ms compiler build 2013-11-07 17:37:17 -07:00
Jeff Hill
36d801682b oops, variable used to be unsigned; changed to signed constant 2013-11-07 14:59:30 -07:00
Jeff Hill
4d54b91a3a o fixed compile errors in, and proper diagnostic from, casPVI.cc
o suprressed some compile time warnings in bucketLib.c
o cleaned up cxx templates README
o removed use of tsMinMax from libCom in favor of the standard library 
     (calls to  tsMinMax still exist in other components in base, but they are being removed)
o removed sharable library export of certain private member functions from class fdManager
o fixed aToIPAddr to correctly lookup all of the different IP addresses string types on all OS types
    independent of the OS interfae variations
o removed use of inet_aton from vxWorks implementation of hostToIPAddr
   o this function is for converting a host name to an ip address _only_
   o the aToIPAddr wrapper is supposed to do the dotted ip ascii string to ip address structure 
   conversion independent of OS spoecific interface variations, when it works correctly
o fixed some spelling issues in comments
o added additional optimizations for processors w/o floating point ALU to addNanoSec in epicsTime
o removed tabs and junk comments from win32 osdProcess.c
o moved PLL update in win32 osdTime.c from timer to a dedicated thread
o added missing epicsExportShared symbols define to osiNTPTime.c
o fixed server ctor should not modify arguments of its caller in blockingSockTest
o removed sunpro specific ifdef nolomger needed from epicsTimeTest.cpp
2013-11-07 10:26:03 -07:00
Andrew Johnson
72d65c60a4 epicsErrlogTest: Shorten output lines
Shorten test output from long messages.
2013-09-20 13:44:28 -05:00
Michael Davidsaver
01041abd32 rtems: mmio for m68k 2013-08-23 18:14:56 -04:00
Andrew Johnson
2ecf8803c3 Move alarm string arrays into libCom
Using idea from Peter Heesterman:
 * Instanciate the alarm strings once in libCom
 * Remove the epicsAlarmGlobal macro
 * Make sure the decorations are right
2013-08-20 16:59:28 -05:00
Andrew Johnson
01f0fdbf1e More file permission fixes. 2013-08-19 15:46:51 -05:00
Janet Anderson
d3b6d01807 Added WIN32 system library for epicsSockResolveTest 2013-07-17 15:55:49 -05:00
Andrew Johnson
c96db4c877 libCom: Replaced errlogRemoveListener()
New version errlogRemoveListeners() is safer.
2013-06-28 12:35:43 -05:00
Andrew Johnson
2be5e15346 Merged changes from 3.14 branch
Up to revno 12420 inclusive.
2013-06-07 18:08:38 -05:00
Andrew Johnson
ef5d88d3e5 libCom: Back-ported aToIPAddr fix from 3.15 branch.
Cherry-picked 3.15 revno 12398 with some changes.
2013-06-07 17:03:55 -05:00
Andrew Johnson
863e8fdd3b libCom: Fix VxWorks localtime_r() and gmtime_r() wrappers
Wind River changed the return value between VxWorks 6.8 and 6.9.
2013-06-07 14:35:45 -05:00
Andrew Johnson
7f82c2f32e libCom: Added osi/os/WIN32/osdFindSymbol.c
Implemented by Dirk Zimoch.
2013-05-28 14:16:22 -05:00
Andrew Johnson
7addfc8ddd libCom/test: Make epicsUnitTestTest.plt more Perlish
Use Perl's __DATA__ stream for the expected data string.
2013-05-24 15:33:56 -05:00
Michael Davidsaver
6347b1daf9 add MMIO API
From devLib2
adds calls to handle 8, 16, and 32 bit
Memory Mapped I/O reads and writes.

Adds X_iowriteY() and X_ioreadY().

where X is nat (native), be, or le.
Y is 16 or 32.

Also adds ioread8() and iowrite8().
2013-05-10 16:22:16 -04:00
Andrew Johnson
34744264e1 libCom: Fix win32 handle leak
Closing an epicsThread would leak one Win32 handle.
Reported by Giles Knap, Diamond.
2013-05-06 17:29:10 -05:00
Andrew Johnson
7e347b2de9 libCom: Fix sysAtReboot registration on vxWorks 6.8+
Removed C++ static constructor, do it from epicsThreadInit()
2013-04-24 12:52:05 -05:00
Andrew Johnson
5bc15b72a1 libCom: Add some missing #include guards.
There are still quite a few missing in libCom/osi/os/*
2013-04-11 12:56:56 -05:00
Ralph Lange
8abb1ed255 libCom/test: add test for thread safe (spinlocked) ringPointer buffer 2013-03-29 17:24:11 +01:00
Ralph Lange
d6f5b50550 libCom/ring: add thread safe versions of ring buffers (using spinlocks) 2013-03-29 17:23:24 +01:00
Andrew Johnson
f9a0c82a63 libCom/osi: Resolve bcopyLongs() conflict on vxWorks 6.9 2013-03-28 17:17:41 -05:00
Ralph Lange
90b9965caf libCom/osi: add epicsThreadGetCPUs()
* Implementation for posix and WIN32 tries to get the CPUs available for this process,
   rather than the complete number of CPUs in the system.
 * For the time being, vxWorks returns 1. (This will have to change for vxWorks SMP.)
2013-03-28 15:03:29 +01:00
Ralph Lange
64a2e4e19b libCom/osi: Make EPICS ID in epicsThreadShow 2 characters wider (for 64bit) 2013-03-27 10:56:34 +01:00
Andrew Johnson
4f9928bc3c Merged changes from 3.14 branch
Up to revno 12404.
2013-03-15 15:23:55 -05:00
Andrew Johnson
738b8ca55f libCom: Add a High-Resolution Time Provider on MacOS
Since Apple don't support clock_gettime(CLOCK_REALTIME) I added a
new time provider that uses the Mach kernel Clock service to get
nanosecond resolution time.
2013-03-13 14:48:34 -05:00