1e3ed2fefSWang Nan /* 2e3ed2fefSWang Nan * common eBPF ELF operations. 3e3ed2fefSWang Nan * 4e3ed2fefSWang Nan * Copyright (C) 2013-2015 Alexei Starovoitov <ast@kernel.org> 5e3ed2fefSWang Nan * Copyright (C) 2015 Wang Nan <wangnan0@huawei.com> 6e3ed2fefSWang Nan * Copyright (C) 2015 Huawei Inc. 7*203d1cacSWang Nan * 8*203d1cacSWang Nan * This program is free software; you can redistribute it and/or 9*203d1cacSWang Nan * modify it under the terms of the GNU Lesser General Public 10*203d1cacSWang Nan * License as published by the Free Software Foundation; 11*203d1cacSWang Nan * version 2.1 of the License (not later!) 12*203d1cacSWang Nan * 13*203d1cacSWang Nan * This program is distributed in the hope that it will be useful, 14*203d1cacSWang Nan * but WITHOUT ANY WARRANTY; without even the implied warranty of 15*203d1cacSWang Nan * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*203d1cacSWang Nan * GNU Lesser General Public License for more details. 17*203d1cacSWang Nan * 18*203d1cacSWang Nan * You should have received a copy of the GNU Lesser General Public 19*203d1cacSWang Nan * License along with this program; if not, see <http://www.gnu.org/licenses> 20e3ed2fefSWang Nan */ 21e3ed2fefSWang Nan #ifndef __BPF_BPF_H 22e3ed2fefSWang Nan #define __BPF_BPF_H 23e3ed2fefSWang Nan 24e3ed2fefSWang Nan #include <linux/bpf.h> 25e3ed2fefSWang Nan 26e3ed2fefSWang Nan int bpf_create_map(enum bpf_map_type map_type, int key_size, int value_size, 27e3ed2fefSWang Nan int max_entries); 28e3ed2fefSWang Nan 297bf98369SWang Nan /* Recommend log buffer size */ 307bf98369SWang Nan #define BPF_LOG_BUF_SIZE 65536 317bf98369SWang Nan int bpf_load_program(enum bpf_prog_type type, struct bpf_insn *insns, 327bf98369SWang Nan size_t insns_cnt, char *license, 337bf98369SWang Nan u32 kern_version, char *log_buf, 347bf98369SWang Nan size_t log_buf_sz); 357bf98369SWang Nan 3643798bf3SHe Kuang int bpf_map_update_elem(int fd, void *key, void *value, 3743798bf3SHe Kuang u64 flags); 38e3ed2fefSWang Nan #endif 39