Merge branch 'master' of git://git.denx.de/u-boot-sh
[platform/kernel/u-boot.git] / include / bootretry.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2000
4  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
5  */
6
7 #ifndef __BOOTRETRY_H
8 #define __BOOTRETRY_H
9
10 #ifdef CONFIG_BOOT_RETRY_TIME
11 /**
12  * bootretry_tstc_timeout() - ensure we get a keypress before timeout
13  *
14  * Check for a keypress repeatedly, resetting the watchdog each time. If a
15  * keypress is not received within the command timeout, return an error.
16  *
17  * @return 0 if a key is received in time, -ETIMEDOUT if not
18  */
19 int bootretry_tstc_timeout(void);
20
21 /**
22  * bootretry_init_cmd_timeout() - set up command timeout
23  *
24  * Get the required command timeout from the environment.
25  */
26 void bootretry_init_cmd_timeout(void);
27
28 /**
29  * bootretry_reset_cmd_timeout() - reset command timeout
30  *
31  * Reset the command timeout so that the user has a fresh start. This is
32  * typically used when input is received from the user.
33  */
34 void bootretry_reset_cmd_timeout(void);
35
36 /** bootretry_dont_retry() - Indicate that we should not retry the boot */
37 void bootretry_dont_retry(void);
38 #else
39 static inline int bootretry_tstc_timeout(void)
40 {
41         return 0;
42 }
43
44 static inline void bootretry_init_cmd_timeout(void)
45 {
46 }
47
48 static inline void bootretry_reset_cmd_timeout(void)
49 {
50 }
51
52 static inline void bootretry_dont_retry(void)
53 {
54 }
55
56 #endif
57
58 #endif