X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fbt-dummy%2Fbt-dummy.c;h=fd10ccad39e3f79a500ddf12a87124ec135380ca;hb=7e3e3582f6fc79c97b07fad7fa7019e8a80aeb0e;hp=0850abba8433986cbd1c6632ec6c63a006c02dcd;hpb=b086c01a10fc706dacf1a5a8ea2c4a8acfa0ee24;p=babeltrace.git diff --git a/formats/bt-dummy/bt-dummy.c b/formats/bt-dummy/bt-dummy.c index 0850abba..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 @@ -31,37 +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, - void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, - int whence)) +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, }; @@ -71,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); +}