18,11 → 18,11 |
|
/** |
------------ |
CVS : $Id: exchand.c,v 1.2 2003-05-01 19:40:52 pj Exp $ |
CVS : $Id: exchand.c,v 1.3 2004-02-10 17:50:03 giacomo Exp $ |
|
File: $File$ |
Revision: $Revision: 1.2 $ |
Last update: $Date: 2003-05-01 19:40:52 $ |
Revision: $Revision: 1.3 $ |
Last update: $Date: 2004-02-10 17:50:03 $ |
------------ |
**/ |
|
46,6 → 46,8 |
*/ |
|
#include <kernel/kern.h> |
#include <stdlib.h> |
#include <tracer.h> |
|
static int myflag; |
static siginfo_t myinfo; |
127,8 → 129,28 |
} |
} |
|
|
extern void *StartTracerBuffer; // Buffer Start 0 |
extern void *EndTracerBuffer; // Buffer End 4 |
extern void *LastBeforeEndTracerBuffer; //8 |
extern void *CurrentTracerBuffer; //The Actual Write Point For The Next Event 12 |
extern void *FirstTracerBuffer; //The First Valid Event 16 |
|
|
extern int TracerActive; //20 |
extern int TracerOutputType; //24 |
extern unsigned long long TracerEventsRecorded; //28 |
extern unsigned int TracerEventsPresent; //36 |
|
static void theend(void *arg) |
{ |
|
#ifdef __NEW_TRACER__ |
|
void *save_tracer_pointer; |
|
#endif |
|
if (myflag) { |
cprintf("S.Ha.R.K. Exception raised!!!\n"); |
cprintf("Time (s:ns) :%ld:%ld\n", mytime.tv_sec, mytime.tv_nsec); |
137,6 → 159,27 |
cprintf("PID :%d (%s)\n", myinfo.si_task, |
proc_table[myinfo.si_task].name); |
cprintf("Avail time : %d\n", proc_table[myinfo.si_task].avail_time); |
|
#ifdef __NEW_TRACER__ |
|
save_tracer_pointer = malloc(48); |
|
*(void **)(save_tracer_pointer) = StartTracerBuffer; // Buffer Start 0 |
*(void **)(save_tracer_pointer+4) = EndTracerBuffer; // Buffer End 4 |
*(void **)(save_tracer_pointer+8) = LastBeforeEndTracerBuffer; //8 |
*(void **)(save_tracer_pointer+12) = CurrentTracerBuffer; //The Actual Write Point For The Next Event 12 |
*(void **)(save_tracer_pointer+16) = FirstTracerBuffer; //The First Valid Event 16 |
|
*(int *)(save_tracer_pointer+20) = 0; //20 |
|
*(int *)(save_tracer_pointer+24) = TRACER_UDP_OUTPUT; //24 |
*(unsigned long long *)(save_tracer_pointer+28) = TracerEventsRecorded; //28 |
*(unsigned int *)(save_tracer_pointer+36) = TracerEventsPresent; //36 |
|
cprintf("Dumper Magic Number = %u\n",(int)save_tracer_pointer); |
|
#endif |
|
} |
if (myflag_shutdown) { |
cprintf("\nShutdown message:\n%s\n", shutdown_message_buffer); |