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