COOLBPF USERSPACE API

Functions

COOLBPF_API int coolbpf_object_load (struct coolbpf_object *cb)

load coolbpf object

Parameters:

cb

Returns:

int

COOLBPF_API int coolbpf_object_attach (struct coolbpf_object *cb)

attach coolbpf object

Parameters:

cb

Returns:

int

COOLBPF_API void coolbpf_object_destory (struct coolbpf_object *cb)

destory coolbpf object instance

Parameters:

cb

COOLBPF_API int coolbpf_object_find_map (struct coolbpf_object *cb, const char *name)

get bpf map fd from coolbpf object

Parameters:
  • cb

  • name

Returns:

int

COOLBPF_API const struct bpf_object * coolbpf_get_bpf_object (struct coolbpf_object *cb)

get bpf_object instance

Parameters:

cb

Returns:

const struct bpf_object*

COOLBPF_API uint32_t coolbpf_major_version ()

get coolbpf major verison

Returns:

uint32_t

COOLBPF_API uint32_t coolbpf_minor_version ()

get coolbpf minor version

Returns:

uint32_t

COOLBPF_API const char * coolbpf_version_string (void)

get coolbpf version as string

Returns:

const char*

COOLBPF_API void * perf_thread_worker (void *ctx)

perf thread worker

Parameters:

ctx – perf thread arguments

Returns:

void *

COOLBPF_API pthread_t initial_perf_thread (struct perf_thread_arguments *args)

Create a perf thread to receive perf events.

Parameters:

mapfd – fd of map of type BPF_MAP_TYPE_PERF_EVENT_ARRAY

Returns:

pthread_t thread id, you can use it later to destroy the thread

COOLBPF_API int kill_perf_thread (pthread_t thread)

Destroy perf thread.

Parameters:

thread – perf thread id

Returns:

int

int bump_memlock_rlimit(void)

Extend locked-in-memory address space.

Returns:

int

Defines

COOLBPF_MAJOR_VERSION 0
COOLBPF_MINOR_VERSION 1
__coolbpf_object_new(skel, preload, preattach, ctx)
coolbpf_object_new(skel) __coolbpf_object_new(skel, NULL, NULL, NULL)
coolbpf_object_new_with_prehandler(skel, preload, preattach, ctx) __coolbpf_object_new(skel, preload, preattach, ctx)

Functions

COOLBPF_API struct ksyms * ksyms__load (void)

load kernel symbols from /proc/kallsyms

Returns:

struct ksyms*

COOLBPF_API void ksyms__free (struct ksyms *ksyms)

release ksyms memory

Parameters:

ksyms – ksyms object

COOLBPF_API const struct ksym * ksyms__map_addr (const struct ksyms *ksyms, unsigned long addr)

find kernel symbol by memory address

Parameters:
  • ksyms – ksyms object

  • addr – memory address

Returns:

const struct ksym*

const struct ksym *ksyms__get_symbol(const struct ksyms *ksyms, const char *name)

find kernel symbol by symbol name

Parameters:
  • ksyms

  • name

Returns:

const struct ksym*