16fb62078SSimon Glass /* 26fb62078SSimon Glass * Copyright (c) 2011-2012 The Chromium OS Authors. 3*1a459660SWolfgang 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 186fb62078SSimon Glass /* The complete state of the test system */ 196fb62078SSimon Glass struct sandbox_state { 206fb62078SSimon Glass const char *cmd; /* Command to execute */ 21f828bf25SSimon Glass const char *fdt_fname; /* Filename of FDT binary */ 226fb62078SSimon Glass enum exit_type_id exit_type; /* How we exited U-Boot */ 2370db4212SSimon Glass const char *parse_err; /* Error to report from parsing */ 2470db4212SSimon Glass int argc; /* Program arguments */ 2570db4212SSimon Glass char **argv; 266fb62078SSimon Glass }; 276fb62078SSimon Glass 286fb62078SSimon Glass /** 296fb62078SSimon Glass * Record the exit type to be reported by the test program. 306fb62078SSimon Glass * 316fb62078SSimon Glass * @param exit_type Exit type to record 326fb62078SSimon Glass */ 336fb62078SSimon Glass void state_record_exit(enum exit_type_id exit_type); 346fb62078SSimon Glass 356fb62078SSimon Glass /** 366fb62078SSimon Glass * Gets a pointer to the current state. 376fb62078SSimon Glass * 386fb62078SSimon Glass * @return pointer to state 396fb62078SSimon Glass */ 406fb62078SSimon Glass struct sandbox_state *state_get_current(void); 416fb62078SSimon Glass 426fb62078SSimon Glass /** 436fb62078SSimon Glass * Initialize the test system state 446fb62078SSimon Glass */ 456fb62078SSimon Glass int state_init(void); 466fb62078SSimon Glass 476fb62078SSimon Glass #endif 48