runtime/dyninst/session_attributes.c - systemtap
Global variables defined
Functions defined
Macros defined
Source code
// stapdyn session attribute code
// Copyright (C) 2013 Red Hat Inc.
//
// This file is part of systemtap, and is free software. You can
// redistribute it and/or modify it under the terms of the GNU General
// Public License (GPL); either version 2, or (at your option) any
// later version.
#ifndef SESSION_ATTRIBUTES_C
#define SESSION_ATTRIBUTES_C
#include "session_attributes.h"
static struct _stp_session_attributes _stp_init_session_attributes = {
.log_level = 0,
.suppress_warnings = 0,
.stp_pid = 0,
.target = 0,
.tz_gmtoff = 0,
.tz_name = "",
.module_name = "",
.outfile_name = "",
};
static void stp_session_attributes_init(void)
{
*stp_session_attributes() = _stp_init_session_attributes;
}
static int stp_session_attribute_setter(const char *name, const char *value)
{
// Note that We start all internal variables with '@', since
// that can't start a "real" variable.
if (strcmp(name, "@log_level") == 0) {
_stp_init_session_attributes.log_level = strtoul(value, NULL,
10);
return 0;
}
else if (strcmp(name, "@suppress_warnings") == 0) {
_stp_init_session_attributes.suppress_warnings
= strtoul(value, NULL, 10);
return 0;
}
else if (strcmp(name, "@stp_pid") == 0) {
_stp_init_session_attributes.stp_pid
= strtoul(value, NULL, 10);
return 0;
}
else if (strcmp(name, "@tz_gmtoff") == 0) {
_stp_init_session_attributes.tz_gmtoff
= strtol(value, NULL, 10);
return 0;
}
else if (strcmp(name, "@tz_name") == 0) {
strlcpy(_stp_init_session_attributes.tz_name,
value, MAXSTRINGLEN);
return 0;
}
else if (strcmp(name, "@target") == 0) {
_stp_init_session_attributes.target
= strtoul(value, NULL, 10);
return 0;
}
else if (strcmp(name, "@module_name") == 0) {
strlcpy(_stp_init_session_attributes.module_name,
value, MAXSTRINGLEN);
return 0;
}
else if (strcmp(name, "@outfile_name") == 0) {
strlcpy(_stp_init_session_attributes.outfile_name,
value, PATH_MAX);
return 0;
}
return -EINVAL;
}
#endif // SESSION_ATTRIBUTES_C