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> |
fc93b2bd | 25 | #include <stdint.h> |
7fb21036 | 26 | #include <stdio.h> |
fc93b2bd MD |
27 | #include <glib.h> |
28 | ||
95d36295 JD |
29 | /* forward declaration */ |
30 | struct ctf_stream_pos; | |
31 | ||
46322b33 MD |
32 | /* Parent trace descriptor */ |
33 | struct trace_descriptor { | |
34 | }; | |
bbefb8dd | 35 | |
f571dfb1 JD |
36 | struct mmap_stream { |
37 | int fd; | |
38 | struct cds_list_head list; | |
39 | }; | |
40 | ||
41 | struct mmap_stream_list { | |
42 | struct cds_list_head head; | |
43 | }; | |
44 | ||
fc93b2bd MD |
45 | struct format { |
46 | GQuark name; | |
47 | ||
5b80ddfb | 48 | struct trace_descriptor *(*open_trace)(const char *path, int flags, |
b086c01a | 49 | void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, |
ae23d232 | 50 | int whence), FILE *metadata_fp); |
f571dfb1 JD |
51 | struct trace_descriptor *(*open_mmap_trace)( |
52 | struct mmap_stream_list *mmap_list, | |
53 | void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, | |
54 | int whence), FILE *metadata_fp); | |
bbefb8dd | 55 | void (*close_trace)(struct trace_descriptor *descriptor); |
fc93b2bd MD |
56 | }; |
57 | ||
5901aa79 MD |
58 | extern struct format *bt_lookup_format(GQuark qname); |
59 | extern void bt_fprintf_format_list(FILE *fp); | |
60 | extern int bt_register_format(struct format *format); | |
fc93b2bd MD |
61 | |
62 | /* TBD: format unregistration */ | |
63 | ||
64 | #endif /* _BABELTRACE_FORMAT_H */ |