1*8920c5f2SDmitry Chagin /*- 2*8920c5f2SDmitry Chagin * Copyright (c) 2023 Dmitry Chagin <dchagin@FreeBSD.org> 3*8920c5f2SDmitry Chagin * 4*8920c5f2SDmitry Chagin * SPDX-License-Identifier: BSD-2-Clause 5*8920c5f2SDmitry Chagin */ 6*8920c5f2SDmitry Chagin 7*8920c5f2SDmitry Chagin #include <sys/systm.h> 8*8920c5f2SDmitry Chagin #include <vm/vm_param.h> 9*8920c5f2SDmitry Chagin 10*8920c5f2SDmitry Chagin #include <atf-c.h> 11*8920c5f2SDmitry Chagin 12*8920c5f2SDmitry Chagin extern int checkstack(void); 13*8920c5f2SDmitry Chagin 14*8920c5f2SDmitry Chagin static int jumpstack0(void) __noinline; 15*8920c5f2SDmitry Chagin static int jumpstack1(void) __noinline; 16*8920c5f2SDmitry Chagin 17*8920c5f2SDmitry Chagin 18*8920c5f2SDmitry Chagin static int jumpstack0(void)19*8920c5f2SDmitry Chaginjumpstack0(void) 20*8920c5f2SDmitry Chagin { 21*8920c5f2SDmitry Chagin char stack[SGROWSIZ]; 22*8920c5f2SDmitry Chagin 23*8920c5f2SDmitry Chagin explicit_bzero(stack, sizeof(stack)); 24*8920c5f2SDmitry Chagin return (checkstack()); 25*8920c5f2SDmitry Chagin } 26*8920c5f2SDmitry Chagin 27*8920c5f2SDmitry Chagin static int jumpstack1(void)28*8920c5f2SDmitry Chaginjumpstack1(void) 29*8920c5f2SDmitry Chagin { 30*8920c5f2SDmitry Chagin char stack[SGROWSIZ * 2]; 31*8920c5f2SDmitry Chagin 32*8920c5f2SDmitry Chagin explicit_bzero(stack, sizeof(stack)); 33*8920c5f2SDmitry Chagin return (checkstack()); 34*8920c5f2SDmitry Chagin } 35*8920c5f2SDmitry Chagin 36*8920c5f2SDmitry Chagin ATF_TC_WITHOUT_HEAD(dt_need_test); ATF_TC_BODY(dt_need_test,tc)37*8920c5f2SDmitry ChaginATF_TC_BODY(dt_need_test, tc) 38*8920c5f2SDmitry Chagin { 39*8920c5f2SDmitry Chagin 40*8920c5f2SDmitry Chagin ATF_REQUIRE(jumpstack0() == 0); 41*8920c5f2SDmitry Chagin ATF_REQUIRE(jumpstack1() == 0); 42*8920c5f2SDmitry Chagin } 43*8920c5f2SDmitry Chagin ATF_TP_ADD_TCS(tp)44*8920c5f2SDmitry ChaginATF_TP_ADD_TCS(tp) 45*8920c5f2SDmitry Chagin { 46*8920c5f2SDmitry Chagin 47*8920c5f2SDmitry Chagin ATF_TP_ADD_TC(tp, dt_need_test); 48*8920c5f2SDmitry Chagin 49*8920c5f2SDmitry Chagin return (atf_no_error()); 50*8920c5f2SDmitry Chagin } 51