X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fbt-dummy%2Fbt-dummy.c;h=fd10ccad39e3f79a500ddf12a87124ec135380ca;hb=9643611120f9bf174684cb0a06ec9ed418e3341e;hp=221b51ffe8d9e01f5af47d1dddfc7d78d17b6e36;hpb=22133895a9a6b29ec17211f8d437bc128a7e4dfc;p=babeltrace.git diff --git a/formats/bt-dummy/bt-dummy.c b/formats/bt-dummy/bt-dummy.c index 221b51ff..fd10ccad 100644 --- a/formats/bt-dummy/bt-dummy.c +++ b/formats/bt-dummy/bt-dummy.c @@ -14,13 +14,20 @@ * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. */ #include #include -#include +#include #include -#include #include #include #include @@ -31,35 +38,46 @@ #include #include +void bt_dummy_hook(void) +{ + /* + * Dummy function to prevent the linker from discarding this format as + * "unused" in static builds. + */ +} + static -int bt_dummy_write_event(struct stream_pos *ppos, - struct ctf_stream *stream) +int bt_dummy_write_event(struct bt_stream_pos *ppos, struct ctf_stream_definition *stream) { return 0; } static -struct trace_descriptor *bt_dummy_open_trace(const char *path, int flags) +struct bt_trace_descriptor *bt_dummy_open_trace(const char *path, int flags, + void (*packet_seek)(struct bt_stream_pos *pos, size_t index, + int whence), FILE *metadata_fp) { struct ctf_text_stream_pos *pos; pos = g_new0(struct ctf_text_stream_pos, 1); pos->parent.rw_table = NULL; pos->parent.event_cb = bt_dummy_write_event; + pos->parent.trace = &pos->trace_descriptor; return &pos->trace_descriptor; } static -void bt_dummy_close_trace(struct trace_descriptor *td) +int bt_dummy_close_trace(struct bt_trace_descriptor *td) { struct ctf_text_stream_pos *pos = container_of(td, struct ctf_text_stream_pos, trace_descriptor); free(pos); + return 0; } static -struct format bt_dummy_format = { +struct bt_format bt_dummy_format = { .open_trace = bt_dummy_open_trace, .close_trace = bt_dummy_close_trace, }; @@ -69,9 +87,13 @@ void __attribute__((constructor)) bt_dummy_init(void) { int ret; - bt_dummy_format.name = g_quark_from_static_string("dummy"); + bt_dummy_format.name = g_quark_from_string("dummy"); ret = bt_register_format(&bt_dummy_format); assert(!ret); } -/* TODO: finalize */ +static +void __attribute__((destructor)) bt_dummy_exit(void) +{ + bt_unregister_format(&bt_dummy_format); +}