btf_var
} btf_var;
const struct btf_var *var;
const struct btf_var *var = btf_type_var(t);
static const struct btf_var *btf_type_var(const struct btf_type *t)
return (const struct btf_var *)(t + 1);
dst_reg->type = aux->btf_var.reg_type;
dst_reg->mem_size = aux->btf_var.mem_size;
dst_reg->btf = aux->btf_var.btf;
dst_reg->btf_id = aux->btf_var.btf_id;
aux->btf_var.reg_type = PTR_TO_MEM | MEM_RDONLY;
aux->btf_var.mem_size = 0;
aux->btf_var.reg_type = PTR_TO_BTF_ID | MEM_PERCPU;
aux->btf_var.btf = btf;
aux->btf_var.btf_id = type;
aux->btf_var.reg_type = PTR_TO_MEM | MEM_RDONLY;
aux->btf_var.mem_size = tsize;
aux->btf_var.reg_type = PTR_TO_BTF_ID;
aux->btf_var.btf = btf;
aux->btf_var.btf_id = type;
const struct btf_var *v = (const void *)(t + 1);
const struct btf_var *var;
var = (struct btf_var *)(t + 1);
if (btf_var(var_type)->linkage == BTF_VAR_STATIC)
if (btf_var(var)->linkage == BTF_VAR_STATIC)
if (btf_var(var_type)->linkage == BTF_VAR_STATIC)
if (btf_var(var)->linkage == BTF_VAR_STATIC)
if (btf_var(var)->linkage == BTF_VAR_STATIC)
struct btf_var *v;
sz = sizeof(struct btf_type) + sizeof(struct btf_var);
v = btf_var(t);
return base_size + sizeof(struct btf_var);
[BTF_KIND_VAR] = { sizeof(struct btf_var), 0, 0 },
btf_var(t)->linkage = bswap_32(btf_var(t)->linkage);
static inline struct btf_var *btf_var(const struct btf_type *t)
return (struct btf_var *)(t + 1);
enum btf_func_linkage linkage = btf_var(v)->linkage;
if (btf_var(vt)->linkage != BTF_VAR_STATIC)
const struct btf_var *var_extra;
var_extra = btf_var(var);
struct btf_var *var;
var = btf_var(t_var);
btf_var(t)->linkage != BTF_VAR_GLOBAL_EXTERN)
btf_var(vt)->linkage = BTF_VAR_GLOBAL_ALLOCATED;
btf_var(t)->linkage = BTF_VAR_GLOBAL_ALLOCATED;
is_static1 = btf_var(t1)->linkage == BTF_VAR_STATIC;
is_static2 = btf_var(t2)->linkage == BTF_VAR_STATIC;
return (btf_is_var(t) && btf_var(t)->linkage != BTF_VAR_STATIC)
if (btf_is_var(t) && btf_var(t)->linkage == BTF_VAR_STATIC)
btf_var(dst_t)->linkage = BTF_VAR_GLOBAL_ALLOCATED;
var_linkage = btf_var(vt)->linkage;
t->type, btf_var_linkage_str(btf_var(t)->linkage));
return base_size + sizeof(struct btf_var);
ASSERT_EQ(btf_var(t)->linkage, BTF_VAR_GLOBAL_ALLOCATED, "var_linkage");
ASSERT_EQ(btf_var(t)->linkage, BTF_VAR_GLOBAL_ALLOCATED, "var_type");