summaryrefslogtreecommitdiffstats
path: root/runtime/transport/utt.h
blob: 00da0f7eb690c1671aac120529c75d0f1e7ae198 (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
41
42
43
44
#ifndef UTT_H
#define UTT_H

enum {
	Utt_trace_setup = 1,
	Utt_trace_running,
	Utt_trace_stopped,
};

struct utt_trace {
	int trace_state;
	struct rchan *rchan;
	struct dentry *dir;		/* systemtap/module_name */
	struct dentry *dropped_file;
	atomic_t dropped;
	struct dentry *utt_tree_root; /* systemtap */
	void *private_data;
};

#define UTT_TRACE_ROOT_NAME_SIZE	64	/* Largest string for a root dir identifier */
#define UTT_TRACE_NAME_SIZE		64	/* Largest string for a trace identifier */

/*
 * User setup structure
 */
struct utt_trace_setup {
	char root[UTT_TRACE_ROOT_NAME_SIZE];	/* input */
	char name[UTT_TRACE_NAME_SIZE];		/* input */
	u32 buf_size;				/* input */
	u32 buf_nr;				/* input */
	int is_global;				/* input */
	int err;				/* output */
};


extern struct utt_trace *utt_trace_setup(struct utt_trace_setup *utts);
extern int utt_trace_startstop(struct utt_trace *utt, int start,
			       unsigned int *trace_seq);
extern void utt_trace_cleanup(struct utt_trace *utt);
extern int utt_trace_remove(struct utt_trace *utt);

extern int utt_overwrite_flag;

#endif