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