1*387f9dfdSAndroid Build Coastguard Worker /* 2*387f9dfdSAndroid Build Coastguard Worker * Copyright (c) 2015 PLUMgrid, Inc. 3*387f9dfdSAndroid Build Coastguard Worker * 4*387f9dfdSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*387f9dfdSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*387f9dfdSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*387f9dfdSAndroid Build Coastguard Worker * 8*387f9dfdSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*387f9dfdSAndroid Build Coastguard Worker * 10*387f9dfdSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*387f9dfdSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*387f9dfdSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*387f9dfdSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*387f9dfdSAndroid Build Coastguard Worker * limitations under the License. 15*387f9dfdSAndroid Build Coastguard Worker */ 16*387f9dfdSAndroid Build Coastguard Worker 17*387f9dfdSAndroid Build Coastguard Worker #ifndef BCC_COMMON_H 18*387f9dfdSAndroid Build Coastguard Worker #define BCC_COMMON_H 19*387f9dfdSAndroid Build Coastguard Worker 20*387f9dfdSAndroid Build Coastguard Worker #include <stdbool.h> 21*387f9dfdSAndroid Build Coastguard Worker #include <stdint.h> 22*387f9dfdSAndroid Build Coastguard Worker #include <stdlib.h> 23*387f9dfdSAndroid Build Coastguard Worker 24*387f9dfdSAndroid Build Coastguard Worker #ifdef __cplusplus 25*387f9dfdSAndroid Build Coastguard Worker extern "C" { 26*387f9dfdSAndroid Build Coastguard Worker #endif 27*387f9dfdSAndroid Build Coastguard Worker 28*387f9dfdSAndroid Build Coastguard Worker void * bpf_module_create_c(const char *filename, unsigned flags, const char *cflags[], int ncflags, 29*387f9dfdSAndroid Build Coastguard Worker bool allow_rlimit, const char *dev_name); 30*387f9dfdSAndroid Build Coastguard Worker void * bpf_module_create_c_from_string(const char *text, unsigned flags, const char *cflags[], 31*387f9dfdSAndroid Build Coastguard Worker int ncflags, bool allow_rlimit, 32*387f9dfdSAndroid Build Coastguard Worker const char *dev_name); 33*387f9dfdSAndroid Build Coastguard Worker bool bpf_module_rw_engine_enabled(); 34*387f9dfdSAndroid Build Coastguard Worker void bpf_module_destroy(void *program); 35*387f9dfdSAndroid Build Coastguard Worker char * bpf_module_license(void *program); 36*387f9dfdSAndroid Build Coastguard Worker unsigned bpf_module_kern_version(void *program); 37*387f9dfdSAndroid Build Coastguard Worker size_t bpf_num_functions(void *program); 38*387f9dfdSAndroid Build Coastguard Worker const char * bpf_function_name(void *program, size_t id); 39*387f9dfdSAndroid Build Coastguard Worker void * bpf_function_start_id(void *program, size_t id); 40*387f9dfdSAndroid Build Coastguard Worker void * bpf_function_start(void *program, const char *name); 41*387f9dfdSAndroid Build Coastguard Worker size_t bpf_function_size_id(void *program, size_t id); 42*387f9dfdSAndroid Build Coastguard Worker size_t bpf_function_size(void *program, const char *name); 43*387f9dfdSAndroid Build Coastguard Worker size_t bpf_num_tables(void *program); 44*387f9dfdSAndroid Build Coastguard Worker size_t bpf_table_id(void *program, const char *table_name); 45*387f9dfdSAndroid Build Coastguard Worker int bpf_table_fd(void *program, const char *table_name); 46*387f9dfdSAndroid Build Coastguard Worker int bpf_table_fd_id(void *program, size_t id); 47*387f9dfdSAndroid Build Coastguard Worker int bpf_table_type(void *program, const char *table_name); 48*387f9dfdSAndroid Build Coastguard Worker int bpf_table_type_id(void *program, size_t id); 49*387f9dfdSAndroid Build Coastguard Worker size_t bpf_table_max_entries(void *program, const char *table_name); 50*387f9dfdSAndroid Build Coastguard Worker size_t bpf_table_max_entries_id(void *program, size_t id); 51*387f9dfdSAndroid Build Coastguard Worker int bpf_table_flags(void *program, const char *table_name); 52*387f9dfdSAndroid Build Coastguard Worker int bpf_table_flags_id(void *program, size_t id); 53*387f9dfdSAndroid Build Coastguard Worker const char * bpf_table_name(void *program, size_t id); 54*387f9dfdSAndroid Build Coastguard Worker const char * bpf_table_key_desc(void *program, const char *table_name); 55*387f9dfdSAndroid Build Coastguard Worker const char * bpf_table_key_desc_id(void *program, size_t id); 56*387f9dfdSAndroid Build Coastguard Worker const char * bpf_table_leaf_desc(void *program, const char *table_name); 57*387f9dfdSAndroid Build Coastguard Worker const char * bpf_table_leaf_desc_id(void *program, size_t id); 58*387f9dfdSAndroid Build Coastguard Worker size_t bpf_table_key_size(void *program, const char *table_name); 59*387f9dfdSAndroid Build Coastguard Worker size_t bpf_table_key_size_id(void *program, size_t id); 60*387f9dfdSAndroid Build Coastguard Worker size_t bpf_table_leaf_size(void *program, const char *table_name); 61*387f9dfdSAndroid Build Coastguard Worker size_t bpf_table_leaf_size_id(void *program, size_t id); 62*387f9dfdSAndroid Build Coastguard Worker int bpf_table_key_snprintf(void *program, size_t id, char *buf, size_t buflen, const void *key); 63*387f9dfdSAndroid Build Coastguard Worker int bpf_table_leaf_snprintf(void *program, size_t id, char *buf, size_t buflen, const void *leaf); 64*387f9dfdSAndroid Build Coastguard Worker int bpf_table_key_sscanf(void *program, size_t id, const char *buf, void *key); 65*387f9dfdSAndroid Build Coastguard Worker int bpf_table_leaf_sscanf(void *program, size_t id, const char *buf, void *leaf); 66*387f9dfdSAndroid Build Coastguard Worker size_t bpf_perf_event_fields(void *program, const char *event); 67*387f9dfdSAndroid Build Coastguard Worker const char * bpf_perf_event_field(void *program, const char *event, size_t i); 68*387f9dfdSAndroid Build Coastguard Worker 69*387f9dfdSAndroid Build Coastguard Worker struct bpf_insn; 70*387f9dfdSAndroid Build Coastguard Worker int bcc_func_load(void *program, int prog_type, const char *name, 71*387f9dfdSAndroid Build Coastguard Worker const struct bpf_insn *insns, int prog_len, 72*387f9dfdSAndroid Build Coastguard Worker const char *license, unsigned kern_version, 73*387f9dfdSAndroid Build Coastguard Worker int log_level, char *log_buf, unsigned log_buf_size, 74*387f9dfdSAndroid Build Coastguard Worker const char *dev_name, int attach_type); 75*387f9dfdSAndroid Build Coastguard Worker 76*387f9dfdSAndroid Build Coastguard Worker #ifdef __cplusplus 77*387f9dfdSAndroid Build Coastguard Worker } 78*387f9dfdSAndroid Build Coastguard Worker #endif 79*387f9dfdSAndroid Build Coastguard Worker 80*387f9dfdSAndroid Build Coastguard Worker #endif 81