bpf_common.h 2.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/*
 * Copyright (c) 2015 PLUMgrid, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
16 17 18

#ifndef BPF_COMMON_H
#define BPF_COMMON_H
Brenden Blanco's avatar
Brenden Blanco committed
19 20

#include <stdint.h>
21
#include <stdlib.h>
Brenden Blanco's avatar
Brenden Blanco committed
22 23 24 25 26

#ifdef __cplusplus
extern "C" {
#endif

27
void * bpf_module_create_b(const char *filename, const char *proto_filename, unsigned flags);
28 29
void * bpf_module_create_c(const char *filename, unsigned flags, const char *cflags[], int ncflags);
void * bpf_module_create_c_from_string(const char *text, unsigned flags, const char *cflags[], int ncflags);
Brenden Blanco's avatar
Brenden Blanco committed
30 31 32
void bpf_module_destroy(void *program);
char * bpf_module_license(void *program);
unsigned bpf_module_kern_version(void *program);
33 34 35
size_t bpf_num_functions(void *program);
const char * bpf_function_name(void *program, size_t id);
void * bpf_function_start_id(void *program, size_t id);
Brenden Blanco's avatar
Brenden Blanco committed
36
void * bpf_function_start(void *program, const char *name);
37
size_t bpf_function_size_id(void *program, size_t id);
Brenden Blanco's avatar
Brenden Blanco committed
38
size_t bpf_function_size(void *program, const char *name);
39
size_t bpf_num_tables(void *program);
40
size_t bpf_table_id(void *program, const char *table_name);
Brenden Blanco's avatar
Brenden Blanco committed
41
int bpf_table_fd(void *program, const char *table_name);
42
int bpf_table_fd_id(void *program, size_t id);
43 44
int bpf_table_type(void *program, const char *table_name);
int bpf_table_type_id(void *program, size_t id);
45
const char * bpf_table_name(void *program, size_t id);
46
const char * bpf_table_key_desc(void *program, const char *table_name);
47
const char * bpf_table_key_desc_id(void *program, size_t id);
48
const char * bpf_table_leaf_desc(void *program, const char *table_name);
49
const char * bpf_table_leaf_desc_id(void *program, size_t id);
50 51 52 53
size_t bpf_table_key_size(void *program, const char *table_name);
size_t bpf_table_key_size_id(void *program, size_t id);
size_t bpf_table_leaf_size(void *program, const char *table_name);
size_t bpf_table_leaf_size_id(void *program, size_t id);
54 55
int bpf_table_key_snprintf(void *program, size_t id, char *buf, size_t buflen, const void *key);
int bpf_table_leaf_snprintf(void *program, size_t id, char *buf, size_t buflen, const void *leaf);
56 57
int bpf_table_key_sscanf(void *program, size_t id, const char *buf, void *key);
int bpf_table_leaf_sscanf(void *program, size_t id, const char *buf, void *leaf);
Brenden Blanco's avatar
Brenden Blanco committed
58 59 60 61

#ifdef __cplusplus
}
#endif
62 63

#endif