diff options
Diffstat (limited to 'src/daemon')
-rwxr-xr-x | src/daemon/dlt-daemon.h | 414 | ||||
-rwxr-xr-x | src/daemon/dlt-daemon_cfg.h | 226 | ||||
-rw-r--r-- | src/daemon/dlt_daemon_common.h | 756 | ||||
-rwxr-xr-x | src/daemon/dlt_daemon_common_cfg.h | 238 |
4 files changed, 817 insertions, 817 deletions
diff --git a/src/daemon/dlt-daemon.h b/src/daemon/dlt-daemon.h index 022387a..d6cb91f 100755 --- a/src/daemon/dlt-daemon.h +++ b/src/daemon/dlt-daemon.h @@ -1,207 +1,207 @@ -/**
- * @licence app begin@
- * Copyright (C) 2012 BMW AG
- *
- * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
- * \author Alexander Wenzel <alexander.aw.wenzel@bmw.de> BMW 2011-2012
- *
- * \file dlt-daemon.h
- * For further information see http://www.genivi.org/.
- * @licence end@
- */
-
-
-/*******************************************************************************
-** **
-** SRC-MODULE: dlt-daemon.h **
-** **
-** TARGET : linux **
-** **
-** PROJECT : DLT **
-** **
-** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de **
-** Markus Klein **
-** **
-** PURPOSE : **
-** **
-** REMARKS : **
-** **
-** PLATFORM DEPENDANT [yes/no]: yes **
-** **
-** TO BE CHANGED BY USER [yes/no]: no **
-** **
-*******************************************************************************/
-
-/*******************************************************************************
-** Author Identity **
-********************************************************************************
-** **
-** Initials Name Company **
-** -------- ------------------------- ---------------------------------- **
-** aw Alexander Wenzel BMW **
-** mk Markus Klein Fraunhofer ESK **
-*******************************************************************************/
-
-/*******************************************************************************
-** Author Identity **
-********************************************************************************
-** **
-** Initials Name Company **
-** -------- ------------------------- ---------------------------------- **
-** aw Alexander Wenzel BMW **
-** mk Markus Klein Fraunhofer ESK **
-*******************************************************************************/
-
-#ifndef DLT_DAEMON_H
-#define DLT_DAEMON_H
-
-#include <limits.h> /* for NAME_MAX */
-
-#include "dlt_daemon_common.h"
-#include "dlt_user_shared.h"
-#include "dlt_user_shared_cfg.h"
-
-
-#include <dlt_offline_trace.h>
-#include <sys/time.h>
-
-
-/**
- * The flags of a dlt daemon.
- */
-typedef struct
-{
- int aflag; /**< (Boolean) Print DLT messages; payload as ASCII */
- int sflag; /**< (Boolean) Print DLT messages; payload as hex */
- int xflag; /**< (Boolean) Print DLT messages; only headers */
- int vflag; /**< (Boolean) Verbose mode */
- int dflag; /**< (Boolean) Daemonize */
- int lflag; /**< (Boolean) Send DLT messages with serial header */
- int rflag; /**< (Boolean) Send automatic get log info response during context registration */
- int mflag; /**< (Boolean) Sync to serial header on serial connection */
- int nflag; /**< (Boolean) Sync to serial header on all TCP connections */
- char evalue[NAME_MAX + 1]; /**< (String: ECU ID) Set ECU ID (Default: ECU1) */
- char bvalue[NAME_MAX + 1]; /**< (String: Baudrate) Serial device baudrate (Default: 115200) */
- char yvalue[NAME_MAX + 1]; /**< (String: Devicename) Additional support for serial device */
- char ivalue[NAME_MAX + 1]; /**< (String: Directory) Directory where to store the persistant configuration (Default: /tmp) */
- char cvalue[NAME_MAX + 1]; /**< (String: Directory) Filename of DLT configuration file (Default: /etc/dlt.conf) */
- int sharedMemorySize; /**< (int) Size of shared memory (Default: 100000) */
- int sendMessageTime; /**< (Boolean) Send periodic Message Time if client is connected (Default: 0) */
- char offlineTraceDirectory[256]; /**< (String: Directory) Store DLT messages to local directory (Default: /etc/dlt.conf) */
- int offlineTraceFileSize; /**< (int) Maximum size in bytes of one trace file (Default: 1000000) */
- int offlineTraceMaxSize; /**< (int) Maximum size of all trace files (Default: 4000000) */
- int loggingMode; /**< (int) The logging console for internal logging of dlt-daemon (Default: 0) */
- int loggingLevel; /**< (int) The logging level for internal logging of dlt-daemon (Default: 6) */
- char loggingFilename[256]; /**< (String: Filename) The logging filename if internal logging mode is log to file (Default: /tmp/log) */
- int sendECUSoftwareVersion; /**< (Boolean) Send ECU software version perdiodically */
- char pathToECUSoftwareVersion[256]; /**< (String: Filename) The file from which to read the ECU version from. */
- int sendTimezone; /**< (Boolean) Send Timezone perdiodically */
-} DltDaemonFlags;
-
-/**
- * The global parameters of a dlt daemon.
- */
-typedef struct
-{
- DltDaemonFlags flags; /**< flags of the daemon */
- int fp; /**< handle for own fifo */
- int sock; /**< handle for tcp connection to client */
- int fdserial; /**< handle for serial connection */
- int fdmax; /**< highest number of used handles */
- fd_set master; /**< master set of handles */
- fd_set read_fds; /**< read set of handles */
- DltFile file; /**< struct for file access */
- //int ohandle; /**< handle to output file */
- DltMessage msg; /**< one dlt message */
- DltReceiver receiver; /**< receiver for fifo connection */
- DltReceiver receiverSock; /**< receiver for socket connection */
- DltReceiver receiverSerial; /**< receiver for serial connection */
- int client_connections; /**< counter for nr. of client connections */
- size_t baudrate; /**< Baudrate of serial connection */
-#ifdef DLT_SHM_ENABLE
- DltShm dlt_shm; /**< Shared memory handling */
-#endif
- DltOfflineTrace offlineTrace; /**< Offline trace handling */
-#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE)
- int timer_wd; /** file descriptor for watchdog timer */
-#endif
- int timeoutOnSend;
- unsigned long RingbufferMinSize;
- unsigned long RingbufferMaxSize;
- unsigned long RingbufferStepSize;
- int timer_one_s;
- int timer_sixty_s;
-} DltDaemonLocal;
-
-typedef struct
-{
- int timer_fd;
- unsigned long long wakeups_missed;
-} DltDaemonPeriodicData;
-
-typedef struct
-{
- DltDaemon *daemon;
- DltDaemonLocal *daemon_local;
-} DltDaemonTimingPacketThreadData;
-
-typedef DltDaemonTimingPacketThreadData DltDaemonECUVersionThreadData;
-
-#define DLT_DAEMON_ERROR_OK 0
-#define DLT_DAEMON_ERROR_UNKNOWN -1
-#define DLT_DAEMON_ERROR_BUFFER_FULL -2
-#define DLT_DAEMON_ERROR_SEND_FAILED -3
-#define DLT_DAEMON_ERROR_WRITE_FAILED -4
-
-/* Function prototypes */
-void dlt_daemon_local_cleanup(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_local_init_p1(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_local_init_p2(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_local_connection_init(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_local_ecu_version_init(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-
-void dlt_daemon_daemonize(int verbose);
-void dlt_daemon_signal_handler(int sig);
-
-int dlt_daemon_process_client_connect(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_process_client_messages(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_process_client_messages_serial(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_process_user_messages(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-
-int dlt_daemon_process_user_message_overflow(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_send_message_overflow(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_process_user_message_register_application(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_process_user_message_unregister_application(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_process_user_message_register_context(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_process_user_message_unregister_context(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_process_user_message_log(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-#ifdef DLT_SHM_ENABLE
-int dlt_daemon_process_user_message_log_shm(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-#endif
-int dlt_daemon_process_user_message_set_app_ll_ts(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_process_user_message_log_mode(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-int dlt_daemon_process_user_message_marker(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-
-int dlt_daemon_send_ringbuffer_to_client(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-void dlt_daemon_timingpacket_thread(void *ptr);
-void dlt_daemon_ecu_version_thread(void *ptr);
-#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE)
- void dlt_daemon_systemd_watchdog_thread(void *ptr);
-#endif
-
-int create_timer_fd(DltDaemonLocal *daemon_local, int period_sec, int starts_in, int* fd, const char* timer_name);
-
-int dlt_daemon_close_socket(int sock, DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
-
-#endif /* DLT_DAEMON_H */
-
+/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel <alexander.aw.wenzel@bmw.de> BMW 2011-2012 + * + * \file dlt-daemon.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt-daemon.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_DAEMON_H +#define DLT_DAEMON_H + +#include <limits.h> /* for NAME_MAX */ + +#include "dlt_daemon_common.h" +#include "dlt_user_shared.h" +#include "dlt_user_shared_cfg.h" + + +#include <dlt_offline_trace.h> +#include <sys/time.h> + + +/** + * The flags of a dlt daemon. + */ +typedef struct +{ + int aflag; /**< (Boolean) Print DLT messages; payload as ASCII */ + int sflag; /**< (Boolean) Print DLT messages; payload as hex */ + int xflag; /**< (Boolean) Print DLT messages; only headers */ + int vflag; /**< (Boolean) Verbose mode */ + int dflag; /**< (Boolean) Daemonize */ + int lflag; /**< (Boolean) Send DLT messages with serial header */ + int rflag; /**< (Boolean) Send automatic get log info response during context registration */ + int mflag; /**< (Boolean) Sync to serial header on serial connection */ + int nflag; /**< (Boolean) Sync to serial header on all TCP connections */ + char evalue[NAME_MAX + 1]; /**< (String: ECU ID) Set ECU ID (Default: ECU1) */ + char bvalue[NAME_MAX + 1]; /**< (String: Baudrate) Serial device baudrate (Default: 115200) */ + char yvalue[NAME_MAX + 1]; /**< (String: Devicename) Additional support for serial device */ + char ivalue[NAME_MAX + 1]; /**< (String: Directory) Directory where to store the persistant configuration (Default: /tmp) */ + char cvalue[NAME_MAX + 1]; /**< (String: Directory) Filename of DLT configuration file (Default: /etc/dlt.conf) */ + int sharedMemorySize; /**< (int) Size of shared memory (Default: 100000) */ + int sendMessageTime; /**< (Boolean) Send periodic Message Time if client is connected (Default: 0) */ + char offlineTraceDirectory[256]; /**< (String: Directory) Store DLT messages to local directory (Default: /etc/dlt.conf) */ + int offlineTraceFileSize; /**< (int) Maximum size in bytes of one trace file (Default: 1000000) */ + int offlineTraceMaxSize; /**< (int) Maximum size of all trace files (Default: 4000000) */ + int loggingMode; /**< (int) The logging console for internal logging of dlt-daemon (Default: 0) */ + int loggingLevel; /**< (int) The logging level for internal logging of dlt-daemon (Default: 6) */ + char loggingFilename[256]; /**< (String: Filename) The logging filename if internal logging mode is log to file (Default: /tmp/log) */ + int sendECUSoftwareVersion; /**< (Boolean) Send ECU software version perdiodically */ + char pathToECUSoftwareVersion[256]; /**< (String: Filename) The file from which to read the ECU version from. */ + int sendTimezone; /**< (Boolean) Send Timezone perdiodically */ +} DltDaemonFlags; + +/** + * The global parameters of a dlt daemon. + */ +typedef struct +{ + DltDaemonFlags flags; /**< flags of the daemon */ + int fp; /**< handle for own fifo */ + int sock; /**< handle for tcp connection to client */ + int fdserial; /**< handle for serial connection */ + int fdmax; /**< highest number of used handles */ + fd_set master; /**< master set of handles */ + fd_set read_fds; /**< read set of handles */ + DltFile file; /**< struct for file access */ + //int ohandle; /**< handle to output file */ + DltMessage msg; /**< one dlt message */ + DltReceiver receiver; /**< receiver for fifo connection */ + DltReceiver receiverSock; /**< receiver for socket connection */ + DltReceiver receiverSerial; /**< receiver for serial connection */ + int client_connections; /**< counter for nr. of client connections */ + size_t baudrate; /**< Baudrate of serial connection */ +#ifdef DLT_SHM_ENABLE + DltShm dlt_shm; /**< Shared memory handling */ +#endif + DltOfflineTrace offlineTrace; /**< Offline trace handling */ +#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) + int timer_wd; /** file descriptor for watchdog timer */ +#endif + int timeoutOnSend; + unsigned long RingbufferMinSize; + unsigned long RingbufferMaxSize; + unsigned long RingbufferStepSize; + int timer_one_s; + int timer_sixty_s; +} DltDaemonLocal; + +typedef struct +{ + int timer_fd; + unsigned long long wakeups_missed; +} DltDaemonPeriodicData; + +typedef struct +{ + DltDaemon *daemon; + DltDaemonLocal *daemon_local; +} DltDaemonTimingPacketThreadData; + +typedef DltDaemonTimingPacketThreadData DltDaemonECUVersionThreadData; + +#define DLT_DAEMON_ERROR_OK 0 +#define DLT_DAEMON_ERROR_UNKNOWN -1 +#define DLT_DAEMON_ERROR_BUFFER_FULL -2 +#define DLT_DAEMON_ERROR_SEND_FAILED -3 +#define DLT_DAEMON_ERROR_WRITE_FAILED -4 + +/* Function prototypes */ +void dlt_daemon_local_cleanup(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_local_init_p1(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_local_init_p2(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_local_connection_init(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_local_ecu_version_init(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); + +void dlt_daemon_daemonize(int verbose); +void dlt_daemon_signal_handler(int sig); + +int dlt_daemon_process_client_connect(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_client_messages(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_client_messages_serial(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_messages(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); + +int dlt_daemon_process_user_message_overflow(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_send_message_overflow(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_register_application(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_unregister_application(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_register_context(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_unregister_context(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_log(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +#ifdef DLT_SHM_ENABLE +int dlt_daemon_process_user_message_log_shm(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +#endif +int dlt_daemon_process_user_message_set_app_ll_ts(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_log_mode(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_marker(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); + +int dlt_daemon_send_ringbuffer_to_client(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +void dlt_daemon_timingpacket_thread(void *ptr); +void dlt_daemon_ecu_version_thread(void *ptr); +#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) + void dlt_daemon_systemd_watchdog_thread(void *ptr); +#endif + +int create_timer_fd(DltDaemonLocal *daemon_local, int period_sec, int starts_in, int* fd, const char* timer_name); + +int dlt_daemon_close_socket(int sock, DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); + +#endif /* DLT_DAEMON_H */ + diff --git a/src/daemon/dlt-daemon_cfg.h b/src/daemon/dlt-daemon_cfg.h index 24ad20e..07e68c7 100755 --- a/src/daemon/dlt-daemon_cfg.h +++ b/src/daemon/dlt-daemon_cfg.h @@ -1,113 +1,113 @@ -/**
- * @licence app begin@
- * Copyright (C) 2012 BMW AG
- *
- * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
- * \author Alexander Wenzel <alexander.aw.wenzel@bmw.de> BMW 2011-2012
- *
- * \file dlt-daemon_cfg.h
- * For further information see http://www.genivi.org/.
- * @licence end@
- */
-
-
-/*******************************************************************************
-** **
-** SRC-MODULE: dlt-daemon-cfg.h **
-** **
-** TARGET : linux **
-** **
-** PROJECT : DLT **
-** **
-** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de **
-** Markus Klein **
-** **
-** PURPOSE : **
-** **
-** REMARKS : **
-** **
-** PLATFORM DEPENDANT [yes/no]: yes **
-** **
-** TO BE CHANGED BY USER [yes/no]: no **
-** **
-*******************************************************************************/
-
-/*******************************************************************************
-** Author Identity **
-********************************************************************************
-** **
-** Initials Name Company **
-** -------- ------------------------- ---------------------------------- **
-** aw Alexander Wenzel BMW **
-** mk Markus Klein Fraunhofer ESK **
-*******************************************************************************/
-
-/*******************************************************************************
-** Author Identity **
-********************************************************************************
-** **
-** Initials Name Company **
-** -------- ------------------------- ---------------------------------- **
-** aw Alexander Wenzel BMW **
-** mk Markus Klein Fraunhofer ESK **
-*******************************************************************************/
-
-#ifndef DLT_DAEMON_CFG_H
-#define DLT_DAEMON_CFG_H
-
-/*************/
-/* Changable */
-/*************/
-
-/* Stack size of timing packet thread */
-#define DLT_DAEMON_TIMINGPACKET_THREAD_STACKSIZE 100000
-
-/* Stack size of ecu version thread */
-#define DLT_DAEMON_ECU_VERSION_THREAD_STACKSIZE 100000
-
-/* Size of receive buffer for fifo connection (from user application) */
-#define DLT_DAEMON_RCVBUFSIZE 10024
-/* Size of receive buffer for socket connection (from dlt client) */
-#define DLT_DAEMON_RCVBUFSIZESOCK 10024
-/* Size of receive buffer for serial connection (from dlt client) */
-#define DLT_DAEMON_RCVBUFSIZESERIAL 10024
-
-/* Size of buffer for text output */
-#define DLT_DAEMON_TEXTSIZE 10024
-
-/* Size of buffer */
-#define DLT_DAEMON_TEXTBUFSIZE 512
-
-/* Maximum length of a description */
-#define DLT_DAEMON_DESCSIZE 256
-
-/* Name of daemon lock file, contain process id of dlt daemon instance */
-#define DLT_DAEMON_LOCK_FILE "dltd.lock"
-
-/* Umask of daemon, creates files with permission 750 */
-#define DLT_DAEMON_UMASK 027
-/* Permissions of daemon lock file */
-#define DLT_DAEMON_LOCK_FILE_PERM 0640
-
-/* Default ECU ID, used in storage header and transmitted to client*/
-#define DLT_DAEMON_ECU_ID "ECU1"
-
-/* Default baudrate for serial interface */
-#define DLT_DAEMON_SERIAL_DEFAULT_BAUDRATE 115200
-
-/************************/
-/* Don't change please! */
-/************************/
-
-#endif /* DLT_DAEMON_CFG_H */
-
+/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel <alexander.aw.wenzel@bmw.de> BMW 2011-2012 + * + * \file dlt-daemon_cfg.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt-daemon-cfg.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_DAEMON_CFG_H +#define DLT_DAEMON_CFG_H + +/*************/ +/* Changable */ +/*************/ + +/* Stack size of timing packet thread */ +#define DLT_DAEMON_TIMINGPACKET_THREAD_STACKSIZE 100000 + +/* Stack size of ecu version thread */ +#define DLT_DAEMON_ECU_VERSION_THREAD_STACKSIZE 100000 + +/* Size of receive buffer for fifo connection (from user application) */ +#define DLT_DAEMON_RCVBUFSIZE 10024 +/* Size of receive buffer for socket connection (from dlt client) */ +#define DLT_DAEMON_RCVBUFSIZESOCK 10024 +/* Size of receive buffer for serial connection (from dlt client) */ +#define DLT_DAEMON_RCVBUFSIZESERIAL 10024 + +/* Size of buffer for text output */ +#define DLT_DAEMON_TEXTSIZE 10024 + +/* Size of buffer */ +#define DLT_DAEMON_TEXTBUFSIZE 512 + +/* Maximum length of a description */ +#define DLT_DAEMON_DESCSIZE 256 + +/* Name of daemon lock file, contain process id of dlt daemon instance */ +#define DLT_DAEMON_LOCK_FILE "dltd.lock" + +/* Umask of daemon, creates files with permission 750 */ +#define DLT_DAEMON_UMASK 027 +/* Permissions of daemon lock file */ +#define DLT_DAEMON_LOCK_FILE_PERM 0640 + +/* Default ECU ID, used in storage header and transmitted to client*/ +#define DLT_DAEMON_ECU_ID "ECU1" + +/* Default baudrate for serial interface */ +#define DLT_DAEMON_SERIAL_DEFAULT_BAUDRATE 115200 + +/************************/ +/* Don't change please! */ +/************************/ + +#endif /* DLT_DAEMON_CFG_H */ + diff --git a/src/daemon/dlt_daemon_common.h b/src/daemon/dlt_daemon_common.h index db1bc0b..4807407 100644 --- a/src/daemon/dlt_daemon_common.h +++ b/src/daemon/dlt_daemon_common.h @@ -1,378 +1,378 @@ -/**
- * @licence app begin@
- * Copyright (C) 2012 BMW AG
- *
- * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
- * \author Alexander Wenzel <alexander.aw.wenzel@bmw.de> BMW 2011-2012
- *
- * \file dlt_daemon_common.h
- * For further information see http://www.genivi.org/.
- * @licence end@
- */
-
-
-/*******************************************************************************
-** **
-** SRC-MODULE: dlt_daemon_common.h **
-** **
-** TARGET : linux **
-** **
-** PROJECT : DLT **
-** **
-** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de **
-** Markus Klein **
-** **
-** PURPOSE : **
-** **
-** REMARKS : **
-** **
-** PLATFORM DEPENDANT [yes/no]: yes **
-** **
-** TO BE CHANGED BY USER [yes/no]: no **
-** **
-*******************************************************************************/
-
-/*******************************************************************************
-** Author Identity **
-********************************************************************************
-** **
-** Initials Name Company **
-** -------- ------------------------- ---------------------------------- **
-** aw Alexander Wenzel BMW **
-** mk Markus Klein Fraunhofer ESK **
-*******************************************************************************/
-
-/*******************************************************************************
-** Revision Control History **
-*******************************************************************************/
-
-/*
- * $LastChangedRevision: 1670 $
- * $LastChangedDate: 2011-04-08 15:12:06 +0200 (Fr, 08. Apr 2011) $
- * $LastChangedBy$
- Initials Date Comment
- aw 15.02.2010 initial
- */
-
-#ifndef DLT_DAEMON_COMMON_H
-#define DLT_DAEMON_COMMON_H
-
-/**
- \defgroup daemonapi DLT Daemon API
- \addtogroup daemonapi
- \{
-*/
-
-#include <limits.h>
-#include <semaphore.h>
-#include "dlt_common.h"
-#include "dlt_user.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define DLT_DAEMON_RINGBUFFER_MIN_SIZE 500000 /**< Ring buffer size for storing log messages while no client is connected */
-#define DLT_DAEMON_RINGBUFFER_MAX_SIZE 10000000 /**< Ring buffer size for storing log messages while no client is connected */
-#define DLT_DAEMON_RINGBUFFER_STEP_SIZE 500000 /**< Ring buffer size for storing log messages while no client is connected */
-
-#define DLT_DAEMON_SEND_TO_ALL -3 /**< Constant value to identify the command "send to all" */
-#define DLT_DAEMON_SEND_FORCE -4 /**< Constant value to identify the command "send force to all" */
-
-/* Use a semaphore or mutex from your OS to prevent concurrent access to the DLT buffer. */
-
-#define DLT_DAEMON_SEM_LOCK() { sem_wait(&dlt_daemon_mutex); }
-#define DLT_DAEMON_SEM_FREE() { sem_post(&dlt_daemon_mutex); }
-extern sem_t dlt_daemon_mutex;
-
-/**
- * Definitions of DLT daemon logging states
- */
-typedef enum
-{
- DLT_DAEMON_STATE_INIT = 0, /**< Initial state */
- DLT_DAEMON_STATE_BUFFER = 1, /**< logging is buffered until external logger is connected or internal logging is activated */
- DLT_DAEMON_STATE_BUFFER_FULL = 2, /**< then internal buffer is full, wait for connect from client */
- DLT_DAEMON_STATE_SEND_BUFFER = 3, /**< external logger is connected, but buffer is still not empty or external logger queue is full */
- DLT_DAEMON_STATE_SEND_DIRECT = 4 /**< External logger is connected or internal logging is active, and buffer is empty */
-} DltDaemonState;
-
-/**
- * The parameters of a daemon application.
- */
-typedef struct
-{
- char apid[DLT_ID_SIZE]; /**< application id */
- pid_t pid; /**< process id of user application */
- int user_handle; /**< connection handle for connection to user application */
- char *application_description; /**< context description */
- int num_contexts; /**< number of contexts for this application */
-} DltDaemonApplication;
-
-/**
- * The parameters of a daemon context.
- */
-typedef struct
-{
- char apid[DLT_ID_SIZE]; /**< application id */
- char ctid[DLT_ID_SIZE]; /**< context id */
- int8_t log_level; /**< the current log level of the context */
- int8_t trace_status; /**< the current trace status of the context */
- int log_level_pos; /**< offset of context in context field on user application */
- int user_handle; /**< connection handle for connection to user application */
- char *context_description; /**< context description */
-} DltDaemonContext;
-
-/**
- * The parameters of a daemon.
- */
-typedef struct
-{
- int num_contexts; /**< Total number of all contexts in all applications */
- DltDaemonContext *contexts; /**< Pointer to contexts */
- int num_applications; /**< Number of available application */
- DltDaemonApplication *applications; /**< Pointer to applications */
- int8_t default_log_level; /**< Default log level (of daemon) */
- int8_t default_trace_status; /**< Default trace status (of daemon) */
- unsigned int overflow_counter; /**< counts the number of lost messages. */
- int runtime_context_cfg_loaded; /**< Set to one, if runtime context configuration has been loaded, zero otherwise */
- char ecuid[DLT_ID_SIZE]; /**< ECU ID of daemon */
- int sendserialheader; /**< 1: send serial header; 0 don't send serial header */
- int timingpackets; /**< 1: send continous timing packets; 0 don't send continous timing packets */
- DltBuffer client_ringbuffer; /**< Ring-buffer for storing received logs while no client connection is available */
- char runtime_application_cfg[PATH_MAX + 1]; /**< Path and filename of persistent application configuration. Set to path max, as it specifies a full path*/
- char runtime_context_cfg[PATH_MAX + 1]; /**< Path and filename of persistent context configuration */
- char runtime_configuration[PATH_MAX + 1]; /**< Path and filename of persistent configuration */
- DltUserLogMode mode; /**< Mode used for tracing: off, external, internal, both */
- char connectionState; /**< state for tracing: 0 = no client connected, 1 = client connected */
- char *ECUVersionString; /**< Version string to send to client. Loaded from a file at startup. May be null. */
- DltDaemonState state; /**< the current logging state of dlt daemon. */
-} DltDaemon;
-
-/**
- * Initialise the dlt daemon structure
- * This function must be called before using further dlt daemon structure
- * @param daemon pointer to dlt daemon structure
- * @param RingbufferMinSize ringbuffer size
- * @param RingbufferMaxSize ringbuffer size
- * @param RingbufferStepSize ringbuffer size
- * @param runtime_directory Directory of persistent configuration
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_init(DltDaemon *daemon,unsigned long RingbufferMinSize,unsigned long RingbufferMaxSize,unsigned long RingbufferStepSize,const char *runtime_directory,int verbose);
-/**
- * De-Initialise the dlt daemon structure
- * @param daemon pointer to dlt daemon structure
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_free(DltDaemon *daemon,int verbose);
-
-/**
- * Add (new) application to internal application management
- * @param daemon pointer to dlt daemon structure
- * @param apid pointer to application id
- * @param pid process id of user application
- * @param description description of application
- * @param verbose if set to true verbose information is printed out.
- * @return Pointer to added context, null pointer on error
- */
-DltDaemonApplication* dlt_daemon_application_add(DltDaemon *daemon,char *apid,pid_t pid,char *description, int verbose);
-/**
- * Delete application from internal application management
- * @param daemon pointer to dlt daemon structure
- * @param application pointer to application to be deleted
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_application_del(DltDaemon *daemon, DltDaemonApplication *application, int verbose);
-/**
- * Find application with specific application id
- * @param daemon pointer to dlt daemon structure
- * @param apid pointer to application id
- * @param verbose if set to true verbose information is printed out.
- * @return Pointer to application, null pointer on error or not found
- */
-DltDaemonApplication* dlt_daemon_application_find(DltDaemon *daemon,char *apid,int verbose);
-/**
- * Load applications from file to internal context management
- * @param daemon pointer to dlt daemon structure
- * @param filename name of file to be used for loading
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_applications_load(DltDaemon *daemon,const char *filename, int verbose);
-/**
- * Save applications from internal context management to file
- * @param daemon pointer to dlt daemon structure
- * @param filename name of file to be used for saving
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_applications_save(DltDaemon *daemon,const char *filename, int verbose);
-/**
- * Invalidate all applications fd, if fd is reused
- * @param daemon pointer to dlt daemon structure
- * @param fd file descriptor
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_applications_invalidate_fd(DltDaemon *daemon,int fd,int verbose);
-/**
- * Clear all applications in internal application management
- * @param daemon pointer to dlt daemon structure
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_applications_clear(DltDaemon *daemon,int verbose);
-
-/**
- * Add (new) context to internal context management
- * @param daemon pointer to dlt daemon structure
- * @param apid pointer to application id
- * @param ctid pointer to context id
- * @param log_level log level of context
- * @param trace_status trace status of context
- * @param log_level_pos offset of context in context field on user application
- * @param user_handle connection handle for connection to user application
- * @param description description of context
- * @param verbose if set to true verbose information is printed out.
- * @return Pointer to added context, null pointer on error
- */
-DltDaemonContext* dlt_daemon_context_add(DltDaemon *daemon,char *apid,char *ctid,int8_t log_level,int8_t trace_status,int log_level_pos, int user_handle,char *description,int verbose);
-/**
- * Delete context from internal context management
- * @param daemon pointer to dlt daemon structure
- * @param context pointer to context to be deleted
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_context_del(DltDaemon *daemon, DltDaemonContext* context, int verbose);
-/**
- * Find context with specific application id and context id
- * @param daemon pointer to dlt daemon structure
- * @param apid pointer to application id
- * @param ctid pointer to context id
- * @param verbose if set to true verbose information is printed out.
- * @return Pointer to context, null pointer on error or not found
- */
-DltDaemonContext* dlt_daemon_context_find(DltDaemon *daemon,char *apid,char *ctid,int verbose);
-/**
- * Invalidate all contexts fd, if fd is reused
- * @param daemon pointer to dlt daemon structure
- * @param fd file descriptor
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_contexts_invalidate_fd(DltDaemon *daemon,int fd,int verbose);
-/**
- * Clear all contexts in internal context management
- * @param daemon pointer to dlt daemon structure
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_contexts_clear(DltDaemon *daemon,int verbose);
-/**
- * Load contexts from file to internal context management
- * @param daemon pointer to dlt daemon structure
- * @param filename name of file to be used for loading
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_contexts_load(DltDaemon *daemon,const char *filename, int verbose);
-/**
- * Save contexts from internal context management to file
- * @param daemon pointer to dlt daemon structure
- * @param filename name of file to be used for saving
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_contexts_save(DltDaemon *daemon,const char *filename, int verbose);
-/**
- * Load persistant configuration
- * @param daemon pointer to dlt daemon structure
- * @param filename name of file to be used for loading
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_configuration_load(DltDaemon *daemon,const char *filename, int verbose);
-/**
- * Save configuration persistantly
- * @param daemon pointer to dlt daemon structure
- * @param filename name of file to be used for saving
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_configuration_save(DltDaemon *daemon,const char *filename, int verbose);
-
-
-/**
- * Send user message DLT_USER_MESSAGE_LOG_LEVEL to user application
- * @param daemon pointer to dlt daemon structure
- * @param context pointer to context for response
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_user_send_log_level(DltDaemon *daemon,DltDaemonContext *context, int verbose);
-
-/**
- * Send user message DLT_USER_MESSAGE_LOG_STATE to user application
- * @param daemon pointer to dlt daemon structure
- * @param app pointer to application for response
- * @param verbose if set to true verbose information is printed out.
- * @return negative value if there was an error
- */
-int dlt_daemon_user_send_log_state(DltDaemon *daemon,DltDaemonApplication *app,int verbose);
-
-/**
- * Send user messages to all user applications using default context, or trace status
- * to update those values
- * @param daemon pointer to dlt daemon structure
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_user_send_default_update(DltDaemon *daemon, int verbose);
-
-/**
- * Send user messages to all user applications the log status
- * everytime the client is connected or disconnected.
- * @param daemon pointer to dlt daemon structure
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_user_send_all_log_state(DltDaemon *daemon, int verbose);
-
-/**
- * Process reset to factory default control message
- * @param daemon pointer to dlt daemon structure
- * @param filename name of file containing the runtime defaults for applications
- * @param filename1 name of file containing the runtime defaults for contexts
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_reset_to_factory_default(DltDaemon *daemon,const char *filename, const char *filename1, int verbose);
-
-/**
- * Change the logging state of dlt daemon
- * @param daemon pointer to dlt daemon structure
- * @param newState the requested new state
- */
-void dlt_daemon_change_state(DltDaemon *daemon, DltDaemonState newState);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- \}
-*/
-
-#endif /* DLT_DAEMON_COMMON_H */
+/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel <alexander.aw.wenzel@bmw.de> BMW 2011-2012 + * + * \file dlt_daemon_common.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_daemon_common.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Revision Control History ** +*******************************************************************************/ + +/* + * $LastChangedRevision: 1670 $ + * $LastChangedDate: 2011-04-08 15:12:06 +0200 (Fr, 08. Apr 2011) $ + * $LastChangedBy$ + Initials Date Comment + aw 15.02.2010 initial + */ + +#ifndef DLT_DAEMON_COMMON_H +#define DLT_DAEMON_COMMON_H + +/** + \defgroup daemonapi DLT Daemon API + \addtogroup daemonapi + \{ +*/ + +#include <limits.h> +#include <semaphore.h> +#include "dlt_common.h" +#include "dlt_user.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define DLT_DAEMON_RINGBUFFER_MIN_SIZE 500000 /**< Ring buffer size for storing log messages while no client is connected */ +#define DLT_DAEMON_RINGBUFFER_MAX_SIZE 10000000 /**< Ring buffer size for storing log messages while no client is connected */ +#define DLT_DAEMON_RINGBUFFER_STEP_SIZE 500000 /**< Ring buffer size for storing log messages while no client is connected */ + +#define DLT_DAEMON_SEND_TO_ALL -3 /**< Constant value to identify the command "send to all" */ +#define DLT_DAEMON_SEND_FORCE -4 /**< Constant value to identify the command "send force to all" */ + +/* Use a semaphore or mutex from your OS to prevent concurrent access to the DLT buffer. */ + +#define DLT_DAEMON_SEM_LOCK() { sem_wait(&dlt_daemon_mutex); } +#define DLT_DAEMON_SEM_FREE() { sem_post(&dlt_daemon_mutex); } +extern sem_t dlt_daemon_mutex; + +/** + * Definitions of DLT daemon logging states + */ +typedef enum +{ + DLT_DAEMON_STATE_INIT = 0, /**< Initial state */ + DLT_DAEMON_STATE_BUFFER = 1, /**< logging is buffered until external logger is connected or internal logging is activated */ + DLT_DAEMON_STATE_BUFFER_FULL = 2, /**< then internal buffer is full, wait for connect from client */ + DLT_DAEMON_STATE_SEND_BUFFER = 3, /**< external logger is connected, but buffer is still not empty or external logger queue is full */ + DLT_DAEMON_STATE_SEND_DIRECT = 4 /**< External logger is connected or internal logging is active, and buffer is empty */ +} DltDaemonState; + +/** + * The parameters of a daemon application. + */ +typedef struct +{ + char apid[DLT_ID_SIZE]; /**< application id */ + pid_t pid; /**< process id of user application */ + int user_handle; /**< connection handle for connection to user application */ + char *application_description; /**< context description */ + int num_contexts; /**< number of contexts for this application */ +} DltDaemonApplication; + +/** + * The parameters of a daemon context. + */ +typedef struct +{ + char apid[DLT_ID_SIZE]; /**< application id */ + char ctid[DLT_ID_SIZE]; /**< context id */ + int8_t log_level; /**< the current log level of the context */ + int8_t trace_status; /**< the current trace status of the context */ + int log_level_pos; /**< offset of context in context field on user application */ + int user_handle; /**< connection handle for connection to user application */ + char *context_description; /**< context description */ +} DltDaemonContext; + +/** + * The parameters of a daemon. + */ +typedef struct +{ + int num_contexts; /**< Total number of all contexts in all applications */ + DltDaemonContext *contexts; /**< Pointer to contexts */ + int num_applications; /**< Number of available application */ + DltDaemonApplication *applications; /**< Pointer to applications */ + int8_t default_log_level; /**< Default log level (of daemon) */ + int8_t default_trace_status; /**< Default trace status (of daemon) */ + unsigned int overflow_counter; /**< counts the number of lost messages. */ + int runtime_context_cfg_loaded; /**< Set to one, if runtime context configuration has been loaded, zero otherwise */ + char ecuid[DLT_ID_SIZE]; /**< ECU ID of daemon */ + int sendserialheader; /**< 1: send serial header; 0 don't send serial header */ + int timingpackets; /**< 1: send continous timing packets; 0 don't send continous timing packets */ + DltBuffer client_ringbuffer; /**< Ring-buffer for storing received logs while no client connection is available */ + char runtime_application_cfg[PATH_MAX + 1]; /**< Path and filename of persistent application configuration. Set to path max, as it specifies a full path*/ + char runtime_context_cfg[PATH_MAX + 1]; /**< Path and filename of persistent context configuration */ + char runtime_configuration[PATH_MAX + 1]; /**< Path and filename of persistent configuration */ + DltUserLogMode mode; /**< Mode used for tracing: off, external, internal, both */ + char connectionState; /**< state for tracing: 0 = no client connected, 1 = client connected */ + char *ECUVersionString; /**< Version string to send to client. Loaded from a file at startup. May be null. */ + DltDaemonState state; /**< the current logging state of dlt daemon. */ +} DltDaemon; + +/** + * Initialise the dlt daemon structure + * This function must be called before using further dlt daemon structure + * @param daemon pointer to dlt daemon structure + * @param RingbufferMinSize ringbuffer size + * @param RingbufferMaxSize ringbuffer size + * @param RingbufferStepSize ringbuffer size + * @param runtime_directory Directory of persistent configuration + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_init(DltDaemon *daemon,unsigned long RingbufferMinSize,unsigned long RingbufferMaxSize,unsigned long RingbufferStepSize,const char *runtime_directory,int verbose); +/** + * De-Initialise the dlt daemon structure + * @param daemon pointer to dlt daemon structure + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_free(DltDaemon *daemon,int verbose); + +/** + * Add (new) application to internal application management + * @param daemon pointer to dlt daemon structure + * @param apid pointer to application id + * @param pid process id of user application + * @param description description of application + * @param verbose if set to true verbose information is printed out. + * @return Pointer to added context, null pointer on error + */ +DltDaemonApplication* dlt_daemon_application_add(DltDaemon *daemon,char *apid,pid_t pid,char *description, int verbose); +/** + * Delete application from internal application management + * @param daemon pointer to dlt daemon structure + * @param application pointer to application to be deleted + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_application_del(DltDaemon *daemon, DltDaemonApplication *application, int verbose); +/** + * Find application with specific application id + * @param daemon pointer to dlt daemon structure + * @param apid pointer to application id + * @param verbose if set to true verbose information is printed out. + * @return Pointer to application, null pointer on error or not found + */ +DltDaemonApplication* dlt_daemon_application_find(DltDaemon *daemon,char *apid,int verbose); +/** + * Load applications from file to internal context management + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for loading + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_applications_load(DltDaemon *daemon,const char *filename, int verbose); +/** + * Save applications from internal context management to file + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for saving + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_applications_save(DltDaemon *daemon,const char *filename, int verbose); +/** + * Invalidate all applications fd, if fd is reused + * @param daemon pointer to dlt daemon structure + * @param fd file descriptor + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_applications_invalidate_fd(DltDaemon *daemon,int fd,int verbose); +/** + * Clear all applications in internal application management + * @param daemon pointer to dlt daemon structure + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_applications_clear(DltDaemon *daemon,int verbose); + +/** + * Add (new) context to internal context management + * @param daemon pointer to dlt daemon structure + * @param apid pointer to application id + * @param ctid pointer to context id + * @param log_level log level of context + * @param trace_status trace status of context + * @param log_level_pos offset of context in context field on user application + * @param user_handle connection handle for connection to user application + * @param description description of context + * @param verbose if set to true verbose information is printed out. + * @return Pointer to added context, null pointer on error + */ +DltDaemonContext* dlt_daemon_context_add(DltDaemon *daemon,char *apid,char *ctid,int8_t log_level,int8_t trace_status,int log_level_pos, int user_handle,char *description,int verbose); +/** + * Delete context from internal context management + * @param daemon pointer to dlt daemon structure + * @param context pointer to context to be deleted + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_context_del(DltDaemon *daemon, DltDaemonContext* context, int verbose); +/** + * Find context with specific application id and context id + * @param daemon pointer to dlt daemon structure + * @param apid pointer to application id + * @param ctid pointer to context id + * @param verbose if set to true verbose information is printed out. + * @return Pointer to context, null pointer on error or not found + */ +DltDaemonContext* dlt_daemon_context_find(DltDaemon *daemon,char *apid,char *ctid,int verbose); +/** + * Invalidate all contexts fd, if fd is reused + * @param daemon pointer to dlt daemon structure + * @param fd file descriptor + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_contexts_invalidate_fd(DltDaemon *daemon,int fd,int verbose); +/** + * Clear all contexts in internal context management + * @param daemon pointer to dlt daemon structure + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_contexts_clear(DltDaemon *daemon,int verbose); +/** + * Load contexts from file to internal context management + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for loading + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_contexts_load(DltDaemon *daemon,const char *filename, int verbose); +/** + * Save contexts from internal context management to file + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for saving + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_contexts_save(DltDaemon *daemon,const char *filename, int verbose); +/** + * Load persistant configuration + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for loading + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_configuration_load(DltDaemon *daemon,const char *filename, int verbose); +/** + * Save configuration persistantly + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for saving + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_configuration_save(DltDaemon *daemon,const char *filename, int verbose); + + +/** + * Send user message DLT_USER_MESSAGE_LOG_LEVEL to user application + * @param daemon pointer to dlt daemon structure + * @param context pointer to context for response + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_user_send_log_level(DltDaemon *daemon,DltDaemonContext *context, int verbose); + +/** + * Send user message DLT_USER_MESSAGE_LOG_STATE to user application + * @param daemon pointer to dlt daemon structure + * @param app pointer to application for response + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_user_send_log_state(DltDaemon *daemon,DltDaemonApplication *app,int verbose); + +/** + * Send user messages to all user applications using default context, or trace status + * to update those values + * @param daemon pointer to dlt daemon structure + * @param verbose if set to true verbose information is printed out. + */ +void dlt_daemon_user_send_default_update(DltDaemon *daemon, int verbose); + +/** + * Send user messages to all user applications the log status + * everytime the client is connected or disconnected. + * @param daemon pointer to dlt daemon structure + * @param verbose if set to true verbose information is printed out. + */ +void dlt_daemon_user_send_all_log_state(DltDaemon *daemon, int verbose); + +/** + * Process reset to factory default control message + * @param daemon pointer to dlt daemon structure + * @param filename name of file containing the runtime defaults for applications + * @param filename1 name of file containing the runtime defaults for contexts + * @param verbose if set to true verbose information is printed out. + */ +void dlt_daemon_control_reset_to_factory_default(DltDaemon *daemon,const char *filename, const char *filename1, int verbose); + +/** + * Change the logging state of dlt daemon + * @param daemon pointer to dlt daemon structure + * @param newState the requested new state + */ +void dlt_daemon_change_state(DltDaemon *daemon, DltDaemonState newState); + +#ifdef __cplusplus +} +#endif + +/** + \} +*/ + +#endif /* DLT_DAEMON_COMMON_H */ diff --git a/src/daemon/dlt_daemon_common_cfg.h b/src/daemon/dlt_daemon_common_cfg.h index ba28f24..914767a 100755 --- a/src/daemon/dlt_daemon_common_cfg.h +++ b/src/daemon/dlt_daemon_common_cfg.h @@ -1,119 +1,119 @@ -/**
- * @licence app begin@
- * Copyright (C) 2012 BMW AG
- *
- * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
- * \author Alexander Wenzel <alexander.aw.wenzel@bmw.de> BMW 2011-2012
- *
- * \file dlt_daemon_common_cfg.h
- * For further information see http://www.genivi.org/.
- * @licence end@
- */
-
-
-
-/*******************************************************************************
-** **
-** SRC-MODULE: dlt_daemon_common_cfg.h **
-** **
-** TARGET : linux **
-** **
-** PROJECT : DLT **
-** **
-** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de **
-** Markus Klein **
-** **
-** PURPOSE : **
-** **
-** REMARKS : **
-** **
-** PLATFORM DEPENDANT [yes/no]: yes **
-** **
-** TO BE CHANGED BY USER [yes/no]: no **
-** **
-*******************************************************************************/
-
-/*******************************************************************************
-** Author Identity **
-********************************************************************************
-** **
-** Initials Name Company **
-** -------- ------------------------- ---------------------------------- **
-** aw Alexander Wenzel BMW **
-** mk Markus Klein Fraunhofer ESK **
-*******************************************************************************/
-
-/*******************************************************************************
-** Author Identity **
-********************************************************************************
-** **
-** Initials Name Company **
-** -------- ------------------------- ---------------------------------- **
-** aw Alexander Wenzel BMW **
-** mk Markus Klein Fraunhofer ESK **
-*******************************************************************************/
-
-#ifndef DLT_DAEMON_COMMON_CFG_H
-#define DLT_DAEMON_COMMON_CFG_H
-
-/*************/
-/* Changable */
-/*************/
-
-/* Default Path for runtime configuration */
-#define DLT_RUNTIME_DEFAULT_DIRECTORY "/tmp"
-/* Path and filename for runtime configuration (applications) */
-#define DLT_RUNTIME_APPLICATION_CFG "/dlt-runtime-application.cfg"
-/* Path and filename for runtime configuration (contexts) */
-#define DLT_RUNTIME_CONTEXT_CFG "/dlt-runtime-context.cfg"
-/* Path and filename for runtime configuration */
-#define DLT_RUNTIME_CONFIGURATION "/dlt-runtime.cfg"
-
-/* Size of text buffer */
-#define DLT_DAEMON_COMMON_TEXTBUFSIZE 255
-
-/* Initial log level */
-#define DLT_DAEMON_INITIAL_LOG_LEVEL DLT_LOG_INFO
-/* Initial trace status */
-#define DLT_DAEMON_INITIAL_TRACE_STATUS DLT_TRACE_STATUS_OFF
-
-/* Application ID used when the dlt daemon creates a control message */
-#define DLT_DAEMON_CTRL_APID "DA1"
-/* Context ID used when the dlt daemon creates a control message */
-#define DLT_DAEMON_CTRL_CTID "DC1"
-
-/* Number of entries to be allocated at one in application table,
- when no more entries are available */
-#define DLT_DAEMON_APPL_ALLOC_SIZE 500
-/* Number of entries to be allocated at one in context table,
- when no more entries are available */
-#define DLT_DAEMON_CONTEXT_ALLOC_SIZE 1000
-
-/* Debug get log info function,
- set to 1 to enable, 0 to disable debugging */
-#define DLT_DEBUG_GETLOGINFO 0
-
-/************************/
-/* Don't change please! */
-/************************/
-
-/* Minimum ID for an injection message */
-#define DLT_DAEMON_INJECTION_MIN 0xFFF
-/* Maximum ID for an injection message */
-#define DLT_DAEMON_INJECTION_MAX 0xFFFFFFFF
-
-/* Remote interface identifier */
-#define DLT_DAEMON_REMO_STRING "remo"
-
-#endif /* DLT_DAEMON_COMMON_CFG_H */
-
+/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel <alexander.aw.wenzel@bmw.de> BMW 2011-2012 + * + * \file dlt_daemon_common_cfg.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_daemon_common_cfg.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_DAEMON_COMMON_CFG_H +#define DLT_DAEMON_COMMON_CFG_H + +/*************/ +/* Changable */ +/*************/ + +/* Default Path for runtime configuration */ +#define DLT_RUNTIME_DEFAULT_DIRECTORY "/tmp" +/* Path and filename for runtime configuration (applications) */ +#define DLT_RUNTIME_APPLICATION_CFG "/dlt-runtime-application.cfg" +/* Path and filename for runtime configuration (contexts) */ +#define DLT_RUNTIME_CONTEXT_CFG "/dlt-runtime-context.cfg" +/* Path and filename for runtime configuration */ +#define DLT_RUNTIME_CONFIGURATION "/dlt-runtime.cfg" + +/* Size of text buffer */ +#define DLT_DAEMON_COMMON_TEXTBUFSIZE 255 + +/* Initial log level */ +#define DLT_DAEMON_INITIAL_LOG_LEVEL DLT_LOG_INFO +/* Initial trace status */ +#define DLT_DAEMON_INITIAL_TRACE_STATUS DLT_TRACE_STATUS_OFF + +/* Application ID used when the dlt daemon creates a control message */ +#define DLT_DAEMON_CTRL_APID "DA1" +/* Context ID used when the dlt daemon creates a control message */ +#define DLT_DAEMON_CTRL_CTID "DC1" + +/* Number of entries to be allocated at one in application table, + when no more entries are available */ +#define DLT_DAEMON_APPL_ALLOC_SIZE 500 +/* Number of entries to be allocated at one in context table, + when no more entries are available */ +#define DLT_DAEMON_CONTEXT_ALLOC_SIZE 1000 + +/* Debug get log info function, + set to 1 to enable, 0 to disable debugging */ +#define DLT_DEBUG_GETLOGINFO 0 + +/************************/ +/* Don't change please! */ +/************************/ + +/* Minimum ID for an injection message */ +#define DLT_DAEMON_INJECTION_MIN 0xFFF +/* Maximum ID for an injection message */ +#define DLT_DAEMON_INJECTION_MAX 0xFFFFFFFF + +/* Remote interface identifier */ +#define DLT_DAEMON_REMO_STRING "remo" + +#endif /* DLT_DAEMON_COMMON_CFG_H */ + |