blob: a38820bdeeb919180497b1d73d8078c12cd56edc [file] [log] [blame]
Simon Glass6fb62072012-02-15 15:51:15 -08001/*
2 * Copyright (c) 2011-2012 The Chromium OS Authors.
Wolfgang Denk1a459662013-07-08 09:37:19 +02003 * SPDX-License-Identifier: GPL-2.0+
Simon Glass6fb62072012-02-15 15:51:15 -08004 */
5
6#ifndef __SANDBOX_STATE_H
7#define __SANDBOX_STATE_H
8
Simon Glass70db4212012-02-15 15:51:16 -08009#include <config.h>
10
Simon Glass6fb62072012-02-15 15:51:15 -080011/* How we exited U-Boot */
12enum exit_type_id {
13 STATE_EXIT_NORMAL,
14 STATE_EXIT_COLD_REBOOT,
15 STATE_EXIT_POWER_OFF,
16};
17
Mike Frysinger61228132013-12-03 16:43:26 -070018struct sandbox_spi_info {
19 const char *spec;
20 const struct sandbox_spi_emu_ops *ops;
21};
22
Simon Glass6fb62072012-02-15 15:51:15 -080023/* The complete state of the test system */
24struct sandbox_state {
25 const char *cmd; /* Command to execute */
Simon Glassf828bf22013-04-20 08:42:41 +000026 const char *fdt_fname; /* Filename of FDT binary */
Simon Glass6fb62072012-02-15 15:51:15 -080027 enum exit_type_id exit_type; /* How we exited U-Boot */
Simon Glass70db4212012-02-15 15:51:16 -080028 const char *parse_err; /* Error to report from parsing */
29 int argc; /* Program arguments */
30 char **argv;
Mike Frysinger61228132013-12-03 16:43:26 -070031
32 /* Pointer to information for each SPI bus/cs */
33 struct sandbox_spi_info spi[CONFIG_SANDBOX_SPI_MAX_BUS]
34 [CONFIG_SANDBOX_SPI_MAX_CS];
Simon Glass6fb62072012-02-15 15:51:15 -080035};
36
37/**
38 * Record the exit type to be reported by the test program.
39 *
40 * @param exit_type Exit type to record
41 */
42void state_record_exit(enum exit_type_id exit_type);
43
44/**
45 * Gets a pointer to the current state.
46 *
47 * @return pointer to state
48 */
49struct sandbox_state *state_get_current(void);
50
51/**
52 * Initialize the test system state
53 */
54int state_init(void);
55
56#endif