summaryrefslogtreecommitdiff
path: root/src/system/dlt-system-processes.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/system/dlt-system-processes.c')
-rw-r--r--src/system/dlt-system-processes.c189
1 files changed, 93 insertions, 96 deletions
diff --git a/src/system/dlt-system-processes.c b/src/system/dlt-system-processes.c
index b92ff55..e9b8577 100644
--- a/src/system/dlt-system-processes.c
+++ b/src/system/dlt-system-processes.c
@@ -57,7 +57,7 @@
#include "dlt-system.h"
-// Modes of sending
+/* Modes of sending */
#define SEND_MODE_OFF 0
#define SEND_MODE_ONCE 1
#define SEND_MODE_ON 2
@@ -69,108 +69,105 @@ DLT_DECLARE_CONTEXT(procContext)
void send_process(LogProcessOptions const *popts, int n)
{
- DLT_LOG(dltsystem, DLT_LOG_DEBUG,
- DLT_STRING("dlt-system-processes, send process info."));
- FILE * pFile;
- struct dirent *dp;
- char filename[PATH_MAX];
- char buffer[1024];
- int bytes;
- int found = 0;
-
- /* go through all process files in directory */
- DIR *dir = opendir("/proc");
- if(dir != NULL)
- {
- while ((dp=readdir(dir)) != NULL)
- {
- if(isdigit(dp->d_name[0]))
- {
- buffer[0] = 0;
- snprintf(filename,PATH_MAX, "/proc/%s/cmdline",dp->d_name);
- pFile = fopen(filename, "r");
- if(pFile != NULL)
- {
- bytes = fread(buffer, 1, sizeof(buffer)-1, pFile);
- fclose(pFile);
- }
- if((strcmp((*popts).Name[n], "*")==0) ||
- (strcmp(buffer, (*popts).Name[n])==0))
- {
- found = 1;
- snprintf(filename,PATH_MAX, "/proc/%s/%s", dp->d_name,(*popts).Filename[n]);
- pFile = fopen(filename, "r");
- if(pFile != NULL)
- {
- bytes = fread(buffer, 1, sizeof(buffer)-1, pFile);
- fclose(pFile);
-
- if(bytes>0)
- {
- buffer[bytes] = 0;
- DLT_LOG(procContext, DLT_LOG_INFO, DLT_INT(atoi(dp->d_name)), DLT_STRING((*popts).Filename[n]), DLT_STRING(buffer));
- }
- }
- if(strcmp((*popts).Name[n], "*") !=0)
- break;
- }
- }
- }
- closedir(dir);
- }
- else
- {
- DLT_LOG(dltsystem, DLT_LOG_ERROR,
- DLT_STRING("dlt-system-processes, failed to open /proc."));
- }
-
- if(!found) {
- DLT_LOG(procContext, DLT_LOG_INFO, DLT_STRING("Process"), DLT_STRING((*popts).Name[n]),DLT_STRING("not running!"));
- }
+ DLT_LOG(dltsystem, DLT_LOG_DEBUG,
+ DLT_STRING("dlt-system-processes, send process info."));
+ FILE *pFile;
+ struct dirent *dp;
+ char filename[PATH_MAX];
+ char buffer[1024];
+ int bytes;
+ int found = 0;
+
+ /* go through all process files in directory */
+ DIR *dir = opendir("/proc");
+
+ if (dir != NULL) {
+ while ((dp = readdir(dir)) != NULL)
+ if (isdigit(dp->d_name[0])) {
+ buffer[0] = 0;
+ snprintf(filename, PATH_MAX, "/proc/%s/cmdline", dp->d_name);
+ pFile = fopen(filename, "r");
+
+ if (pFile != NULL) {
+ bytes = fread(buffer, 1, sizeof(buffer) - 1, pFile);
+ fclose(pFile);
+ }
+
+ if ((strcmp((*popts).Name[n], "*") == 0) ||
+ (strcmp(buffer, (*popts).Name[n]) == 0)) {
+ found = 1;
+ snprintf(filename, PATH_MAX, "/proc/%s/%s", dp->d_name, (*popts).Filename[n]);
+ pFile = fopen(filename, "r");
+
+ if (pFile != NULL) {
+ bytes = fread(buffer, 1, sizeof(buffer) - 1, pFile);
+ fclose(pFile);
+
+ if (bytes > 0) {
+ buffer[bytes] = 0;
+ DLT_LOG(procContext, DLT_LOG_INFO, DLT_INT(atoi(dp->d_name)),
+ DLT_STRING((*popts).Filename[n]), DLT_STRING(buffer));
+ }
+ }
+
+ if (strcmp((*popts).Name[n], "*") != 0)
+ break;
+ }
+ }
+
+ closedir(dir);
+ }
+ else {
+ DLT_LOG(dltsystem, DLT_LOG_ERROR,
+ DLT_STRING("dlt-system-processes, failed to open /proc."));
+ }
+
+ if (!found)
+ DLT_LOG(procContext, DLT_LOG_INFO, DLT_STRING("Process"), DLT_STRING((*popts).Name[n]),
+ DLT_STRING("not running!"));
}
void logprocess_thread(void *v_conf)
{
- DLT_LOG(dltsystem, DLT_LOG_DEBUG,
- DLT_STRING("dlt-system-processes, in thread."));
-
- DltSystemConfiguration *conf = (DltSystemConfiguration *) v_conf;
- DLT_REGISTER_CONTEXT(procContext, conf->LogProcesses.ContextId, "Log Processes");
-
- int process_delays[DLT_SYSTEM_LOG_PROCESSES_MAX];
- int i;
- for(i = 0;i < conf->LogProcesses.Count;i++)
- process_delays[i] = conf->LogProcesses.TimeDelay[i];
-
- while(!threads.shutdown)
- {
- sleep(1);
- for(i = 0;i < conf->LogProcesses.Count;i++)
- {
- if(conf->LogProcesses.Mode[i] == SEND_MODE_OFF)
- continue;
-
- if(process_delays[i] <= 0)
- {
+ DLT_LOG(dltsystem, DLT_LOG_DEBUG,
+ DLT_STRING("dlt-system-processes, in thread."));
+
+ DltSystemConfiguration *conf = (DltSystemConfiguration *)v_conf;
+ DLT_REGISTER_CONTEXT(procContext, conf->LogProcesses.ContextId, "Log Processes");
+
+ int process_delays[DLT_SYSTEM_LOG_PROCESSES_MAX];
+ int i;
+
+ for (i = 0; i < conf->LogProcesses.Count; i++)
+ process_delays[i] = conf->LogProcesses.TimeDelay[i];
+
+ while (!threads.shutdown) {
+ sleep(1);
+
+ for (i = 0; i < conf->LogProcesses.Count; i++) {
+ if (conf->LogProcesses.Mode[i] == SEND_MODE_OFF)
+ continue;
+
+ if (process_delays[i] <= 0) {
send_process(&(conf->LogProcesses), i);
- process_delays[i] = conf->LogProcesses.TimeDelay[i];
- if(conf->LogProcesses.Mode[i] == SEND_MODE_ONCE)
- conf->LogProcesses.Mode[i] = SEND_MODE_OFF;
- }
- else
- {
- process_delays[i]--;
- }
- }
- }
+ process_delays[i] = conf->LogProcesses.TimeDelay[i];
+
+ if (conf->LogProcesses.Mode[i] == SEND_MODE_ONCE)
+ conf->LogProcesses.Mode[i] = SEND_MODE_OFF;
+ }
+ else {
+ process_delays[i]--;
+ }
+ }
+ }
}
void start_logprocess(DltSystemConfiguration *conf)
{
- DLT_LOG(dltsystem, DLT_LOG_DEBUG,
- DLT_STRING("dlt-system-processes, starting process log."));
- static pthread_attr_t t_attr;
- static pthread_t pt;
- pthread_create(&pt, &t_attr, (void *)logprocess_thread, conf);
- threads.threads[threads.count++] = pt;
+ DLT_LOG(dltsystem, DLT_LOG_DEBUG,
+ DLT_STRING("dlt-system-processes, starting process log."));
+ static pthread_attr_t t_attr;
+ static pthread_t pt;
+ pthread_create(&pt, &t_attr, (void *)logprocess_thread, conf);
+ threads.threads[threads.count++] = pt;
}