X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;ds=inline;f=liblttng-ust%2Flttng-bytecode.h;h=11c7b7dc53853199248c3fd14b256a6ad18b2f98;hb=c0c0989ab70574e09b2f7e8b48c2da6af664a849;hp=7f3e5ce8e87a9dd6e6b06dc5c2d592adcb721b8f;hpb=d37ecb3fc622dee6f80f84c21f38d32eef407262;p=lttng-ust.git diff --git a/liblttng-ust/lttng-bytecode.h b/liblttng-ust/lttng-bytecode.h index 7f3e5ce8..11c7b7dc 100644 --- a/liblttng-ust/lttng-bytecode.h +++ b/liblttng-ust/lttng-bytecode.h @@ -1,32 +1,14 @@ -#ifndef _LTTNG_BYTECODE_H -#define _LTTNG_BYTECODE_H - /* - * lttng-bytecode.h - * - * LTTng UST bytecode header. + * SPDX-License-Identifier: MIT * * Copyright (C) 2010-2016 Mathieu Desnoyers * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 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. + * LTTng UST bytecode header. */ +#ifndef _LTTNG_BYTECODE_H +#define _LTTNG_BYTECODE_H + #include #include #include @@ -332,23 +314,32 @@ struct lttng_interpreter_output { } u; }; +/* Should be hidden but would break the ABI */ const char *print_op(enum bytecode_op op); +LTTNG_HIDDEN void lttng_bytecode_filter_sync_state(struct lttng_bytecode_runtime *runtime); +LTTNG_HIDDEN void lttng_bytecode_capture_sync_state(struct lttng_bytecode_runtime *runtime); +LTTNG_HIDDEN int lttng_bytecode_validate(struct bytecode_runtime *bytecode); +LTTNG_HIDDEN int lttng_bytecode_specialize(const struct lttng_event_desc *event_desc, struct bytecode_runtime *bytecode); +LTTNG_HIDDEN uint64_t lttng_bytecode_filter_interpret_false(void *filter_data, const char *filter_stack_data); +LTTNG_HIDDEN uint64_t lttng_bytecode_filter_interpret(void *filter_data, const char *filter_stack_data); +LTTNG_HIDDEN uint64_t lttng_bytecode_capture_interpret_false(void *capture_data, const char *capture_stack_data, struct lttng_interpreter_output *output); +LTTNG_HIDDEN uint64_t lttng_bytecode_capture_interpret(void *capture_data, const char *capture_stack_data, struct lttng_interpreter_output *output);