LIBBPF_0.0.1 {
	global:
		bpf_btf_get_fd_by_id;
		bpf_create_map;
		bpf_create_map_in_map;
		bpf_create_map_in_map_node;
		bpf_create_map_name;
		bpf_create_map_node;
		bpf_create_map_xattr;
		bpf_load_btf;
		bpf_load_program;
		bpf_load_program_xattr;
		bpf_map__btf_key_type_id;
		bpf_map__btf_value_type_id;
		bpf_map__def;
		bpf_map__fd;
		bpf_map__is_offload_neutral;
		bpf_map__name;
		bpf_map__next;
		bpf_map__pin;
		bpf_map__prev;
		bpf_map__priv;
		bpf_map__reuse_fd;
		bpf_map__set_ifindex;
		bpf_map__set_inner_map_fd;
		bpf_map__set_priv;
		bpf_map__unpin;
		bpf_map_delete_elem;
		bpf_map_get_fd_by_id;
		bpf_map_get_next_id;
		bpf_map_get_next_key;
		bpf_map_lookup_and_delete_elem;
		bpf_map_lookup_elem;
		bpf_map_update_elem;
		bpf_obj_get;
		bpf_obj_get_info_by_fd;
		bpf_obj_pin;
		bpf_object__btf_fd;
		bpf_object__close;
		bpf_object__find_map_by_name;
		bpf_object__find_map_by_offset;
		bpf_object__find_program_by_title;
		bpf_object__kversion;
		bpf_object__load;
		bpf_object__name;
		bpf_object__next;
		bpf_object__open;
		bpf_object__open_buffer;
		bpf_object__open_xattr;
		bpf_object__pin;
		bpf_object__pin_maps;
		bpf_object__pin_programs;
		bpf_object__priv;
		bpf_object__set_priv;
		bpf_object__unload;
		bpf_object__unpin_maps;
		bpf_object__unpin_programs;
		bpf_perf_event_read_simple;
		bpf_prog_attach;
		bpf_prog_detach;
		bpf_prog_detach2;
		bpf_prog_get_fd_by_id;
		bpf_prog_get_next_id;
		bpf_prog_load;
		bpf_prog_load_xattr;
		bpf_prog_query;
		bpf_prog_test_run;
		bpf_prog_test_run_xattr;
		bpf_program__fd;
		bpf_program__is_kprobe;
		bpf_program__is_perf_event;
		bpf_program__is_raw_tracepoint;
		bpf_program__is_sched_act;
		bpf_program__is_sched_cls;
		bpf_program__is_socket_filter;
		bpf_program__is_tracepoint;
		bpf_program__is_xdp;
		bpf_program__load;
		bpf_program__next;
		bpf_program__nth_fd;
		bpf_program__pin;
		bpf_program__pin_instance;
		bpf_program__prev;
		bpf_program__priv;
		bpf_program__set_expected_attach_type;
		bpf_program__set_ifindex;
		bpf_program__set_kprobe;
		bpf_program__set_perf_event;
		bpf_program__set_prep;
		bpf_program__set_priv;
		bpf_program__set_raw_tracepoint;
		bpf_program__set_sched_act;
		bpf_program__set_sched_cls;
		bpf_program__set_socket_filter;
		bpf_program__set_tracepoint;
		bpf_program__set_type;
		bpf_program__set_xdp;
		bpf_program__title;
		bpf_program__unload;
		bpf_program__unpin;
		bpf_program__unpin_instance;
		bpf_prog_linfo__free;
		bpf_prog_linfo__new;
		bpf_prog_linfo__lfind_addr_func;
		bpf_prog_linfo__lfind;
		bpf_raw_tracepoint_open;
		bpf_set_link_xdp_fd;
		bpf_task_fd_query;
		bpf_verify_program;
		btf__fd;
		btf__find_by_name;
		btf__free;
		btf__get_from_id;
		btf__name_by_offset;
		btf__new;
		btf__resolve_size;
		btf__resolve_type;
		btf__type_by_id;
		libbpf_attach_type_by_name;
		libbpf_get_error;
		libbpf_prog_type_by_name;
		libbpf_set_print;
		libbpf_strerror;
	local:
		*;
};

