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 #include <stddef.h>
16
17 #ifdef CONFIG_SANDBOX
18
19 /**
20 * autoboot_keyed() - check whether keyed autoboot should be used
21 *
22 * This is only implemented for sandbox since other platforms don't have a way
23 * of controlling the feature at runtime.
24 *
25 * Return: true if enabled, false if not
26 */
27 bool autoboot_keyed(void);
28
29 /**
30 * autoboot_set_keyed() - set whether keyed autoboot should be used
31 *
32 * @autoboot_keyed: true to enable the feature, false to disable
33 * Return: old value of the flag
34 */
35 bool autoboot_set_keyed(bool autoboot_keyed);
36 #else
autoboot_keyed(void)37 static inline bool autoboot_keyed(void)
38 {
39 /* There is no runtime flag, so just use the CONFIG */
40 return IS_ENABLED(CONFIG_AUTOBOOT_KEYED);
41 }
42
autoboot_set_keyed(bool autoboot_keyed)43 static inline bool autoboot_set_keyed(bool autoboot_keyed)
44 {
45 /* There is no runtime flag to set */
46 return false;
47 }
48
49 #endif
50
51 #ifdef CONFIG_AUTOBOOT
52 /**
53 * bootdelay_process() - process the bootd delay
54 *
55 * Process the boot delay, boot limit, then get the value of either
56 * bootcmd, failbootcmd or altbootcmd depending on the current state.
57 * Return this command so it can be executed.
58 *
59 * Return: command to executed
60 */
61 const char *bootdelay_process(void);
62
63 /**
64 * autoboot_command() - run the autoboot command
65 *
66 * If enabled, run the autoboot command returned from bootdelay_process().
67 * Also do the CONFIG_AUTOBOOT_MENUKEY processing if enabled.
68 *
69 * @cmd: Command to run
70 */
71 void autoboot_command(const char *cmd);
72 #else
bootdelay_process(void)73 static inline const char *bootdelay_process(void)
74 {
75 return NULL;
76 }
77
autoboot_command(const char * s)78 static inline void autoboot_command(const char *s)
79 {
80 }
81 #endif
82
83 #endif
84