On Fri, 30 Oct 2009, David Brownell wrote:

> I'm suspecting this code can never have worked, since the
> original commit (svn #335) in early 2008.
> 
> Fix is just copy/paste from another (working) function.
> ---
>  src/target/arm926ejs.c |    4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> --- a/src/target/arm926ejs.c
> +++ b/src/target/arm926ejs.c
> @@ -906,7 +906,9 @@ static int arm926ejs_virt2phys(struct ta
>  static int arm926ejs_mmu(struct target_s *target, int *enabled)
>  {
>       armv4_5_common_t *armv4_5 = target->arch_info;
> -     arm926ejs_common_t *arm926ejs = armv4_5->arch_info;
> +     arm7_9_common_t *arm7_9 = armv4_5->arch_info;
> +     arm9tdmi_common_t *arm9tdmi = arm7_9->arch_info;
> +     arm926ejs_common_t *arm926ejs = arm9tdmi->arch_info;
>  
>       if (target->state != TARGET_HALTED)
>       {

Well...

I really don't like this pointer business.  No type checking at all, 
etc.  This should be turned upside down as you suggested already: embed 
more generic structures within the more specific ones, and copy the 
container_of() macro from Linux to get at the outer structure when 
needed.


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

Reply via email to