sandbox: Add -i option to enter interactive mode
[karo-tx-uboot.git] / arch / sandbox / include / asm / state.h
1 /*
2  * Copyright (c) 2011-2012 The Chromium OS Authors.
3  * SPDX-License-Identifier:     GPL-2.0+
4  */
5
6 #ifndef __SANDBOX_STATE_H
7 #define __SANDBOX_STATE_H
8
9 #include <config.h>
10 #include <stdbool.h>
11
12 /* How we exited U-Boot */
13 enum exit_type_id {
14         STATE_EXIT_NORMAL,
15         STATE_EXIT_COLD_REBOOT,
16         STATE_EXIT_POWER_OFF,
17 };
18
19 struct sandbox_spi_info {
20         const char *spec;
21         const struct sandbox_spi_emu_ops *ops;
22 };
23
24 /* The complete state of the test system */
25 struct sandbox_state {
26         const char *cmd;                /* Command to execute */
27         bool interactive;               /* Enable cmdline after execute */
28         const char *fdt_fname;          /* Filename of FDT binary */
29         enum exit_type_id exit_type;    /* How we exited U-Boot */
30         const char *parse_err;          /* Error to report from parsing */
31         int argc;                       /* Program arguments */
32         char **argv;
33
34         /* Pointer to information for each SPI bus/cs */
35         struct sandbox_spi_info spi[CONFIG_SANDBOX_SPI_MAX_BUS]
36                                         [CONFIG_SANDBOX_SPI_MAX_CS];
37 };
38
39 /**
40  * Record the exit type to be reported by the test program.
41  *
42  * @param exit_type     Exit type to record
43  */
44 void state_record_exit(enum exit_type_id exit_type);
45
46 /**
47  * Gets a pointer to the current state.
48  *
49  * @return pointer to state
50  */
51 struct sandbox_state *state_get_current(void);
52
53 /**
54  * Initialize the test system state
55  */
56 int state_init(void);
57
58 #endif