Jerzy Jamroz
45b2be0171
refactor: Extra blank space after #include-s.
2025-06-20 15:42:47 -05:00
Jerzy Jamroz
1468319f31
refactor: Format change
...
* 4 space indentation
* epicsStdoutPrintf to printf
2025-06-20 15:42:47 -05:00
Jerzy Jamroz
82994d600f
perf: Extra safety with strlen(cmd).
2025-06-20 15:42:47 -05:00
Jerzy Jamroz
8752372af1
build: atInit module moved to libcom.
2025-06-20 15:42:47 -05:00
c9f80d82cc
silence Codacy warning
2025-06-04 12:43:27 -05:00
Michael Davidsaver
93f6c4692f
fdManagerTest: quiet codacy warnings
2025-06-04 12:43:27 -05:00
72ca94e04c
cleanup coding style in fdManager
2025-06-04 12:43:27 -05:00
3de1d93059
fdManager: filter poll flags for Window's sake
2025-06-04 12:43:27 -05:00
8855d15a3b
make fdManagerPrivate::fdReg volatile to avoid codacy warning
2025-06-04 12:43:27 -05:00
87bb7d430f
use smart pointers in fdManager
2025-06-04 12:43:27 -05:00
3963b35c17
fix codacy warning: make fdManagerPrivate constructor explicit
2025-06-04 12:43:27 -05:00
ec5badc737
fdManager uses poll() on Darwin too
2025-06-04 12:43:27 -05:00
ca48a217a5
Keep implementation details of fdManager out of header file
2025-06-04 12:43:27 -05:00
27db57d386
fdManager use std::vector
2025-06-04 12:43:27 -05:00
02d25c3c48
fdManager uses poll() on Windows and RTEMS too
...
RTEMS needs to use the "new" network stack
Windows has poll since Vista
Don't use poll on cygwin: it emulates poll() using select().
2025-06-04 12:43:27 -05:00
4d63e65b9d
fdManager changed to use poll()
...
The implementation using select() limits file desciptors to FD_SETSIZE,
typically 1024 on Linux. This number is too low for some applications,
for example for the CA gateway.
Therefore, Linux builds use poll() instead.
2025-06-04 12:43:27 -05:00
Michael Davidsaver
9731d07e68
add fdManager test
2025-06-04 12:43:27 -05:00
Michael Davidsaver
3daba7803b
remove fdmgrTest
...
Not a unittest, and not functional.
2025-06-04 12:43:27 -05:00
ea402b0f73
fix for architectures where sizeof(void*) > sizeof(long), i.e. windows-x64
2025-06-04 10:14:59 -05:00
Érico Nogueira
21368dc7b4
Don't include linux/ header in osdSockUnsentCount.
...
Per the manpage in the file's comment, SIOCOUTQ is equivalent to the
TIOCOUTQ ioctl, whose value can be obtained by including <sys/ioctl.h>,
which allows us to avoid including any system-specific headers. This is
desirable so that, on a musl system, it won't be necessary to install
kernel headers in order to build epics-base.
Since it's first been checked into Git, the Linux kernel has defined
SIOCOUTQ to be TIOCOUTQ [1].
From the three main libc options on Linux: glibc and uclibc use the
kernel headers, so both ioctls are available; and musl defines only
TIOCOUTQ in their own headers.
[1] 1da177e4c3
2025-06-04 09:55:04 -05:00
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 Lorelli
8e29e13a13
setBootConfigFromNVRAM.c: Fix warning due to discarded qualifiers & mismatched type
2025-05-02 07:28:22 -07:00
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 Lorelli
6ea6ae633b
Define NOCRYPT, NOSOUND and NOKANJI before including windows.h
2025-03-19 11:19:45 -05:00
JJL772
fc5d3c9a5c
Disable extraneous WIN32 declarations when including windows.h in epicsAtomicOSD.h
2025-03-19 11:19:45 -05:00
c75ad2673e
no longer need extern "C" { } around epicsExport macros
2025-03-19 11:17:14 -05:00
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 Davidsaver
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 Davidsaver
13d6ca598c
initHookRegister() make idempotent and MustSucceed
2025-03-05 10:02:38 -06:00
ee1a49045a
support CROSS_COMPILER_RUNTESTS_ARCHS other than RTEMS
2025-03-05 10:00:44 -06:00
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
JJL772
144f9756ea
Add iocshSetError in a bunch of places
2025-02-05 10:16:16 -06:00
DW
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 Lorelli
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 Lorelli
333be085c0
Fix compile error in tsSLList.h
2024-12-28 12:40:27 -08:00
Chris Johns
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 Johns
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 Johns
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 Johns
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 Davidsaver
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 Davidsaver
152d306ad8
avoid UB with self pthread_join()
2024-10-02 09:22:00 -05:00
Michael Davidsaver
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