16fb62078SSimon Glass /* 26fb62078SSimon Glass * Copyright (c) 2011-2012 The Chromium OS Authors. 31a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 46fb62078SSimon Glass */ 56fb62078SSimon Glass 66fb62078SSimon Glass #ifndef __SANDBOX_STATE_H 76fb62078SSimon Glass #define __SANDBOX_STATE_H 86fb62078SSimon Glass 970db4212SSimon Glass #include <config.h> 1070db4212SSimon Glass 116fb62078SSimon Glass /* How we exited U-Boot */ 126fb62078SSimon Glass enum exit_type_id { 136fb62078SSimon Glass STATE_EXIT_NORMAL, 146fb62078SSimon Glass STATE_EXIT_COLD_REBOOT, 156fb62078SSimon Glass STATE_EXIT_POWER_OFF, 166fb62078SSimon Glass }; 176fb62078SSimon Glass 18*6122813fSMike Frysinger struct sandbox_spi_info { 19*6122813fSMike Frysinger const char *spec; 20*6122813fSMike Frysinger const struct sandbox_spi_emu_ops *ops; 21*6122813fSMike Frysinger }; 22*6122813fSMike Frysinger 236fb62078SSimon Glass /* The complete state of the test system */ 246fb62078SSimon Glass struct sandbox_state { 256fb62078SSimon Glass const char *cmd; /* Command to execute */ 26f828bf25SSimon Glass const char *fdt_fname; /* Filename of FDT binary */ 276fb62078SSimon Glass enum exit_type_id exit_type; /* How we exited U-Boot */ 2870db4212SSimon Glass const char *parse_err; /* Error to report from parsing */ 2970db4212SSimon Glass int argc; /* Program arguments */ 3070db4212SSimon Glass char **argv; 31*6122813fSMike Frysinger 32*6122813fSMike Frysinger /* Pointer to information for each SPI bus/cs */ 33*6122813fSMike Frysinger struct sandbox_spi_info spi[CONFIG_SANDBOX_SPI_MAX_BUS] 34*6122813fSMike Frysinger [CONFIG_SANDBOX_SPI_MAX_CS]; 356fb62078SSimon Glass }; 366fb62078SSimon Glass 376fb62078SSimon Glass /** 386fb62078SSimon Glass * Record the exit type to be reported by the test program. 396fb62078SSimon Glass * 406fb62078SSimon Glass * @param exit_type Exit type to record 416fb62078SSimon Glass */ 426fb62078SSimon Glass void state_record_exit(enum exit_type_id exit_type); 436fb62078SSimon Glass 446fb62078SSimon Glass /** 456fb62078SSimon Glass * Gets a pointer to the current state. 466fb62078SSimon Glass * 476fb62078SSimon Glass * @return pointer to state 486fb62078SSimon Glass */ 496fb62078SSimon Glass struct sandbox_state *state_get_current(void); 506fb62078SSimon Glass 516fb62078SSimon Glass /** 526fb62078SSimon Glass * Initialize the test system state 536fb62078SSimon Glass */ 546fb62078SSimon Glass int state_init(void); 556fb62078SSimon Glass 566fb62078SSimon Glass #endif 57