Commit Graph
610 Commits
Author SHA1 Message Date
Andrew Johnson 0f6fd8fff7 Improve 'help' self-description message 2025-06-04 09:52:44 -05:00
Andrew Johnson 42e7cbc71d Add color to the softIoc verbose output 2025-06-04 09:52:44 -05:00
Andrew Johnson 52d9ef1d20 Improve iocsh tests, update extected output 2025-06-04 09:52:44 -05:00
Andrew Johnson c0da3dd1f9 Make default iocsh prompt green
The bldEnvData.pl script now syntax-checks the envParam
default values, allowing ANSI color macros to be used
in the IOCSH_PS1 parameter.
2025-06-04 09:52:44 -05:00
Andrew Johnson 55d918e74c Add more colour to iocsh output messages
Includes some unification of error text, narrower wrap margin.
'var' output now lists the variable types.
2025-06-04 09:52:44 -05:00
Jeremy Lorelliandmdavidsaver 8e29e13a13 setBootConfigFromNVRAM.c: Fix warning due to discarded qualifiers & mismatched type 2025-05-02 07:28:22 -07:00
zimochandAndrew Johnson b833f12129 fix epicsStrtod for 32 bit architectures 2025-04-23 09:25:17 -05:00
Michael Davidsaver f827bd7e34 true is C23 keyword 2025-04-15 16:10:34 -07:00
Jeremy LorelliandAndrew Johnson 6ea6ae633b Define NOCRYPT, NOSOUND and NOKANJI before including windows.h 2025-03-19 11:19:45 -05:00
JJL772andAndrew Johnson fc5d3c9a5c Disable extraneous WIN32 declarations when including windows.h in epicsAtomicOSD.h 2025-03-19 11:19:45 -05:00
zimochandAndrew Johnson c75ad2673e no longer need extern "C" { } around epicsExport macros 2025-03-19 11:17:14 -05:00
zimochandAndrew Johnson b97a35fec8 Don't use __attribute__((noreturn)) on VxWorks
VxWorks does not mark abort() or exit() as noreturn.
Thus, functions declared noreturn which end in a call
to those functions cause a compiler warning on vxWorks.
2025-03-19 11:06:26 -05:00
Michael DavidsaverandAndrew Johnson 48ebe2c64e Avoid initMainThread() except on vxworks
Move isOkToBlock tracking to osdThread.
Targets except vxworks can store this flag in epicsThreadOSD.
Continue to use TLS w/ vxWorks.

Note that setting of isOkToBlock for "main" thread becomes lazy.
2025-03-19 10:53:42 -05:00
Michael DavidsaverandAndrew Johnson 13d6ca598c initHookRegister() make idempotent and MustSucceed 2025-03-05 10:02:38 -06:00
zimochandAndrew Johnson ee1a49045a support CROSS_COMPILER_RUNTESTS_ARCHS other than RTEMS 2025-03-05 10:00:44 -06:00
zimochandAndrew Johnson 43e75e3901 decorate functions that do not return 2025-03-05 09:51:57 -06:00
Michael Davidsaver 7384351181 clarify cantProceed() message 2025-02-18 07:30:51 -08:00
Michael Davidsaver 1d19ba4cc2 doc and log for *MustSucceed()
Replace the "never returns NULL." statement which is
manifestly not true.
2025-02-07 09:09:22 -08:00
JJL772andAndrew Johnson 144f9756ea Add iocshSetError in a bunch of places 2025-02-05 10:16:16 -06:00
DWandAndrew Johnson 48eed22f3b check IOCSH_STARTUP_SCRIPT before set 2025-02-05 10:03:35 -06:00
Michael Davidsaver e4ad4becde rationalize osdMutex
Avoids split allocation.
Eliminates special case free-list.

win32: eliminate pre-XP
rtems-score: eliminate non-fast
2024-12-29 16:35:26 -08:00
Jeremy LorelliandMichael Davidsaver 721e9cc3a7 Add ABORT_ON_ASSERT flag to CONFIG_SITE
This flag causes EPICS to call abort() on assertion failures rather than
suspend the executing thread. With the epicsThreadSuspendSelf() behavior,
an IOC can end up in a difficult to detect error state where one or more
threads has essentially crashed due to an assertion failure.

This also matches the C behavior of assert(3)
2024-12-29 16:34:10 -08:00
Jeremy Lorelliandmdavidsaver 333be085c0 Fix compile error in tsSLList.h 2024-12-28 12:40:27 -08:00
Chris JohnsandAndrew Johnson 594e5ee9db rtems: Set the name of EPICS threads so RTEMS commands report the name
Use the NP POSIX call pthread_setname_np to set the POSIX thread name.
2024-10-31 16:21:49 -05:00
Chris JohnsandAndrew Johnson 135193c4bd rtems: Fix shell networking commands
This patch cleans up the shell defines for the libbsd and legacy
network stack shell commands.

The top and rtems shell commands have been added.
2024-10-31 16:21:49 -05:00
Chris JohnsandAndrew Johnson 9d65da5c61 rtems: Fix rtems_bsdnet_bootp_server_address decl with RTEMS_LEGACY_STACK
The legacy stack provides this variable and this decl clashed. This was
seen before now due to the link order of libraries.
2024-10-31 16:21:49 -05:00
Chris JohnsandAndrew Johnson 83cbf8a4c7 freebsd: Add support for x86 and amd64 builds
Use the OS compiler, ie cc and c++.
2024-10-31 16:16:45 -05:00
Michael DavidsaverandAndrew Johnson f6cd43b7cc asTrap serverSpecific is dbChannel
Save/restore dbAddr::pfield around callbacks to
avoid corruption if CB forgets to restore.

