blob: 0cedd300c37a7b5a2a9bdce8fc164fd588850221 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Simon Glass399ed9a2014-04-10 20:01:30 -06002/*
3 * (C) Copyright 2000
4 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
Simon Glass399ed9a2014-04-10 20:01:30 -06005 */
6
Simon Glass09007c42014-04-10 20:01:31 -06007#ifndef __BOOTRETRY_H
8#define __BOOTRETRY_H
Simon Glass399ed9a2014-04-10 20:01:30 -06009
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 */
19int bootretry_tstc_timeout(void);
Simon Glass09007c42014-04-10 20:01:31 -060020
21/**
22 * bootretry_init_cmd_timeout() - set up command timeout
23 *
24 * Get the required command timeout from the environment.
25 */
26void 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 */
34void bootretry_reset_cmd_timeout(void);
35
36/** bootretry_dont_retry() - Indicate that we should not retry the boot */
37void bootretry_dont_retry(void);
Simon Glass399ed9a2014-04-10 20:01:30 -060038#else
39static inline int bootretry_tstc_timeout(void)
40{
41 return 0;
42}
Simon Glass399ed9a2014-04-10 20:01:30 -060043
Simon Glass09007c42014-04-10 20:01:31 -060044static inline void bootretry_init_cmd_timeout(void)
45{
46}
47
48static inline void bootretry_reset_cmd_timeout(void)
49{
50}
51
52static inline void bootretry_dont_retry(void)
53{
54}
55
56#endif
Simon Glass399ed9a2014-04-10 20:01:30 -060057
58#endif