Skip to content
Snippets Groups Projects
state.h 1.53 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
     * Copyright (c) 2011-2012 The Chromium OS Authors.
     * See file CREDITS for list of people who contributed to this
     * project.
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License as
     * published by the Free Software Foundation; either version 2 of
     * the License, or (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, write to the Free Software
     * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
     * MA 02111-1307 USA
     */
    
    #ifndef __SANDBOX_STATE_H
    #define __SANDBOX_STATE_H
    
    /* How we exited U-Boot */
    enum exit_type_id {
    	STATE_EXIT_NORMAL,
    	STATE_EXIT_COLD_REBOOT,
    	STATE_EXIT_POWER_OFF,
    };
    
    /* The complete state of the test system */
    struct sandbox_state {
    	const char *cmd;		/* Command to execute */
    	enum exit_type_id exit_type;	/* How we exited U-Boot */
    };
    
    /**
     * Record the exit type to be reported by the test program.
     *
     * @param exit_type	Exit type to record
     */
    void state_record_exit(enum exit_type_id exit_type);
    
    /**
     * Gets a pointer to the current state.
     *
     * @return pointer to state
     */
    struct sandbox_state *state_get_current(void);
    
    /**
     * Initialize the test system state
     */
    int state_init(void);
    
    #endif