LIBBPF_0.0.2 {
	global:
		bpf_probe_helper;
		bpf_probe_map_type;
		bpf_probe_prog_type;
		bpf_map__resize;
		bpf_map_lookup_elem_flags;
		bpf_object__btf;
		bpf_object__find_map_fd_by_name;
		bpf_get_link_xdp_id;
		btf__dedup;
		btf__get_map_kv_tids;
		btf__get_nr_types;
		btf__get_raw_data;
		btf__load;
		btf_ext__free;
		btf_ext__func_info_rec_size;
		btf_ext__get_raw_data;
		btf_ext__line_info_rec_size;
		btf_ext__new;
		btf_ext__reloc_func_info;
		btf_ext__reloc_line_info;
		xsk_umem__create;
		xsk_socket__create;
		xsk_umem__delete;
		xsk_socket__delete;
		xsk_umem__fd;
		xsk_socket__fd;
		bpf_program__get_prog_info_linear;
		bpf_program__bpil_addr_to_offs;
		bpf_program__bpil_offs_to_addr;
} LIBBPF_0.0.1;

LIBBPF_0.0.3 {
	global:
		bpf_map__is_internal;
		bpf_map_freeze;
		btf__finalize_data;
} LIBBPF_0.0.2;

LIBBPF_0.0.4 {
	global:
		bpf_link__destroy;
		bpf_object__load_xattr;
		bpf_program__attach_kprobe;
		bpf_program__attach_perf_event;
		bpf_program__attach_raw_tracepoint;
		bpf_program__attach_tracepoint;
		bpf_program__attach_uprobe;
		btf_dump__dump_type;
		btf_dump__free;
		btf_dump__new;
		btf__parse_elf;
		libbpf_num_possible_cpus;
		perf_buffer__free;
		perf_buffer__new;
		perf_buffer__new_raw;
		perf_buffer__poll;
		xsk_umem__create;
} LIBBPF_0.0.3;

LIBBPF_0.0.5 {
	global:
		bpf_btf_get_next_id;
} LIBBPF_0.0.4;

LIBBPF_0.0.6 {
	global:
		bpf_get_link_xdp_info;
		bpf_map__get_pin_path;
		bpf_map__is_pinned;
		bpf_map__set_pin_path;
		bpf_object__open_file;
		bpf_object__open_mem;
		bpf_program__attach_trace;
		bpf_program__get_expected_attach_type;
		bpf_program__get_type;
		bpf_program__is_tracing;
		bpf_program__set_tracing;
		bpf_program__size;
		btf__find_by_name_kind;
		libbpf_find_vmlinux_btf_id;
} LIBBPF_0.0.5;

LIBBPF_0.0.7 {
	global:
		btf_dump__emit_type_decl;
		bpf_link__disconnect;
		bpf_map__attach_struct_ops;
		bpf_map_delete_batch;
		bpf_map_lookup_and_delete_batch;
		bpf_map_lookup_batch;
		bpf_map_update_batch;
		bpf_object__find_program_by_name;
		bpf_object__attach_skeleton;
		bpf_object__destroy_skeleton;
		bpf_object__detach_skeleton;
		bpf_object__load_skeleton;
		bpf_object__open_skeleton;
		bpf_probe_large_insn_limit;
		bpf_prog_attach_xattr;
		bpf_program__attach;
		bpf_program__name;
		bpf_program__is_extension;
		bpf_program__is_struct_ops;
		bpf_program__set_extension;
		bpf_program__set_struct_ops;
		btf__align_of;
		libbpf_find_kernel_btf;
} LIBBPF_0.0.6;

