Am 07.02.2012 00:00, schrieb Anthony Liguori: > On 02/02/2012 08:59 PM, Andreas Färber wrote: >> +static inline Object *arm_env_get_object(CPUARMState *env) >> +{ >> + return OBJECT((void *)(env) - offsetof(ARMCPU, env)); >> +} >> + >> +#define ENV_GET_OBJECT(e) arm_env_get_object(e) > > I'd prefer: > > ARMCPU *arm_cpu_from_cpu_state(CPUState *env) > { > return ARM_CPU(container_of(env, ARMCPU, env)); > }
container_of() is a nice suggestion. However I deliberately decided against ARMCPU to be able to use it from common code; CPU would work though. e.g. #ifdef ENV_GET_OBJECT // new code #else // legacy code #endif Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg