#!/bin/sh
#
# Make a kernel symbol table for Solaris 1.X
#
DP_ADDR=
VJC_ADDR=
ASYNC_ADDR=
while getopts d:v:a: c
do
    case $c in
     d)  DP_ADDR=$OPTARG;;
     v)  VJC_ADDR=$OPTARG;;
     a)  ASYNC_ADDR=$OPTARG;;
    esac
done
shift `expr $OPTIND - 1`
if [ "$#" -gt 0 ] ; then
    VMUNIX=$1
else
    VMUNIX=/vmunix
fi
#
. /etc/dp.conf
#
if [ -z "$DP_ADDR" -a -f $DPLOG_DIR/ID.dp ]	; then
    ID=`cat $DPLOG_DIR/ID.dp`
    DP_ADDR=`modstat -id $ID | tail -1 | awk '{ print $3 }'`
fi
if [ -z "$ASYNC_ADDR" -a -f $DPLOG_DIR/ID.ppp_async ]	; then
    ID=`cat $DPLOG_DIR/ID.ppp_async`
    ASYNC_ADDR=`modstat -id $ID | tail -1 | awk '{ print $3 }'`
fi
if [ -z "$VJC_ADDR" -a -f $DPLOG_DIR/ID.vjc ]	; then
    ID=`cat $DPLOG_DIR/ID.vjc`
    VJC_ADDR=`modstat -id $ID | tail -1 | awk '{ print $3 }'`
fi
#
rm -f vmunix.syms
cp $VMUNIX vmunix.syms
if [ -n "$DP_ADDR" ] ; then
    ld -A vmunix.syms -T $DP_ADDR $DPMODULE_DIR/dp.o -o /tmp/vmunix.syms
    mv /tmp/vmunix.syms .
fi
if [ -n "$ASYNC_ADDR" ] ; then
    ld -A vmunix.syms -T $ASYNC_ADDR $DPMODULE_DIR/ppp_async.o -o /tmp/vmunix.syms
    mv /tmp/vmunix.syms .
fi
if [ -n "$VJC_ADDR" ] ; then
    ld -A vmunix.syms -T $VJC_ADDR $DPMODULE_DIR/vjc.o -o /tmp/vmunix.syms
    mv /tmp/vmunix.syms .
fi
exit 0
