Commit Graph
649 Commits
Author SHA1 Message Date
zimoch 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
zimoch 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
zimoch 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] https://github.com/torvalds/linux/commit/1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
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 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
zimoch f7778539e8 make CALC/OCAL fields twice as long 2025-05-23 11:42:17 +02:00
zimoch 45ea3d5664 extend calc records and expressions to inputs A-U 2025-05-22 16:34:16 +02:00
zimoch 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
zimoch 997746e5e2 fix epicsStrtod for 32 bit architectures 2025-03-21 15:16:25 +01:00
zimoch 09f96d056a Merge branch '7.0' into PSI-7.0 2025-03-21 15:15:57 +01:00
zimoch 1732c9440a fix for mingw warning about order of header files 2025-03-21 13:49:05 +01:00
zimoch acf4c92697 fix epicsExport for volatile and const variables 2025-03-21 13:49:04 +01:00
zimoch 93ba98cdca VxWorks does not mark abort() or exit() noreturn 2025-03-21 13:49:04 +01: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
zimoch c75ad2673e no longer need extern "C" { } around epicsExport macros 2025-03-19 11:17:14 -05:00
zimoch 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
zimoch 43e75e3901 decorate functions that do not return 2025-03-05 09:51:57 -06:00
zimoch 2e77bc8cc1 improve atExit debugging 2025-03-05 11:21:19 +01:00
zimoch ea7459084e Merge remote-tracking branch 'github/noreturn' into PSI-7.0 2025-03-04 17:55:32 +01:00
zimoch ddc49e9f79 Merge remote-tracking branch 'github/epicsExportAddress' into PSI-7.0 2025-03-04 17:55:15 +01:00
zimoch c5315d95b8 no longer need extern "C" { } around epicsExport macros 2025-03-04 17:45:04 +01:00
zimoch 74d231b04f decorate functions that do not return 2025-03-04 14:41:05 +01:00
zimoch 23521e0a08 Merge remote-tracking branch 'github/fdManager_using_poll' into PSI-7.0 2025-03-03 17:20:13 +01:00
zimoch 55791ef470 Merge branch 7.0.9 into PSI-7.0 2025-03-03 17:19:23 +01:00
zimoch 7b2fb669ec Merge remote-tracking branch 'xiaoqiang/7.0' into PSI-7.0 2025-03-03 17:14:20 +01:00
Michael Davidsaver 7384351181 clarify cantProceed() message 2025-02-18 07:30:51 -08:00
zimoch 8f1a3888c6 cleanup coding style in fdManager 2025-02-10 08:47:59 +01:00
zimoch c9183b5241 fdManager: filter poll flags for Window's sake 2025-02-10 08:47:59 +01:00
zimoch c3f57ee818 make fdManagerPrivate::fdReg volatile to avoid codacy warning 2025-02-10 08:47:59 +01:00
zimoch 27f4261dfb use smart pointers in fdManager 2025-02-10 08:47:59 +01:00
zimoch 5eb9997791 fix codacy warning: make fdManagerPrivate constructor explicit 2025-02-10 08:47:59 +01:00
zimoch bfc2f832ec fdManager uses poll() on Darwin too 2025-02-10 08:47:59 +01:00
zimoch f09b235fce Keep implementation details of fdManager out of header file 2025-02-10 08:47:59 +01:00
zimoch ece031c88b fdManager use std::vector 2025-02-10 08:47:59 +01:00
zimoch cbbbd67843 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-02-10 08:47:59 +01:00
zimoch 57c0295024 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-02-10 08:47:59 +01: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
zimoch b53505d339 Merge branch '7.0' into PSI-7.0 2024-12-05 16:58:15 +01:00