/* * 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 __HVC_H__ #define __HVC_H__ #include "traps.h" #include "handler.h" #include "context.h" #include "int_master.h" /* Opcode to trigger a switch from the OS */ #define SWITCHER_ENTRY 0 /* Opcode to return to the trigger handler after a switch (NS SVC -> HYP) */ #define SWITCHER_EXIT 1 /* Opcode to save HYP mode context */ #define HYP_SAVE 2 /* Opcode to restore HYP mode context */ #define HYP_RESTORE 3 /* Opcode to test vGIC active bit reg */ #define VGIC_TEST 4 vm_context *hvc_handler(unsigned, vm_context *); #endif /* __HVC_H__ */