[parisc-linux] Unaligned trap handler - comments appreciated

Randolph Chung randolph@tausq.org
Fri, 22 Jun 2001 23:54:43 -0700


In reference to a message from Randolph Chung, dated Jun 18:
> I just checked in an arch/parisc/kernel/unaligned.c file into palinux
> cvs.

I've updated traps.c to call the unaligned handler now. Many thanks to
jsm for his help and advice.

I've only tested this for parisc64, would appreciate if someone can test
to make sure it works on a narrow kernel as well. My test case looks
something like this:


#include <stdio.h>

struct data_t {
        unsigned long a;
        unsigned long b;
};

int main(int argc, char **argv)
{
        struct data_t data;
        unsigned char *t;
        unsigned long l;
        int i;

        data.a = 0x12345678;
        data.b = 0x87654321;

        t = (unsigned char *)(&data)+1;
        l = *((unsigned long *)t);
        printf("l = 0x%08lx\n\n\n", l);

        printf("expected result is: 0x");
        for (i = 0; i < sizeof(unsigned long); i++)
                printf("%x", *(t+i));
        printf("\n");

        printf("testing store...\n");
        *((unsigned long *)t) = 0x13572468;

        l = *((unsigned long *)t);
        printf("l = 0x%08lx\n", l);

        return 0;
}

randolph
-- 
   @..@                                         http://www.TauSq.org/
  (----)
 ( >__< )
 ^^ ~~ ^^