#include <stdlib.h>
#include <sys/wait.h>
-#include <common/common.h>
-#include <common/utils.h>
+#include <common/common.hpp>
+#include <common/utils.hpp>
-#include "modprobe.h"
-#include "kern-modules.h"
-#include "lttng-sessiond.h"
+#include "modprobe.hpp"
+#include "kern-modules.hpp"
+#include "lttng-sessiond.hpp"
/* LTTng kernel tracer mandatory core modules list */
struct kern_modules_param kern_modules_control_core[] = {
{
.name = (char *) "lttng-ring-buffer-client-discard",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED,
+ .loaded = false,
},
{
.name = (char *) "lttng-ring-buffer-client-overwrite",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED,
+ .loaded = false,
},
{
.name = (char *) "lttng-ring-buffer-metadata-client",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED,
+ .loaded = false,
},
{
.name = (char *) "lttng-ring-buffer-client-mmap-discard",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED,
+ .loaded = false,
},
{
.name = (char *) "lttng-ring-buffer-client-mmap-overwrite",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED,
+ .loaded = false,
},
{
.name = (char *) "lttng-ring-buffer-metadata-mmap-client",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED,
+ .loaded = false,
},
{
.name = (char *) "lttng-ring-buffer-event_notifier-client",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-counter-client-percpu-64-modular",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-counter-client-percpu-32-modular",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
};
{
.name = (char *) "lttng-probe-asoc",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-block",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-btrfs",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-compaction",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-ext3",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-ext4",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-gpio",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-i2c",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-irq",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-jbd",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-jbd2",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-kmem",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-kvm",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-kvm-x86",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-kvm-x86-mmu",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-lock",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-module",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-napi",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-net",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-power",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-preemptirq",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-printk",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-random",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-rcu",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-regmap",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-regulator",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-rpm",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-sched",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-scsi",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-signal",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-skb",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-sock",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-statedump",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-sunrpc",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-timer",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-udp",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-vmscan",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-v4l2",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-workqueue",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-writeback",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-x86-irq-vectors",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
{
.name = (char *) "lttng-probe-x86-exceptions",
.load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL,
+ .loaded = false,
},
};
* @brief Logging function for libkmod integration.
*/
static ATTR_FORMAT_PRINTF(6, 0)
-void log_kmod(void *data, int priority, const char *file, int line,
- const char *fn, const char *format, va_list args)
+void log_kmod(void *data __attribute__((unused)),
+ int priority __attribute__((unused)),
+ const char *file __attribute__((unused)),
+ int line __attribute__((unused)),
+ const char *fn __attribute__((unused)),
+ const char *format, va_list args)
{
char *str;
/* Initialize capacity to 1 if 0. */
if (probes_capacity == 0) {
- probes = (kern_modules_param *) zmalloc(sizeof(*probes));
+ probes = zmalloc<kern_modules_param>();
if (!probes) {
PERROR("malloc probe list");
return -ENOMEM;
/* Double size. */
probes_capacity *= 2;
- tmp_probes = (kern_modules_param *) zmalloc(sizeof(*tmp_probes) * probes_capacity);
+ tmp_probes = calloc<kern_modules_param>(probes_capacity);
if (!tmp_probes) {
PERROR("malloc probe list");
return -ENOMEM;
name_len = strlen(next) + 13;
cur_mod = &probes[nr_probes];
- cur_mod->name = (char *) zmalloc(name_len);
+ cur_mod->name = calloc<char>(name_len);
if (!cur_mod->name) {
PERROR("malloc probe list");
ret = -ENOMEM;
/* Default probes. */
int def_len = ARRAY_SIZE(kern_modules_probes_default);
- probes = (kern_modules_param *) zmalloc(sizeof(*probes) * def_len);
+ probes = calloc<kern_modules_param>(def_len);
if (!probes) {
PERROR("malloc probe list");
return -ENOMEM;