"Das U-Boot" Source Tree
at master 43 lines 969 B view raw
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#ifdef __powerpc__ 23 asm volatile (".long 0xffffffff\n"); 24#else 25 asm volatile (".word 0xffff\n"); 26#endif 27 return CMD_RET_FAILURE; 28} 29 30static struct cmd_tbl cmd_sub[] = { 31 U_BOOT_CMD_MKENT(sigsegv, CONFIG_SYS_MAXARGS, 1, do_sigsegv, 32 "", ""), 33 U_BOOT_CMD_MKENT(undefined, CONFIG_SYS_MAXARGS, 1, do_undefined, 34 "", ""), 35}; 36 37U_BOOT_LONGHELP(exception, 38 "<ex>\n" 39 " The following exceptions are available:\n" 40 " undefined - undefined instruction\n" 41 " sigsegv - illegal memory access\n"); 42 43#include <exception.h>