/* * arm * armcpu.h * * Copyright (C) 2003, 2004 Sebastian Biallas (sb@biallas.net) * * 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. * * 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __ARM_CPU_H__ #define __ARM_CPU_H__ //#include //#include //#include //#include #include #include #include "common/thread.h" typedef struct ARM_CPU_State_s { ARMul_State * core; uint32_t core_num; /* The core id that boot from */ uint32_t boot_core_id; }ARM_CPU_State; //static ARM_CPU_State* get_current_cpu(){ // machine_config_t* mach = get_current_mach(); // /* Casting a conf_obj_t to ARM_CPU_State type */ // ARM_CPU_State* cpu = (ARM_CPU_State*)mach->cpu_data->obj; // // return cpu; //} /** * @brief Get the core instance boot from * * @return */ //static ARMul_State* get_boot_core(){ // ARM_CPU_State* cpu = get_current_cpu(); // return &cpu->core[cpu->boot_core_id]; //} /** * @brief Get the instance of running core * * @return the core instance */ //static ARMul_State* get_current_core(){ // /* Casting a conf_obj_t to ARM_CPU_State type */ // int id = Common::CurrentThreadId(); // /* If thread is not in running mode, we should give the boot core */ // if(get_thread_state(id) != Running_state){ // return get_boot_core(); // } // /* Judge if we are running in paralell or sequenial */ // if(thread_exist(id)){ // conf_object_t* conf_obj = get_current_exec_priv(id); // return (ARMul_State*)get_cast_conf_obj(conf_obj, "arm_core_t"); // } // // return NULL; //} #define CURRENT_CORE get_current_core() #endif