brintos

brintos / linux-shallow public Read only

0
0
Text · 13.3 KiB · 823f727 Raw
640 lines · c
1// SPDX-License-Identifier: GPL-2.02 3#include <linux/bpf.h>4#include <bpf/bpf_helpers.h>5#include "bpf_misc.h"6 7SEC("socket")8__description("check deducing bounds from non-const, jmp64, <non_const> == <const>, 1")9__success __retval(0)10__naked void deducing_bounds_from_non_const_1(void)11{12	asm volatile ("					\13	call %[bpf_ktime_get_ns];			\14	if r0 < 3 goto l0_%=;				\15	r2 = 2;						\16	if r0 == r2 goto l1_%=;				\17l0_%=:							\18	r0 = 0;						\19	exit;						\20l1_%=:							\21	r0 -= r1;					\22	exit;						\23"	:24	: __imm(bpf_ktime_get_ns)25	: __clobber_all);26}27 28SEC("socket")29__description("check deducing bounds from non-const, jmp64, <non_const> == <const>, 2")30__success __retval(0)31__naked void deducing_bounds_from_non_const_2(void)32{33	asm volatile ("					\34	call %[bpf_ktime_get_ns];			\35	if r0 > 3 goto l0_%=;				\36	r2 = 4;						\37	if r0 == r2 goto l1_%=;				\38l0_%=:							\39	r0 = 0;						\40	exit;						\41l1_%=:							\42	r0 -= r1;					\43	exit;						\44"	:45	: __imm(bpf_ktime_get_ns)46	: __clobber_all);47}48 49SEC("socket")50__description("check deducing bounds from non-const, jmp64, <non_const> != <const>, 1")51__success __retval(0)52__naked void deducing_bounds_from_non_const_3(void)53{54	asm volatile ("					\55	call %[bpf_ktime_get_ns];			\56	if r0 < 3 goto l0_%=;				\57	r2 = 2;						\58	if r0 != r2 goto l0_%=;				\59	goto l1_%=;					\60l0_%=:							\61	r0 = 0;						\62	exit;						\63l1_%=:							\64	r0 -= r1;					\65	exit;						\66"	:67	: __imm(bpf_ktime_get_ns)68	: __clobber_all);69}70 71SEC("socket")72__description("check deducing bounds from non-const, jmp64, <non_const> != <const>, 2")73__success __retval(0)74__naked void deducing_bounds_from_non_const_4(void)75{76	asm volatile ("					\77	call %[bpf_ktime_get_ns];			\78	if r0 > 3 goto l0_%=;				\79	r2 = 4;						\80	if r0 != r2 goto l0_%=;				\81	goto l1_%=;					\82l0_%=:							\83	r0 = 0;						\84	exit;						\85l1_%=:							\86	r0 -= r1;					\87	exit;						\88"	:89	: __imm(bpf_ktime_get_ns)90	: __clobber_all);91}92 93SEC("socket")94__description("check deducing bounds from non-const, jmp32, <non_const> == <const>, 1")95__success __retval(0)96__naked void deducing_bounds_from_non_const_5(void)97{98	asm volatile ("					\99	call %[bpf_ktime_get_ns];			\100	if w0 < 4 goto l0_%=;				\101	w2 = 3;						\102	if w0 == w2 goto l1_%=;				\103l0_%=:							\104	r0 = 0;						\105	exit;						\106l1_%=:							\107	r0 -= r1;					\108	exit;						\109"	:110	: __imm(bpf_ktime_get_ns)111	: __clobber_all);112}113 114SEC("socket")115__description("check deducing bounds from non-const, jmp32, <non_const> == <const>, 2")116__success __retval(0)117__naked void deducing_bounds_from_non_const_6(void)118{119	asm volatile ("					\120	call %[bpf_ktime_get_ns];			\121	if w0 > 4 goto l0_%=;				\122	w2 = 5;						\123	if w0 == w2 goto l1_%=;				\124l0_%=:							\125	r0 = 0;						\126	exit;						\127l1_%=:							\128	r0 -= r1;					\129	exit;						\130"	:131	: __imm(bpf_ktime_get_ns)132	: __clobber_all);133}134 135SEC("socket")136__description("check deducing bounds from non-const, jmp32, <non_const> != <const>, 1")137__success __retval(0)138__naked void deducing_bounds_from_non_const_7(void)139{140	asm volatile ("					\141	call %[bpf_ktime_get_ns];			\142	if w0 < 3 goto l0_%=;				\143	w2 = 2;						\144	if w0 != w2 goto l0_%=;				\145	goto l1_%=;					\146l0_%=:							\147	r0 = 0;						\148	exit;						\149l1_%=:							\150	r0 -= r1;					\151	exit;						\152"	:153	: __imm(bpf_ktime_get_ns)154	: __clobber_all);155}156 157SEC("socket")158__description("check deducing bounds from non-const, jmp32, <non_const> != <const>, 2")159__success __retval(0)160__naked void deducing_bounds_from_non_const_8(void)161{162	asm volatile ("					\163	call %[bpf_ktime_get_ns];			\164	if w0 > 3 goto l0_%=;				\165	w2 = 4;						\166	if w0 != w2 goto l0_%=;				\167	goto l1_%=;					\168l0_%=:							\169	r0 = 0;						\170	exit;						\171l1_%=:							\172	r0 -= r1;					\173	exit;						\174"	:175	: __imm(bpf_ktime_get_ns)176	: __clobber_all);177}178 179SEC("socket")180__description("check deducing bounds from non-const, jmp64, <const> > <non_const>, 1")181__success __retval(0)182__naked void deducing_bounds_from_non_const_9(void)183{184	asm volatile ("					\185	call %[bpf_ktime_get_ns];			\186	r2 = 0;						\187	if r2 > r0 goto l0_%=;				\188	r0 = 0;						\189	exit;						\190l0_%=:							\191	r0 -= r1;					\192	exit;						\193"	:194	: __imm(bpf_ktime_get_ns)195	: __clobber_all);196}197 198SEC("socket")199__description("check deducing bounds from non-const, jmp64, <const> > <non_const>, 2")200__success __retval(0)201__naked void deducing_bounds_from_non_const_10(void)202{203	asm volatile ("					\204	call %[bpf_ktime_get_ns];			\205	if r0 < 4 goto l0_%=;				\206	r2 = 4;						\207	if r2 > r0 goto l1_%=;				\208l0_%=:							\209	r0 = 0;						\210	exit;						\211l1_%=:							\212	r0 -= r1;					\213	exit;						\214"	:215	: __imm(bpf_ktime_get_ns)216	: __clobber_all);217}218 219SEC("socket")220__description("check deducing bounds from non-const, jmp64, <const> >= <non_const>")221__success __retval(0)222__naked void deducing_bounds_from_non_const_11(void)223{224	asm volatile ("					\225	call %[bpf_ktime_get_ns];			\226	if r0 < 4 goto l0_%=;				\227	r2 = 3;						\228	if r2 >= r0 goto l1_%=;				\229l0_%=:							\230	r0 = 0;						\231	exit;						\232l1_%=:							\233	r0 -= r1;					\234	exit;						\235"	:236	: __imm(bpf_ktime_get_ns)237	: __clobber_all);238}239 240SEC("socket")241__description("check deducing bounds from non-const, jmp64, <const> < <non_const>")242__success __retval(0)243__naked void deducing_bounds_from_non_const_12(void)244{245	asm volatile ("					\246	call %[bpf_ktime_get_ns];			\247	if r0 > 4 goto l0_%=;				\248	r2 = 4;						\249	if r2 < r0 goto l1_%=;				\250l0_%=:							\251	r0 = 0;						\252	exit;						\253l1_%=:							\254	r0 -= r1;					\255	exit;						\256"	:257	: __imm(bpf_ktime_get_ns)258	: __clobber_all);259}260 261SEC("socket")262__description("check deducing bounds from non-const, jmp64, <const> <= <non_const>")263__success __retval(0)264__naked void deducing_bounds_from_non_const_13(void)265{266	asm volatile ("					\267	call %[bpf_ktime_get_ns];			\268	if r0 >= 4 goto l0_%=;				\269	r2 = 4;						\270	if r2 <= r0 goto l1_%=;				\271l0_%=:							\272	r0 = 0;						\273	exit;						\274l1_%=:							\275	r0 -= r1;					\276	exit;						\277"	:278	: __imm(bpf_ktime_get_ns)279	: __clobber_all);280}281 282SEC("socket")283__description("check deducing bounds from non-const, jmp64, <const> == <non_const>")284__success __retval(0)285__naked void deducing_bounds_from_non_const_14(void)286{287	asm volatile ("					\288	call %[bpf_ktime_get_ns];			\289	if r0 < 3 goto l0_%=;				\290	r2 = 2;						\291	if r2 == r0 goto l1_%=;				\292l0_%=:							\293	r0 = 0;						\294	exit;						\295l1_%=:							\296	r0 -= r1;					\297	exit;						\298"	:299	: __imm(bpf_ktime_get_ns)300	: __clobber_all);301}302 303SEC("socket")304__description("check deducing bounds from non-const, jmp64, <const> s> <non_const>")305__success __retval(0)306__naked void deducing_bounds_from_non_const_15(void)307{308	asm volatile ("					\309	call %[bpf_ktime_get_ns];			\310	if r0 s< 4 goto l0_%=;				\311	r2 = 4;						\312	if r2 s> r0 goto l1_%=;				\313l0_%=:							\314	r0 = 0;						\315	exit;						\316l1_%=:							\317	r0 -= r1;					\318	exit;						\319"	:320	: __imm(bpf_ktime_get_ns)321	: __clobber_all);322}323 324SEC("socket")325__description("check deducing bounds from non-const, jmp64, <const> s>= <non_const>")326__success __retval(0)327__naked void deducing_bounds_from_non_const_16(void)328{329	asm volatile ("					\330	call %[bpf_ktime_get_ns];			\331	if r0 s< 4 goto l0_%=;				\332	r2 = 3;						\333	if r2 s>= r0 goto l1_%=;				\334l0_%=:							\335	r0 = 0;						\336	exit;						\337l1_%=:							\338	r0 -= r1;					\339	exit;						\340"	:341	: __imm(bpf_ktime_get_ns)342	: __clobber_all);343}344 345SEC("socket")346__description("check deducing bounds from non-const, jmp64, <const> s< <non_const>")347__success __retval(0)348__naked void deducing_bounds_from_non_const_17(void)349{350	asm volatile ("					\351	call %[bpf_ktime_get_ns];			\352	if r0 s> 4 goto l0_%=;				\353	r2 = 4;						\354	if r2 s< r0 goto l1_%=;				\355l0_%=:							\356	r0 = 0;						\357	exit;						\358l1_%=:							\359	r0 -= r1;					\360	exit;						\361"	:362	: __imm(bpf_ktime_get_ns)363	: __clobber_all);364}365 366SEC("socket")367__description("check deducing bounds from non-const, jmp64, <const> s<= <non_const>")368__success __retval(0)369__naked void deducing_bounds_from_non_const_18(void)370{371	asm volatile ("					\372	call %[bpf_ktime_get_ns];			\373	if r0 s> 4 goto l0_%=;				\374	r2 = 5;						\375	if r2 s<= r0 goto l1_%=;				\376l0_%=:							\377	r0 = 0;						\378	exit;						\379l1_%=:							\380	r0 -= r1;					\381	exit;						\382"	:383	: __imm(bpf_ktime_get_ns)384	: __clobber_all);385}386 387SEC("socket")388__description("check deducing bounds from non-const, jmp64, <const> != <non_const>")389__success __retval(0)390__naked void deducing_bounds_from_non_const_19(void)391{392	asm volatile ("					\393	call %[bpf_ktime_get_ns];			\394	if r0 < 3 goto l0_%=;				\395	r2 = 2;						\396	if r2 != r0 goto l0_%=;				\397	goto l1_%=;					\398l0_%=:							\399	r0 = 0;						\400	exit;						\401l1_%=:							\402	r0 -= r1;					\403	exit;						\404"	:405	: __imm(bpf_ktime_get_ns)406	: __clobber_all);407}408 409SEC("socket")410__description("check deducing bounds from non-const, jmp32, <const> > <non_const>, 1")411__success __retval(0)412__naked void deducing_bounds_from_non_const_20(void)413{414	asm volatile ("					\415	call %[bpf_ktime_get_ns];			\416	w2 = 0;						\417	if w2 > w0 goto l0_%=;				\418	r0 = 0;						\419	exit;						\420l0_%=:							\421	r0 -= r1;					\422	exit;						\423"	:424	: __imm(bpf_ktime_get_ns)425	: __clobber_all);426}427 428SEC("socket")429__description("check deducing bounds from non-const, jmp32, <const> > <non_const>, 2")430__success __retval(0)431__naked void deducing_bounds_from_non_const_21(void)432{433	asm volatile ("					\434	call %[bpf_ktime_get_ns];			\435	if w0 < 4 goto l0_%=;				\436	w2 = 4;						\437	if w2 > w0 goto l1_%=;				\438l0_%=:							\439	r0 = 0;						\440	exit;						\441l1_%=:							\442	r0 -= r1;					\443	exit;						\444"	:445	: __imm(bpf_ktime_get_ns)446	: __clobber_all);447}448 449SEC("socket")450__description("check deducing bounds from non-const, jmp32, <const> >= <non_const>")451__success __retval(0)452__naked void deducing_bounds_from_non_const_22(void)453{454	asm volatile ("					\455	call %[bpf_ktime_get_ns];			\456	if w0 < 4 goto l0_%=;				\457	w2 = 3;						\458	if w2 >= w0 goto l1_%=;				\459l0_%=:							\460	r0 = 0;						\461	exit;						\462l1_%=:							\463	r0 -= r1;					\464	exit;						\465"	:466	: __imm(bpf_ktime_get_ns)467	: __clobber_all);468}469 470SEC("socket")471__description("check deducing bounds from non-const, jmp32, <const> < <non_const>")472__success __retval(0)473__naked void deducing_bounds_from_non_const_23(void)474{475	asm volatile ("					\476	call %[bpf_ktime_get_ns];			\477	if w0 > 4 goto l0_%=;				\478	w2 = 4;						\479	if w2 < w0 goto l1_%=;				\480l0_%=:							\481	r0 = 0;						\482	exit;						\483l1_%=:							\484	r0 -= r1;					\485	exit;						\486"	:487	: __imm(bpf_ktime_get_ns)488	: __clobber_all);489}490 491SEC("socket")492__description("check deducing bounds from non-const, jmp32, <const> <= <non_const>")493__success __retval(0)494__naked void deducing_bounds_from_non_const_24(void)495{496	asm volatile ("					\497	call %[bpf_ktime_get_ns];			\498	if w0 >= 4 goto l0_%=;				\499	w2 = 4;						\500	if w2 <= w0 goto l1_%=;				\501l0_%=:							\502	r0 = 0;						\503	exit;						\504l1_%=:							\505	r0 -= r1;					\506	exit;						\507"	:508	: __imm(bpf_ktime_get_ns)509	: __clobber_all);510}511 512SEC("socket")513__description("check deducing bounds from non-const, jmp32, <const> == <non_const>")514__success __retval(0)515__naked void deducing_bounds_from_non_const_25(void)516{517	asm volatile ("					\518	call %[bpf_ktime_get_ns];			\519	if w0 < 4 goto l0_%=;				\520	w2 = 3;						\521	if w2 == w0 goto l1_%=;				\522l0_%=:							\523	r0 = 0;						\524	exit;						\525l1_%=:							\526	r0 -= r1;					\527	exit;						\528"	:529	: __imm(bpf_ktime_get_ns)530	: __clobber_all);531}532 533SEC("socket")534__description("check deducing bounds from non-const, jmp32, <const> s> <non_const>")535__success __retval(0)536__naked void deducing_bounds_from_non_const_26(void)537{538	asm volatile ("					\539	call %[bpf_ktime_get_ns];			\540	if w0 s< 4 goto l0_%=;				\541	w2 = 4;						\542	if w2 s> w0 goto l1_%=;				\543l0_%=:							\544	r0 = 0;						\545	exit;						\546l1_%=:							\547	r0 -= r1;					\548	exit;						\549"	:550	: __imm(bpf_ktime_get_ns)551	: __clobber_all);552}553 554SEC("socket")555__description("check deducing bounds from non-const, jmp32, <const> s>= <non_const>")556__success __retval(0)557__naked void deducing_bounds_from_non_const_27(void)558{559	asm volatile ("					\560	call %[bpf_ktime_get_ns];			\561	if w0 s< 4 goto l0_%=;				\562	w2 = 3;						\563	if w2 s>= w0 goto l1_%=;				\564l0_%=:							\565	r0 = 0;						\566	exit;						\567l1_%=:							\568	r0 -= r1;					\569	exit;						\570"	:571	: __imm(bpf_ktime_get_ns)572	: __clobber_all);573}574 575SEC("socket")576__description("check deducing bounds from non-const, jmp32, <const> s< <non_const>")577__success __retval(0)578__naked void deducing_bounds_from_non_const_28(void)579{580	asm volatile ("					\581	call %[bpf_ktime_get_ns];			\582	if w0 s> 4 goto l0_%=;				\583	w2 = 5;						\584	if w2 s< w0 goto l1_%=;				\585l0_%=:							\586	r0 = 0;						\587	exit;						\588l1_%=:							\589	r0 -= r1;					\590	exit;						\591"	:592	: __imm(bpf_ktime_get_ns)593	: __clobber_all);594}595 596SEC("socket")597__description("check deducing bounds from non-const, jmp32, <const> s<= <non_const>")598__success __retval(0)599__naked void deducing_bounds_from_non_const_29(void)600{601	asm volatile ("					\602	call %[bpf_ktime_get_ns];			\603	if w0 s>= 4 goto l0_%=;				\604	w2 = 4;						\605	if w2 s<= w0 goto l1_%=;				\606l0_%=:							\607	r0 = 0;						\608	exit;						\609l1_%=:							\610	r0 -= r1;					\611	exit;						\612"	:613	: __imm(bpf_ktime_get_ns)614	: __clobber_all);615}616 617SEC("socket")618__description("check deducing bounds from non-const, jmp32, <const> != <non_const>")619__success __retval(0)620__naked void deducing_bounds_from_non_const_30(void)621{622	asm volatile ("					\623	call %[bpf_ktime_get_ns];			\624	if w0 < 3 goto l0_%=;				\625	w2 = 2;						\626	if w2 != w0 goto l0_%=;				\627	goto l1_%=;					\628l0_%=:							\629	r0 = 0;						\630	exit;						\631l1_%=:							\632	r0 -= r1;					\633	exit;						\634"	:635	: __imm(bpf_ktime_get_ns)636	: __clobber_all);637}638 639char _license[] SEC("license") = "GPL";640