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 */
26 bool 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 */
34 bool autoboot_set_keyed(bool autoboot_keyed);
35 #else
autoboot_keyed(void)36 static 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
autoboot_set_keyed(bool autoboot_keyed)42 static 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 */
60 const 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 */
70 void autoboot_command(const char *cmd);
71 #else
bootdelay_process(void)72 static inline const char *bootdelay_process(void)
73 {
74 return NULL;
75 }
76
autoboot_command(const char * s)77 static inline void autoboot_command(const char *s)
78 {
79 }
80 #endif
81
82 #endif
83