On Sunday 01 November 2009, Øyvind Harboe wrote:
> static int arm11_simulate_step(target_t *target, uint32_t *dry_run_pc)
> {
>         struct arm_sim_interface sim;
> 
>         sim.user_data=target->arch_info;
>         sim.get_reg=&arm11_sim_get_reg;
>         sim.set_reg=&arm11_sim_set_reg;
>         sim.get_reg_mode=&arm11_sim_get_reg;
>         sim.set_reg_mode=&arm11_sim_set_reg;
>         sim.get_cpsr=&arm11_sim_get_cpsr;
>         sim.get_mode=&arm11_sim_get_mode;
>         sim.get_state=&arm11_sim_get_state;
>         sim.set_state=&arm11_sim_set_state;
> 
>         return arm_simulate_step_core(target, dry_run_pc, &sim);
> 
> }

That is, encapsulate the "step" (or disassemble, etc)
logic in an object that's distinct from the target.

That's a good general technique.  It's wrong to have
stuffed *everything* in the target class hierarchy;
there are other kinds of entities, which should be
loosely coupled to targets (not *tightly* as now).

_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to