Commit | Line | Data |
---|---|---|
fc93b2bd MD |
1 | #ifndef _BABELTRACE_FORMAT_H |
2 | #define _BABELTRACE_FORMAT_H | |
3 | ||
4 | /* | |
5 | * BabelTrace | |
6 | * | |
7 | * Trace Format Header | |
8 | * | |
64fa3fec MD |
9 | * Copyright 2010-2011 EfficiOS Inc. and Linux Foundation |
10 | * | |
11 | * Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
fc93b2bd | 12 | * |
ccd7e1c8 MD |
13 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
14 | * of this software and associated documentation files (the "Software"), to deal | |
15 | * in the Software without restriction, including without limitation the rights | |
16 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
17 | * copies of the Software, and to permit persons to whom the Software is | |
18 | * furnished to do so, subject to the following conditions: | |
fc93b2bd | 19 | * |
ccd7e1c8 MD |
20 | * The above copyright notice and this permission notice shall be included in |
21 | * all copies or substantial portions of the Software. | |
fc93b2bd MD |
22 | */ |
23 | ||
4c8bfb7e | 24 | #include <babeltrace/types.h> |
b086c01a | 25 | #include <babeltrace/ctf/types.h> |
fc93b2bd | 26 | #include <stdint.h> |
7fb21036 | 27 | #include <stdio.h> |
fc93b2bd MD |
28 | #include <glib.h> |
29 | ||
46322b33 MD |
30 | /* Parent trace descriptor */ |
31 | struct trace_descriptor { | |
32 | }; | |
bbefb8dd | 33 | |
f571dfb1 JD |
34 | struct mmap_stream { |
35 | int fd; | |
36 | struct cds_list_head list; | |
37 | }; | |
38 | ||
39 | struct mmap_stream_list { | |
40 | struct cds_list_head head; | |
41 | }; | |
42 | ||
fc93b2bd MD |
43 | struct format { |
44 | GQuark name; | |
45 | ||
b086c01a JD |
46 | struct trace_descriptor *(*open_trace)(const char *path, int flags, |
47 | void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, | |
ae23d232 | 48 | int whence), FILE *metadata_fp); |
f571dfb1 JD |
49 | struct trace_descriptor *(*open_mmap_trace)( |
50 | struct mmap_stream_list *mmap_list, | |
51 | void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, | |
52 | int whence), FILE *metadata_fp); | |
bbefb8dd | 53 | void (*close_trace)(struct trace_descriptor *descriptor); |
fc93b2bd MD |
54 | }; |
55 | ||
5901aa79 MD |
56 | extern struct format *bt_lookup_format(GQuark qname); |
57 | extern void bt_fprintf_format_list(FILE *fp); | |
58 | extern int bt_register_format(struct format *format); | |
fc93b2bd MD |
59 | |
60 | /* TBD: format unregistration */ | |
61 | ||
62 | #endif /* _BABELTRACE_FORMAT_H */ |