dynamic HZ, library stacktrace
This commit is contained in:
parent
b6b361a474
commit
70f1f28439
4 changed files with 16 additions and 39 deletions
|
@ -14,7 +14,7 @@ LIBS = -lsys
|
||||||
$(CC) $(CFLAGS) -o $@ -c $<
|
$(CC) $(CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
OBJ = buf.o clock.o inet.o inet_config.o \
|
OBJ = buf.o clock.o inet.o inet_config.o \
|
||||||
mnx_eth.o mq.o qp.o sr.o stacktrace.o \
|
mnx_eth.o mq.o qp.o sr.o \
|
||||||
$g/udp.o $g/arp.o $g/eth.o $g/event.o \
|
$g/udp.o $g/arp.o $g/eth.o $g/event.o \
|
||||||
$g/icmp.o $g/io.o $g/ip.o $g/ip_ioctl.o \
|
$g/icmp.o $g/io.o $g/ip.o $g/ip_ioctl.o \
|
||||||
$g/ip_lib.o $g/ip_read.o $g/ip_write.o \
|
$g/ip_lib.o $g/ip_read.o $g/ip_write.o \
|
||||||
|
|
|
@ -87,6 +87,10 @@ int killer_inet= 0;
|
||||||
extern int inet_buf_debug;
|
extern int inet_buf_debug;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if HZ_DYNAMIC
|
||||||
|
u32_t system_hz;
|
||||||
|
#endif
|
||||||
|
|
||||||
_PROTOTYPE( void main, (void) );
|
_PROTOTYPE( void main, (void) );
|
||||||
|
|
||||||
FORWARD _PROTOTYPE( void nw_conf, (void) );
|
FORWARD _PROTOTYPE( void nw_conf, (void) );
|
||||||
|
@ -110,6 +114,10 @@ PUBLIC void main()
|
||||||
printf("%s\n", version);
|
printf("%s\n", version);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if HZ_DYNAMIC
|
||||||
|
system_hz = sys_hz();
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Read configuration. */
|
/* Read configuration. */
|
||||||
nw_conf();
|
nw_conf();
|
||||||
|
|
||||||
|
@ -315,7 +323,7 @@ int line;
|
||||||
PUBLIC void inet_panic()
|
PUBLIC void inet_panic()
|
||||||
{
|
{
|
||||||
printf("\ninet stacktrace: ");
|
printf("\ninet stacktrace: ");
|
||||||
stacktrace();
|
util_stacktrace();
|
||||||
#ifdef __minix_vmd
|
#ifdef __minix_vmd
|
||||||
sys_abort(RBT_PANIC);
|
sys_abort(RBT_PANIC);
|
||||||
#else /* Minix 3 */
|
#else /* Minix 3 */
|
||||||
|
|
|
@ -88,7 +88,7 @@ _PROTOTYPE( void inet_panic, (void) ) _NORETURN;
|
||||||
printf("warning at %s, %d: ", this_file, __LINE__), \
|
printf("warning at %s, %d: ", this_file, __LINE__), \
|
||||||
printf print_list, \
|
printf print_list, \
|
||||||
printf("\ninet stacktrace: "), \
|
printf("\ninet stacktrace: "), \
|
||||||
stacktrace() \
|
util_stacktrace() \
|
||||||
)
|
)
|
||||||
#else
|
#else
|
||||||
#define ip_warning(print_list) ((void) 0)
|
#define ip_warning(print_list) ((void) 0)
|
||||||
|
@ -109,7 +109,11 @@ _PROTOTYPE( void inet_panic, (void) ) _NORETURN;
|
||||||
extern int this_proc;
|
extern int this_proc;
|
||||||
extern char version[];
|
extern char version[];
|
||||||
|
|
||||||
void stacktrace ARGS(( void ));
|
#ifndef HZ
|
||||||
|
EXTERN u32_t system_hz;
|
||||||
|
#define HZ system_hz
|
||||||
|
#define HZ_DYNAMIC 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* INET__INET_H */
|
#endif /* INET__INET_H */
|
||||||
|
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
/*
|
|
||||||
stacktrace.c
|
|
||||||
|
|
||||||
Created: Jan 19, 1993 by Philip Homburg
|
|
||||||
|
|
||||||
Copyright 1995 Philip Homburg
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "inet.h"
|
|
||||||
|
|
||||||
PUBLIC void stacktrace()
|
|
||||||
{
|
|
||||||
typedef unsigned int reg_t;
|
|
||||||
reg_t bp, pc, hbp;
|
|
||||||
extern reg_t get_bp ARGS(( void ));
|
|
||||||
|
|
||||||
bp= get_bp();
|
|
||||||
while(bp)
|
|
||||||
{
|
|
||||||
pc= ((reg_t *)bp)[1];
|
|
||||||
hbp= ((reg_t *)bp)[0];
|
|
||||||
printf("0x%lx ", (unsigned long)pc);
|
|
||||||
if (hbp != 0 && hbp <= bp)
|
|
||||||
{
|
|
||||||
printf("???");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
bp= hbp;
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* $PchId: stacktrace.c,v 1.6 1996/05/07 21:11:34 philip Exp $
|
|
||||||
*/
|
|
Loading…
Reference in a new issue