All pastes #403843 Raw Edit

Mine

public text v1 · immutable
·published 2007-03-20 17:48 UTC
rendered paste body
panic[cpu0]/thread=2a10001fcc0: BAD TRAP: type=31 rp=2a10001f8d0 addr=0 mmu_fsr=0 occurred in module "unix" due to a NULL pointer dereference

: trap type = 0x31
pid=0, pc=0x1056cf4, sp=0x2a10001f171, tstate=0x4480001601, context=0x0
g1-g7: 106dd14, 12e7000, 1, 0, 0, 10, 2a10001fcc0

000002a10001f5f0 unix:die+80 (10b2c00, 2a10001f8d0, 0, 0, 180e000, 1)
  %l0-3: 0000000000000000 0000000001000000 0000000000002000 00000000018415f0
  %l4-7: 0000000001841400 000000000189cfb0 0000000000000000 000002a10001f6b0
000002a10001f6d0 unix:trap+b24 (2a10001f8d0, 1, 31, 0, 1, 5)
  %l0-3: 0000000000000000 0000000000000000 0000000000001fff 0000000000000000
  %l4-7: 00000000c0000000 00000000c1680000 0000000000000000 00000000d4024000
000002a10001f820 unix:ktl0+48 (0, 0, 180c000, 7efefeff, 81010100, 1400)
  %l0-3: 0000000000000002 0000000000001400 0000004480001601 00000000010217b8
  %l4-7: 00000000002e1053 0000000000000000 0000000000000000 000002a10001f8d0
000002a10001f970 unix:acmp_change_state+18 (180c000, 3, 0, 0, 3, ffffffffffffff00)
  %l0-3: 000000000180c000 0000000000000000 0000030000060200 0000000000000000
  %l4-7: 00000300000601d8 00000000000000a8 00000000ffffffff 000000000180c0e8
000002a10001fa20 unix:idle+4 (0, 0, 180c000, 189b1c0, 55, 0)
  %l0-3: ffffffffffffffff 0000000000000000 0000000000000000 000002a1001e7cc0
  %l4-7: 0000000000000001 0000000000000001 0000000000000018 000000000194e400

panic: entering debugger (no dump device, continue to reboot)
Type 'go' to resume
debugger entered.

{0} ok 








int acmp_change_state(cpu_t* cpu, char state, char* procname)
{
    u_longlong_t regval = 0;

    if (state < ACMP_STATE_ACTIVE || state > ACMP_STATE_OFF) {
        return -1;
    }

    /* process name */
    int j,max;
    int len = strlen(procname);
    if (len <= ACMP_MAX_PROCNAME_LEN) max = len;
    else max = ACMP_MAX_PROCNAME_LEN;

    for (j=max; j>0; j--) {
        regval |= ((u_longlong_t)(procname[j-1] & 0xff) << ACMP_PROCNAME_FIELD_OFFSET + 8*(j-1)) & ACMP_PROCNAME_FIELD_MASK;
    }

    /* cpu id */
    regval |= ((u_longlong_t)cpu->cpu_id << ACMP_CPU_FIELD_OFFSET) & ACMP_CPU_FIELD_MASK;

    /* state */
    regval |= ((u_longlong_t)state << ACMP_STATE_FIELD_OFFSET) & ACMP_STATE_FIELD_MASK;
    acmp_current_states_local[cpu->cpu_id] = state;

    /* write to register */
    stdphysio(ACMP_BASE_ADDRESS, regval);

    return 0;
}