File: tags.c

package info (click to toggle)
golang-github-cilium-ebpf 0.17.3%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 4,684 kB
  • sloc: ansic: 1,259; makefile: 127; python: 113; awk: 29; sh: 24
file content (37 lines) | stat: -rw-r--r-- 763 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "../../testdata/common.h"

#define tagA __attribute__((btf_decl_tag("a")))
#define tagB __attribute__((btf_decl_tag("b")))
#define tagC __attribute__((btf_decl_tag("c")))
#define tagD __attribute__((btf_decl_tag("d")))
#define tagE __attribute__((btf_decl_tag("e")))

struct s {
	char tagA foo;
	char tagB bar;
} tagC;

union u {
	char tagA foo;
	char tagB bar;
} tagC;

typedef tagB char td;

struct s tagD s1;
union u tagE u1;
td tagA t1;

int tagA tagB fwdDecl(char tagC x, char tagD y);

int tagE normalDecl1(char tagB x, char tagC y) {
	return fwdDecl(x, y);
}

int tagE normalDecl2(char tagB x, char tagC y) {
	return fwdDecl(x, y);
}

__section("syscall") int prog(char *ctx) {
	return normalDecl1(ctx[0], ctx[1]) + normalDecl2(ctx[2], ctx[3]);
}