2015-07-01 05:14:03 +03:00
/*
* common eBPF ELF operations .
*
* Copyright ( C ) 2013 - 2015 Alexei Starovoitov < ast @ kernel . org >
* Copyright ( C ) 2015 Wang Nan < wangnan0 @ huawei . com >
* Copyright ( C ) 2015 Huawei Inc .
2016-07-04 14:02:42 +03:00
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation ;
* version 2.1 of the License ( not later ! )
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU Lesser General Public License for more details .
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program ; if not , see < http : //www.gnu.org/licenses>
2015-07-01 05:14:03 +03:00
*/
# ifndef __BPF_BPF_H
# define __BPF_BPF_H
# include <linux/bpf.h>
int bpf_create_map ( enum bpf_map_type map_type , int key_size , int value_size ,
2016-12-09 05:46:16 +03:00
int max_entries , __u32 map_flags ) ;
2015-07-01 05:14:03 +03:00
2015-07-01 05:14:06 +03:00
/* Recommend log buffer size */
# define BPF_LOG_BUF_SIZE 65536
2017-02-10 02:21:38 +03:00
int bpf_load_program ( enum bpf_prog_type type , const struct bpf_insn * insns ,
size_t insns_cnt , const char * license ,
2016-12-09 05:46:15 +03:00
__u32 kern_version , char * log_buf ,
2015-07-01 05:14:06 +03:00
size_t log_buf_sz ) ;
2015-11-24 16:36:08 +03:00
int bpf_map_update_elem ( int fd , void * key , void * value ,
2016-12-09 05:46:15 +03:00
__u64 flags ) ;
2016-11-26 10:03:25 +03:00
int bpf_map_lookup_elem ( int fd , void * key , void * value ) ;
int bpf_map_delete_elem ( int fd , void * key ) ;
int bpf_map_get_next_key ( int fd , void * key , void * next_key ) ;
int bpf_obj_pin ( int fd , const char * pathname ) ;
int bpf_obj_get ( const char * pathname ) ;
2016-12-15 01:05:26 +03:00
int bpf_prog_attach ( int prog_fd , int attachable_fd , enum bpf_attach_type type ) ;
int bpf_prog_detach ( int attachable_fd , enum bpf_attach_type type ) ;
2016-11-26 10:03:25 +03:00
2015-07-01 05:14:03 +03:00
# endif