diff options
-rw-r--r-- | doc/dlt.conf.5.md | 7 | ||||
-rw-r--r-- | src/daemon/dlt-daemon.c | 20 | ||||
-rw-r--r-- | src/daemon/dlt.conf | 1 |
3 files changed, 22 insertions, 6 deletions
diff --git a/doc/dlt.conf.5.md b/doc/dlt.conf.5.md index 8109c27..aeb2dfc 100644 --- a/doc/dlt.conf.5.md +++ b/doc/dlt.conf.5.md @@ -103,6 +103,13 @@ The step size the Ringbuffer is increased, used for storing temporary DLT messag Default: 500000 +## Daemon FIFOSize + +The size of Daemon FIFO (MinSize: depend on pagesize of system, MaxSize: please check `/proc/sys/fs/pipe-max-size`) +This is only supported for Linux. + + Default: 65536 + ## ContextLogLevel Initial log-level that is sent when an application registers. DLT_LOG_OFF = 0, DLT_LOG_FATAL = 1, DLT_LOG_ERROR = 2, DLT_LOG_WARN = 3, DLT_LOG_INFO = 4, DLT_LOG_DEBUG = 5, DLT_LOG_VERBOSE = 6 diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c index c09a809..fd7d3e5 100644 --- a/src/daemon/dlt-daemon.c +++ b/src/daemon/dlt-daemon.c @@ -553,12 +553,6 @@ int option_file_parser(DltDaemonLocal *daemon_local) value, &(daemon_local->RingbufferStepSize)) < 0) return -1; } - else if (strcmp(token, "DaemonFIFOSize") == 0) - { - if (dlt_daemon_check_numeric_setting(token, - value, &(daemon_local->daemonFifoSize)) < 0) - return -1; - } else if (strcmp(token, "SharedMemorySize") == 0) { daemon_local->flags.sharedMemorySize = atoi(value); @@ -714,6 +708,15 @@ int option_file_parser(DltDaemonLocal *daemon_local) } #ifdef DLT_DAEMON_USE_FIFO_IPC + else if (strcmp(token, "DaemonFIFOSize") == 0) + { + if (dlt_daemon_check_numeric_setting(token, + value, &(daemon_local->daemonFifoSize)) < 0) + return -1; +#ifndef __linux__ + printf("Option DaemonFIFOSize is set but only supported on Linux. Ignored.\n"); +#endif + } else if (strcmp(token, "DaemonFifoGroup") == 0) { strncpy(daemon_local->flags.daemonFifoGroup, value, NAME_MAX); @@ -1375,11 +1378,16 @@ static int dlt_daemon_init_fifo(DltDaemonLocal *daemon_local) return -1; } /* if */ +#ifdef __linux__ + /* F_SETPIPE_SZ and F_GETPIPE_SZ are only supported for Linux. + * For other OSes it depends on its system e.g. pipe manager. + */ if (daemon_local->daemonFifoSize != 0) { /* Set Daemon FIFO size */ if (fcntl(fd, F_SETPIPE_SZ, daemon_local->daemonFifoSize) == -1) dlt_vlog(LOG_ERR, "set FIFO size error: %s\n", strerror(errno)); } +#endif /* Get Daemon FIFO size */ if ((fifo_size = fcntl(fd, F_GETPIPE_SZ, 0)) == -1) diff --git a/src/daemon/dlt.conf b/src/daemon/dlt.conf index ab2a9bd..7e19817 100644 --- a/src/daemon/dlt.conf +++ b/src/daemon/dlt.conf @@ -61,6 +61,7 @@ RingbufferMaxSize = 10000000 RingbufferStepSize = 500000 # The size of Daemon FIFO (/tmp/dlt) (Default: 65536, MinSize: depend on pagesize of system, MaxSize: please check /proc/sys/fs/pipe-max-size) +# This is only supported for Linux. # DaemonFIFOSize = 65536 # Initial log-level that is sent when an application registers (Default: 4) |