/* * CPU reset routines * * Copyright (C) 2015 Huawei Futurewei Technologies. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#ifndef _ARM64_CPU_RESET_H#define _ARM64_CPU_RESET_H#include <asm/virt.h>void__cpu_soft_restart(unsignedlongel2_switch,unsignedlongentry,unsignedlongarg0,unsignedlongarg1,unsignedlongarg2);staticinlinevoid__noreturncpu_soft_restart(unsignedlongel2_switch,unsignedlongentry,unsignedlongarg0,unsignedlongarg1,unsignedlongarg2){typeof(__cpu_soft_restart)*restart;el2_switch=el2_switch&&!is_kernel_in_hyp_mode()&&is_hyp_mode_available();restart=(void*)virt_to_phys(__cpu_soft_restart);cpu_install_idmap();restart(el2_switch,entry,arg0,arg1,arg2);unreachable();}#endif