1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * The 'exception' command can be used for testing exception handling. 4 * 5 * Copyright (c) 2020, Heinrich Schuchardt <xypron.glpk@gmx.de> 6 */ 7 8#include <command.h> 9 10static int do_sigsegv(struct cmd_tbl *cmdtp, int flag, int argc, 11 char *const argv[]) 12{ 13 u8 *ptr = NULL; 14 15 *ptr = 0; 16 return CMD_RET_FAILURE; 17} 18 19static int do_undefined(struct cmd_tbl *cmdtp, int flag, int argc, 20 char *const argv[]) 21{ 22 asm volatile (".word 0xffff\n"); 23 return CMD_RET_FAILURE; 24} 25 26static struct cmd_tbl cmd_sub[] = { 27 U_BOOT_CMD_MKENT(sigsegv, CONFIG_SYS_MAXARGS, 1, do_sigsegv, 28 "", ""), 29 U_BOOT_CMD_MKENT(undefined, CONFIG_SYS_MAXARGS, 1, do_undefined, 30 "", ""), 31}; 32 33U_BOOT_LONGHELP(exception, 34 "<ex>\n" 35 " The following exceptions are available:\n" 36 " undefined - undefined instruction\n" 37 " sigsegv - illegal memory access\n"); 38 39#include <exception.h> 40