Need to peak at dbChannel.h during libCom build.
So generate dbCoreAPI.h early, and add extra
-I to source location when compiling dbTrapWrite.c
2024-10-31 12:30:15 -05:00
Michael DavidsaverandAndrew Johnson 152d306ad8 avoid UB with self pthread_join() 2024-10-02 09:22:00 -05:00
Michael DavidsaverandAndrew Johnson 012139638d posix: epicsThreadCreateOpt() avoid leak of joinable on EPERM
On a system where RT priorities have been probed.
When creating a joinable thread, but still fails
with EPERM, the first epicsThreadOSD was leaked.
2024-10-02 09:22:00 -05:00
Érico Nogueiraandmdavidsaver 8045770751 libCom: don't use std::unexpected in epicsThread.
Besides being deprecated in C++11 and removed in C++17, the intended use
case for this was always wrong, since std::unexpected() is called by the
C++ runtime when a function throws an exception that was not specified
in its "dynamic exception specification", which is different from an
exception thrown by user code which wasn't caught [1,2]. Using abort()
keeps the same behavior, but with the intended semantics.

We don't use std::abort() to simplify backwards compatibility.

[1] https://github.com/epics-base/epics-base/issues/343
[2] https://en.cppreference.com/w/cpp/error/unexpected
2024-09-09 07:27:32 -07:00
Chris JohnsandAndrew Johnson c5f5e4e508 rtems: Allow site local override of the default tick period
Add to configure/CONFIG_SITE.local:

 OP_SYS_CFLAGS += -DCONFIGURE_MICROSECONDS_PER_TICK=1000
2024-09-04 09:59:13 -05:00
Freddie AkeroydandAndrew Johnson dd154180bf Avoid isnan/isinf redefine in c++ on VS2013 and above 2024-09-04 09:48:03 -05:00
Freddie AkeroydandAndrew Johnson 574fe116fc protect isnan/isinf define on c++ 2024-09-04 09:48:03 -05:00
Michael DavidsaverandAndrew Johnson 057eb87101 readline: only keep history for interactive session 2024-08-21 09:36:39 -05:00
Michael Davidsaver 6ca716a77f iocsh: add more iocshSetError() 2024-06-11 13:52:03 -07:00
Michael Davidsaver 77490d4939 space in errPrintf() output 2024-06-11 11:14:07 -07:00
Érico Nogueiraandmdavidsaver 1a9dc993c1 Fix gmtime messages in epicsTimeZoneTest. 2024-04-29 15:10:47 -07:00
Freddie AkeroydandAndrew Johnson 5dfc6caf3c Accept should return SOCKET rather than int 2024-03-06 09:48:26 -06:00
Freddie AkeroydandAndrew Johnson 4720b61c1f Move call to setThreadName()
The call to setThreadName() is moved to avoid a race condition that
can happen with very short lived processes. If the process terminates
very quickly e.g. is a google test runner or the msi.exe command
called from a Makefile during a build, then very occasionally a
crash can occur during process termination if setThreadName() when called
from the newly created thread. This looks to be becauae the DLL it is
trying to call gets unloaded between it getting a handle to the DLL
and making the call. Moving the setThreadName() call to the creating
thread avoids this problem. The issue was only ever seen with statically
linked epics executables, I am unsure if the way a DLL based epics
program unloads might avoid this, or just make it less likely but
still possible. As mentioned above, the issue will only ever occur
to threads that are created during process termination and so would
not affect running IOCs
2024-02-21 09:59:36 -06:00
Michael Davidsaver 07cbf00187 posix: warn on epicsSocketCreate() without osiSockAttach() 2023-12-22 10:26:28 -08:00
Michael Davidsaver 403e203325 quieting clang-tidy, use unsigned
places where we shouldn't be negative anyway
2023-12-22 10:26:28 -08:00
Michael Davidsaver a7a56912eb default/epicsMessageQueue: initialize threadNode 2023-12-22 10:26:28 -08:00
Michael Davidsaver fe4a32e425 default/epicsMessageQueue: avoid volatile flag
Only one place where eventSent was accessed
without locking.  Move this load earlier.
2023-12-22 10:26:28 -08:00
Michael Davidsaver 823386573f ipAddrToAsciiGlobal::run() keep scratch buffer as local 2023-12-22 10:26:28 -08:00
Michael Davidsaver ea8247586f adjustToWorstCaseAlignment() simplify
Add some STATIC_ASSERT to check assumptions.

Only in-tree use is freeListLib to ensure chunks in
a malloc()'d block are aligned.
2023-12-22 10:26:28 -08:00
Andrew Johnson 331df3d7e4 UNRELEASED => 7.0.8 2023-12-14 16:42:10 -06:00
Andrew Johnson 2e6fd505d2 Use epicsSnprintf() for old MSVC compilers 2023-12-14 11:31:36 -06:00
Andrew Johnson 5ecf7d18a8 Clean up Clang 15 sprintf() warnings in libcom and ca 2023-12-13 13:34:25 -06:00
Andrew Johnson 56dbc949ff Add declarations to flex, cleans up Clang 15 warnings. 2023-12-12 13:44:08 -06:00