/* * Copyright (c) 2012, ARM Limited. All rights reserved. * * Redistribution and use in source and binary forms, with * or without modification, are permitted provided that the * following conditions are met: * * Redistributions of source code must retain the above * copyright notice, this list of conditions and the * following disclaimer. * * Redistributions in binary form must reproduce the * above copyright notice, this list of conditions and * the following disclaimer in the documentation * and/or other materials provided with the distribution. * * Neither the name of ARM nor the names of its * contributors may be used to endorse or promote products * derived from this software without specific prior written * permission. */ #ifndef __BL_H__ #define __BL_H__ #include "misc.h" typedef struct vm_c { unsigned gp_regs[15]; unsigned elr_hyp; unsigned spsr; unsigned usr_lr; } vm_context; /* * VM context structure: To hold execution context of the preceding * mode upon entry into the HYP mode synchronously/asynchronously. */ typedef struct vm_s { unsigned stack[STACK_SIZE]; vm_context context; } vm_state; extern vm_state guestos_state[MAX_CPUIFS]; extern void bl_setup(void); extern void hyp_warm_reset_handler(void); #endif /* __BL_H__ */