1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * (C) Copyright 2000 4 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 5 * 6 * Add to readline cmdline-editing by 7 * (C) Copyright 2005 8 * JinHua Luo, GuangDong Linux Center, <luo.jinhua@gd-linux.com> 9 */ 10 11#ifndef __AUTOBOOT_H 12#define __AUTOBOOT_H 13 14#include <stdbool.h> 15 16#ifdef CONFIG_SANDBOX 17 18/** 19 * autoboot_keyed() - check whether keyed autoboot should be used 20 * 21 * This is only implemented for sandbox since other platforms don't have a way 22 * of controlling the feature at runtime. 23 * 24 * @return true if enabled, false if not 25 */ 26bool autoboot_keyed(void); 27 28/** 29 * autoboot_set_keyed() - set whether keyed autoboot should be used 30 * 31 * @autoboot_keyed: true to enable the feature, false to disable 32 * @return old value of the flag 33 */ 34bool autoboot_set_keyed(bool autoboot_keyed); 35#else 36static inline bool autoboot_keyed(void) 37{ 38 /* There is no runtime flag, so just use the CONFIG */ 39 return IS_ENABLED(CONFIG_AUTOBOOT_KEYED); 40} 41 42static inline bool autoboot_set_keyed(bool autoboot_keyed) 43{ 44 /* There is no runtime flag to set */ 45 return false; 46} 47 48#endif 49 50#ifdef CONFIG_AUTOBOOT 51/** 52 * bootdelay_process() - process the bootd delay 53 * 54 * Process the boot delay, boot limit, then get the value of either 55 * bootcmd, failbootcmd or altbootcmd depending on the current state. 56 * Return this command so it can be executed. 57 * 58 * @return command to executed 59 */ 60const char *bootdelay_process(void); 61 62/** 63 * autoboot_command() - run the autoboot command 64 * 65 * If enabled, run the autoboot command returned from bootdelay_process(). 66 * Also do the CONFIG_AUTOBOOT_MENUKEY processing if enabled. 67 * 68 * @cmd: Command to run 69 */ 70void autoboot_command(const char *cmd); 71#else 72static inline const char *bootdelay_process(void) 73{ 74 return NULL; 75} 76 77static inline void autoboot_command(const char *s) 78{ 79} 80#endif 81 82#endif 83