summaryrefslogtreecommitdiff
path: root/die.c
blob: 4e525f9e15539434be76341c237ef06d7f0fe8f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
 * Subject to the GPL, version 2.
 */

#include "xmalloc.h"

struct panic_handler {
	void *arg;
	pid_t pid;
	bool is_enabled;
	void (*on_panic)(void *arg);
	struct panic_handler *next;
};

static struct panic_handler *panic_handlers;

void panic_handler_add(void (*on_panic)(void *arg), void *arg)
{
	struct panic_handler *handler = xmallocz(sizeof(*handler));

	handler->arg		= arg;
	handler->pid		= getpid();
	handler->is_enabled	= true;
	handler->on_panic	= on_panic;
	handler->next		= panic_handlers;
	panic_handlers		= handler;
};

void call_panic_handlers(void)
{
	struct panic_handler *it;
	pid_t pid = getpid();

	for (it = panic_handlers; it; it = it->next) {
		if (it->pid == pid && it->is_enabled) {
			it->is_enabled = false;
			it->on_panic(it->arg);
		}
	}
}
bf4a3a'>bddb2afcb6c52a545f18fb9bcd4829828ebf4a3a (patch) tree0021fe481f8acf3694d92d72f3dd1b2a71a20ca3 /tools/perf/perf-read-vdso.c parent228c8c6b1f4376788e9d5ab00d50b10228eb40d3 (diff)
mac80211: add back lost debugfs files
Somehow these files were never present or lost, but the code is there and they seem somewhat useful, so add them back. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'tools/perf/perf-read-vdso.c')