65 lines
1.3 KiB
C
65 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2022 Google LLC
|
|
*/
|
|
|
|
#ifndef TEST_FUSE__BPF__H
|
|
#define TEST_FUSE__BPF__H
|
|
|
|
#define __EXPORTED_HEADERS__
|
|
#define __KERNEL__
|
|
|
|
#ifdef __ANDROID__
|
|
#include <stdint.h>
|
|
#endif
|
|
|
|
#include <uapi/linux/types.h>
|
|
#include <uapi/linux/bpf.h>
|
|
#include <uapi/linux/android_fuse.h>
|
|
#include <uapi/linux/fuse.h>
|
|
#include <uapi/linux/errno.h>
|
|
|
|
#define SEC(NAME) __section(NAME)
|
|
|
|
struct fuse_bpf_map {
|
|
int map_type;
|
|
size_t key_size;
|
|
size_t value_size;
|
|
int max_entries;
|
|
};
|
|
|
|
static void *(*bpf_map_lookup_elem)(struct fuse_bpf_map *map, void *key)
|
|
= (void *) 1;
|
|
|
|
static void *(*bpf_map_update_elem)(struct fuse_bpf_map *map, void *key,
|
|
void *value, int flags)
|
|
= (void *) 2;
|
|
|
|
static long (*bpf_trace_printk)(const char *fmt, __u32 fmt_size, ...)
|
|
= (void *) 6;
|
|
|
|
static long (*bpf_get_current_pid_tgid)()
|
|
= (void *) 14;
|
|
|
|
static long (*bpf_get_current_uid_gid)()
|
|
= (void *) 15;
|
|
|
|
#define bpf_printk(fmt, ...) \
|
|
({ \
|
|
char ____fmt[] = fmt; \
|
|
bpf_trace_printk(____fmt, sizeof(____fmt), \
|
|
##__VA_ARGS__); \
|
|
})
|
|
|
|
SEC("dummy") inline int strcmp(const char *a, const char *b)
|
|
{
|
|
int i;
|
|
|
|
for (i = 0; i < __builtin_strlen(b) + 1; ++i)
|
|
if (a[i] != b[i])
|
|
return -1;
|
|
|
|
return 0;
|
|
}
|
|
|
|
#endif
|