����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */
/*
* Common user-facing libbpf helpers.
*
* Copyright (c) 2019 Facebook
*/
#ifndef __LIBBPF_LIBBPF_COMMON_H
#define __LIBBPF_LIBBPF_COMMON_H
#include <string.h>
#include "libbpf_version.h"
#ifndef LIBBPF_API
#define LIBBPF_API __attribute__((visibility("default")))
#endif
#define LIBBPF_DEPRECATED(msg) __attribute__((deprecated(msg)))
/* Mark a symbol as deprecated when libbpf version is >= {major}.{minor} */
#define LIBBPF_DEPRECATED_SINCE(major, minor, msg) \
__LIBBPF_MARK_DEPRECATED_ ## major ## _ ## minor \
(LIBBPF_DEPRECATED("libbpf v" # major "." # minor "+: " msg))
#define __LIBBPF_CURRENT_VERSION_GEQ(major, minor) \
(LIBBPF_MAJOR_VERSION > (major) || \
(LIBBPF_MAJOR_VERSION == (major) && LIBBPF_MINOR_VERSION >= (minor)))
/* Add checks for other versions below when planning deprecation of API symbols
* with the LIBBPF_DEPRECATED_SINCE macro.
*/
#if __LIBBPF_CURRENT_VERSION_GEQ(1, 0)
#define __LIBBPF_MARK_DEPRECATED_1_0(X) X
#else
#define __LIBBPF_MARK_DEPRECATED_1_0(X)
#endif
/* This set of internal macros allows to do "function overloading" based on
* number of arguments provided by used in backwards-compatible way during the
* transition to libbpf 1.0
* It's ugly but necessary evil that will be cleaned up when we get to 1.0.
* See bpf_prog_load() overload for example.
*/
#define ___libbpf_cat(A, B) A ## B
#define ___libbpf_select(NAME, NUM) ___libbpf_cat(NAME, NUM)
#define ___libbpf_nth(_1, _2, _3, _4, _5, _6, N, ...) N
#define ___libbpf_cnt(...) ___libbpf_nth(__VA_ARGS__, 6, 5, 4, 3, 2, 1)
#define ___libbpf_overload(NAME, ...) ___libbpf_select(NAME, ___libbpf_cnt(__VA_ARGS__))(__VA_ARGS__)
/* Helper macro to declare and initialize libbpf options struct
*
* This dance with uninitialized declaration, followed by memset to zero,
* followed by assignment using compound literal syntax is done to preserve
* ability to use a nice struct field initialization syntax and **hopefully**
* have all the padding bytes initialized to zero. It's not guaranteed though,
* when copying literal, that compiler won't copy garbage in literal's padding
* bytes, but that's the best way I've found and it seems to work in practice.
*
* Macro declares opts struct of given type and name, zero-initializes,
* including any extra padding, it with memset() and then assigns initial
* values provided by users in struct initializer-syntax as varargs.
*/
#define LIBBPF_OPTS(TYPE, NAME, ...) \
struct TYPE NAME = ({ \
memset(&NAME, 0, sizeof(struct TYPE)); \
(struct TYPE) { \
.sz = sizeof(struct TYPE), \
__VA_ARGS__ \
}; \
})
/* Helper macro to clear and optionally reinitialize libbpf options struct
*
* Small helper macro to reset all fields and to reinitialize the common
* structure size member. Values provided by users in struct initializer-
* syntax as varargs can be provided as well to reinitialize options struct
* specific members.
*/
#define LIBBPF_OPTS_RESET(NAME, ...) \
do { \
typeof(NAME) ___##NAME = ({ \
memset(&___##NAME, 0, sizeof(NAME)); \
(typeof(NAME)) { \
.sz = sizeof(NAME), \
__VA_ARGS__ \
}; \
}); \
memcpy(&NAME, &___##NAME, sizeof(NAME)); \
} while (0)
#endif /* __LIBBPF_LIBBPF_COMMON_H */
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Build | File | 263 B | 0644 |
|
| Makefile | File | 10.9 KB | 0644 |
|
| bpf.c | File | 36.63 KB | 0644 |
|
| bpf.h | File | 24.87 KB | 0644 |
|
| bpf_core_read.h | File | 21.89 KB | 0644 |
|
| bpf_endian.h | File | 3.66 KB | 0644 |
|
| bpf_gen_internal.h | File | 2.17 KB | 0644 |
|
| bpf_helpers.h | File | 15.51 KB | 0644 |
|
| bpf_prog_linfo.c | File | 6.14 KB | 0644 |
|
| bpf_tracing.h | File | 32.87 KB | 0644 |
|
| btf.c | File | 142.89 KB | 0644 |
|
| btf.h | File | 19.99 KB | 0644 |
|
| btf_dump.c | File | 69.04 KB | 0644 |
|
| btf_iter.c | File | 4.05 KB | 0644 |
|
| btf_relocate.c | File | 14.32 KB | 0644 |
|
| elf.c | File | 13.48 KB | 0644 |
|
| features.c | File | 17.16 KB | 0644 |
|
| gen_loader.c | File | 37.52 KB | 0644 |
|
| hashmap.c | File | 4.92 KB | 0644 |
|
| hashmap.h | File | 6.74 KB | 0644 |
|
| libbpf.c | File | 375.66 KB | 0644 |
|
| libbpf.h | File | 73.26 KB | 0644 |
|
| libbpf.map | File | 8.86 KB | 0644 |
|
| libbpf.pc.template | File | 252 B | 0644 |
|
| libbpf_common.h | File | 3.36 KB | 0644 |
|
| libbpf_errno.c | File | 2.25 KB | 0644 |
|
| libbpf_internal.h | File | 19.59 KB | 0644 |
|
| libbpf_legacy.h | File | 5.07 KB | 0644 |
|
| libbpf_probes.c | File | 11.87 KB | 0644 |
|
| libbpf_version.h | File | 242 B | 0644 |
|
| linker.c | File | 76.81 KB | 0644 |
|
| netlink.c | File | 21.65 KB | 0644 |
|
| nlattr.c | File | 4.9 KB | 0644 |
|
| nlattr.h | File | 4.23 KB | 0644 |
|
| relo_core.c | File | 50.5 KB | 0644 |
|
| relo_core.h | File | 3.26 KB | 0644 |
|
| ringbuf.c | File | 15.86 KB | 0644 |
|
| skel_internal.h | File | 8.89 KB | 0644 |
|
| str_error.c | File | 1020 B | 0644 |
|
| str_error.h | File | 235 B | 0644 |
|
| strset.c | File | 4.28 KB | 0644 |
|
| strset.h | File | 586 B | 0644 |
|
| usdt.bpf.h | File | 8.31 KB | 0644 |
|
| usdt.c | File | 51.09 KB | 0644 |
|
| zip.c | File | 8.29 KB | 0644 |
|
| zip.h | File | 1.24 KB | 0644 |
|