LIBBPF_0.0.8 {
	global:
		bpf_link__fd;
		bpf_link__open;
		bpf_link__pin;
		bpf_link__pin_path;
		bpf_link__unpin;
		bpf_link__update_program;
		bpf_link_create;
		bpf_link_update;
		bpf_map__set_initial_value;
		bpf_program__attach_cgroup;
		bpf_program__attach_lsm;
		bpf_program__is_lsm;
		bpf_program__set_attach_target;
		bpf_program__set_lsm;
		bpf_set_link_xdp_fd_opts;
} LIBBPF_0.0.7;

LIBBPF_0.0.9 {
	global:
		bpf_enable_stats;
		bpf_iter_create;
		bpf_link_get_fd_by_id;
		bpf_link_get_next_id;
		bpf_program__attach_iter;
		bpf_program__attach_netns;
		perf_buffer__consume;
		ring_buffer__add;
		ring_buffer__consume;
		ring_buffer__free;
		ring_buffer__new;
		ring_buffer__poll;
} LIBBPF_0.0.8;

LIBBPF_0.1.0 {
	global:
		bpf_link__detach;
		bpf_link_detach;
		bpf_map__ifindex;
		bpf_map__key_size;
		bpf_map__map_flags;
		bpf_map__max_entries;
		bpf_map__numa_node;
		bpf_map__set_key_size;
		bpf_map__set_map_flags;
		bpf_map__set_max_entries;
		bpf_map__set_numa_node;
		bpf_map__set_type;
		bpf_map__set_value_size;
		bpf_map__type;
		bpf_map__value_size;
		bpf_program__attach_xdp;
		bpf_program__autoload;
		bpf_program__is_sk_lookup;
		bpf_program__set_autoload;
		bpf_program__set_sk_lookup;
		btf__parse;
		btf__parse_raw;
		btf__pointer_size;
		btf__set_fd;
		btf__set_pointer_size;
} LIBBPF_0.0.9;

LIBBPF_0.2.0 {
	global:
		bpf_prog_bind_map;
		bpf_prog_test_run_opts;
		bpf_program__attach_freplace;
		bpf_program__section_name;
		btf__add_array;
		btf__add_const;
		btf__add_enum;
		btf__add_enum_value;
		btf__add_datasec;
		btf__add_datasec_var_info;
		btf__add_field;
		btf__add_func;
		btf__add_func_param;
		btf__add_func_proto;
		btf__add_fwd;
		btf__add_int;
		btf__add_ptr;
		btf__add_restrict;
		btf__add_str;
		btf__add_struct;
		btf__add_typedef;
		btf__add_union;
		btf__add_var;
		btf__add_volatile;
		btf__endianness;
		btf__find_str;
		btf__new_empty;
		btf__set_endianness;
		btf__str_by_offset;
		perf_buffer__buffer_cnt;
		perf_buffer__buffer_fd;
		perf_buffer__epoll_fd;
		perf_buffer__consume_buffer;
		xsk_socket__create_shared;
} LIBBPF_0.1.0;

LIBBPF_0.3.0 {
	global:
		btf__base_btf;
		btf__parse_elf_split;
		btf__parse_raw_split;
		btf__parse_split;
		btf__new_empty_split;
		btf__new_split;
		ring_buffer__epoll_fd;
		xsk_setup_xdp_prog;
		xsk_socket__update_xskmap;
} LIBBPF_0.2.0;

LIBBPF_0.4.0 {
	global:
		btf__add_float;
		btf__add_type;
		bpf_linker__add_file;
		bpf_linker__finalize;
		bpf_linker__free;
		bpf_linker__new;
		bpf_map__inner_map;
		bpf_object__set_kversion;
		bpf_tc_attach;
		bpf_tc_detach;
		bpf_tc_hook_create;
		bpf_tc_hook_destroy;
		bpf_tc_query;
} LIBBPF_0.3.0;
