mirror of https://github.com/aya-rs/aya
34 lines
984 B
C
34 lines
984 B
C
#include "reloc.h"
|
|
|
|
enum relocated_enum_signed_32_checked_variants {
|
|
#ifndef TARGET
|
|
S32_VAL_A = -0x7AAAAAAA,
|
|
#endif
|
|
S32_VAL_B = -0x7BBBBBBB,
|
|
#ifdef TARGET
|
|
S32_VAL_C = -0x7CCCCCCC
|
|
#endif
|
|
};
|
|
|
|
__noinline int enum_signed_32_checked_variants_global() {
|
|
#ifndef TARGET
|
|
if (bpf_core_enum_value_exists(enum relocated_enum_signed_32_checked_variants,
|
|
S32_VAL_A)) {
|
|
return set_output(bpf_core_enum_value(
|
|
enum relocated_enum_signed_32_checked_variants, S32_VAL_A));
|
|
#else
|
|
if (bpf_core_enum_value_exists(enum relocated_enum_signed_32_checked_variants,
|
|
S32_VAL_C)) {
|
|
return set_output(bpf_core_enum_value(
|
|
enum relocated_enum_signed_32_checked_variants, S32_VAL_C));
|
|
#endif
|
|
} else {
|
|
return set_output(bpf_core_enum_value(
|
|
enum relocated_enum_signed_32_checked_variants, S32_VAL_B));
|
|
}
|
|
}
|
|
|
|
SEC("uprobe") int program(void *ctx) {
|
|
return enum_signed_32_checked_variants_global();
|
|
}
|