:
#
#
# gennttab generates ntcontab.o
# usage: gennttab [ -n protocol-name  ... ]
#    -n: do not include protocol adapters with given names
#
# generates .s file for SunOS 5, AIXRIOS, SVR4_386, NCR 
#           .c file for all others
#

if [ "$ORACLE_TRACE" ]; then
  set -x
fi

  UNAME=/bin/uname
  PLATFORM=`$UNAME`

if [ $PLATFORM = "SunOS" ] || [ $PLATFORM = "SOL" ]; then
 NM=/usr/ccs/bin/nm
 SED=/usr/bin/sed
 AWK=/usr/bin/awk
 GREP=/usr/bin/grep
 EXPR=/usr/bin/expr
 LN=/usr/bin/ln
 ECHO=/usr/bin/echo
elif [ $PLATFORM = "Linux" ]; then
 NM=/usr/bin/nm
 SED=/bin/sed
 AWK=/usr/bin/awk
 GREP=/bin/grep
 EXPR=/usr/bin/expr
 LN=/bin/ln
 ECHO=/bin/echo
else
 NM=/usr/bin/nm
 SED=/usr/bin/sed
 AWK=/usr/bin/awk
 GREP=/usr/bin/grep
 EXPR=/usr/bin/expr
 LN=/usr/bin/ln
 ECHO=/usr/bin/echo
fi

VER=12

##################################
NMOPTS=

##################################

if [ "x$1" = "x-32" ] ; then
        LIB=lib32
        CODE=.code32
        ALIGN=4
        PTRSIZE=4
else
        LIB=lib
        CODE=.code64
        ALIGN=8
        PTRSIZE=8
fi
ROWSIZE=`$EXPR ${PTRSIZE} \* 4`

LIBPATH=${ORACLE_HOME}/${LIB}
LIBNET="libn${VER}"
LIBNETPATH=${LIBPATH}/${LIBNET}

TRANSPORTS="US TCP ITCP BEQ TCPS SPX ISPX DEC DCE LU62 NMP RAW VI SDP EXADIRECT WSS WS"
TtoINI="US:ntusini TCP:nttini BEQ:ntpini TCPS:ntzini SPX:ntsini DEC:ntdini DCE:ntodrini LU62:ntlini ITCP:ntitini ISPX:ntsini NMP:ntnini RAW:ntrini VI:ntviini SDP:nttsdpini EXADIRECT:ntmqini WSS:ntwssini WS:ntwsini"
TtoBAS="US:ntus TCP:ntt BEQ:ntp TCPS:ntz SPX:tlis DEC:ntd DCE:ntodr LU62:ntl ITCP:ntit ISPX:ntis NMP:ntn RAW:ntr VI:ntvi SDP:ntt EXADIRECT:ntmq WSS:ntwss WS:ntwss"
TtoNAM="US:IPC TCP:TCP/IP BEQ:BEQueath TCPS:SSL SPX:SPX ISPX:TLI/SPX DEC:DECNet DCE:DCE LU62:LU6.2 ITCP:TLI/TCP NMP:NamedPipes RAW:RAW VI:VI SDP:SDP EXADIRECT:EXADIRECT WSS:WEBSOCKSEC WS:WEBSOCK"
TtoLIB="US:us TCP:tcp BEQ:beq TCPS:tcps SPX:tlis DEC:dec DCE:dce LU62:lu62 ITCP:tlit ISPX:tlis NMP:nmp RAW:raw VI:vi SDP:tcp EXADIRECT:tmq WSS:twss WS:twss"

for T in $TRANSPORTS; do
# Default is to use all available drivers
  eval NTUSE$T="true"

  LIB=`$ECHO ${TtoLIB}  | $SED 's/ /\\
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
  INI=`$ECHO ${TtoINI}  | $SED 's/ /\\
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
  BAS=`$ECHO ${TtoBAS} | $SED 's/ /\\
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`

  if [ "` $NM $NMOPTS ${LIBPATH}/libn${LIB}${VER}.* 2> /dev/null |$GREP ${INI}  2> /dev/null`" = "" ]; then

    eval NTUSE${T}="false"
  fi
done

#
# Now begins the big divide between SunOS 5 and the rest of the world...
#

#
# Now begins the big divide between AIXRIOS and the rest of the world...
#

USE_AS=${USE_AS:=false}

USE_AS=true
unset SRCHOME

if [ "$USE_AS" = "true" ] && [ "$SRCHOME" = "" ]; then

        $ECHO ""
count=0
if [ "$NTUSESPX" = "true" ]
then
count=`$EXPR $count + 1`
fi
if [  "$NTUSETCP" = "true" ]
then
count=`$EXPR $count + 1`
fi
if [  "$NTUSETCPS" = "true" ]
then
count=`$EXPR $count + 1`
fi
# Entries for RAW, BEQ and IPC adapters, including adapter table strings
count=`$EXPR $count + 3`
SIZE=`$EXPR $count \* $ROWSIZE`

$ECHO '
	.file "ntcontab.c"
     '
$ECHO "
	$CODE
     "
$ECHO '
        .section        .text,"ax"
        .section        .data ,"aw"
        .globl  ntcontab
     '
$ECHO "
        .align  $ALIGN
     "
$ECHO "
ntcontab:
        .type   ntcontab,@object
        .size   ntcontab,$SIZE
        .align  $ALIGN
     "

if [ "$NTUSESPX" = "true" ]
then
$ECHO "
        .${PTRSIZE}byte  .L56
        .${PTRSIZE}byte  ntsini
        .${PTRSIZE}byte  .L57
        .${PTRSIZE}byte  .L58
     "
fi

if [  "$NTUSETCP" = "true" ]
then
$ECHO " 
        .${PTRSIZE}byte  .L59
        .${PTRSIZE}byte  nttini
        .${PTRSIZE}byte  .L60
        .${PTRSIZE}byte  .L61
"
fi

if [  "$NTUSETCPS" = "true" ]
then
$ECHO "
        .${PTRSIZE}byte  .L62
        .${PTRSIZE}byte  ntzini
        .${PTRSIZE}byte  .L63
        .${PTRSIZE}byte  .L64
"
fi

if [  "$NTUSESDP" = "true" ]
then
count=`$EXPR $count + 1`
$ECHO " 
        .${PTRSIZE}byte  .L74
        .${PTRSIZE}byte  nttsdpini
        .${PTRSIZE}byte  .L75
        .${PTRSIZE}byte  .L76
"
fi

if [  "$NTUSEEXADIRECT" = "true" ]
then
count=`$EXPR $count + 1`
$ECHO " 
        .${PTRSIZE}byte  .L77
        .${PTRSIZE}byte  ntmqini
        .${PTRSIZE}byte  .L78
        .${PTRSIZE}byte  .L79
"
fi

if [  "$NTUSEWSS" = "true" ]
then
count=`$EXPR $count + 1`
$ECHO " 
        .${PTRSIZE}byte  .L80
        .${PTRSIZE}byte  ntwssini
        .${PTRSIZE}byte  .L81
        .${PTRSIZE}byte  .L82
"
fi

if [  "$NTUSEWS" = "true" ]
then
count=`$EXPR $count + 1`
$ECHO " 
        .${PTRSIZE}byte  .L83
        .${PTRSIZE}byte  ntwsini
        .${PTRSIZE}byte  .L84
        .${PTRSIZE}byte  .L85
"
fi

# Entries for RAW, BEQ and IPC adapters, including adapter table strings
$ECHO "
        .${PTRSIZE}byte  .L65
        .${PTRSIZE}byte  ntrini
        .${PTRSIZE}byte  .L66
        .${PTRSIZE}byte  .L67
        .${PTRSIZE}byte  .L68
        .${PTRSIZE}byte  ntpini
        .${PTRSIZE}byte  .L69
        .${PTRSIZE}byte  .L70
        .${PTRSIZE}byte  .L71
        .${PTRSIZE}byte  ntusini
        .${PTRSIZE}byte  .L72
        .${PTRSIZE}byte  .L73
        .set    .,.+${ROWSIZE}
     "
$ECHO '
        .section        .data1 ,"aw"
        .align  4
'

if [ "$NTUSESPX" = "true" ]
then
$ECHO '
.L56:
        .type   .L56,@object
        .size   .L56,4
        .align  4
        .byte   0x73,0x70,0x78,0x0
        .align  4
.L57:
        .type   .L57,@object
        .size   .L57,8
        .align  4
        .byte   0x5f,0x4e,0x54,0x53,0x49,0x4e,0x49,0x0
        .align  4
.L58:
        .type   .L58,@object
        .size   .L58,4
        .align  4
        .byte   0x6e,0x74,0x73,0x0
        .align  4
'
fi

if [  "$NTUSETCP" = "true" ]
then
$ECHO '
.L59:
        .type   .L59,@object
        .size   .L59,4
        .align  4
        .byte   0x74,0x63,0x70,0x0
        .align  4
.L60:
        .type   .L60,@object
        .size   .L60,8
        .align  4
        .byte   0x4e,0x54,0x54,0x49,0x4e,0x49,0x0
        .set    .,.+1
        .align  4
.L61:
        .type   .L61,@object
        .size   .L61,4
        .align  4
        .byte   0x6e,0x74,0x74,0x0
        .align  4
'
fi

if [  "$NTUSETCPS" = "true" ]
then
$ECHO '
.L62:
        .type   .L62,@object
        .size   .L62,8
        .align  4
        .byte   0x74,0x63,0x70,0x73,0x0
        .set    .,.+3
        .align  4
.L63:
        .type   .L63,@object
        .size   .L63,8
        .align  4
        .byte   0x4e,0x54,0x5a,0x49,0x4e,0x49,0x0
        .set    .,.+1
        .align  4
.L64:
        .type   .L64,@object
        .size   .L64,8
        .align  4
        .byte   0x6e,0x74,0x63,0x70,0x73,0x0
        .set    .,.+2
        .align  4
'
fi

if [  "$NTUSESDP" = "true" ]
then
$ECHO '
.L74:
        .type   .L74,@object
        .size   .L74,4
        .align  4
        .byte   0x73,0x64,0x70,0x0
        .align  4
.L75:
        .type   .L75,@object
        .size   .L75,12
        .align  4
        .byte   0x4e,0x54,0x54,0x53,0x44,0x50,0x49,0x4e,0x49,0x0
        .set    .,.+2
        .align  4
.L76:
        .type   .L76,@object
        .size   .L76,4
        .align  4
        .byte   0x6e,0x74,0x74,0x0
        .align  4
'
fi

if [  "$NTUSEEXADIRECT" = "true" ]
then
$ECHO '
.L77:
        .type   .L77,@object
        .size   .L77,10
        .align  4
        .byte   0x65,0x78,0x61,0x64,0x69,0x72,0x65,0x63,0x74,0x0
        .align  4
.L78:
        .type   .L78,@object
        .size   .L78,8
        .align  4
        .byte   0x4e,0x54,0x4d,0x51,0x49,0x4e,0x49,0x0
        .align  4
.L79:
        .type   .L79,@object
        .size   .L79,5
        .align  4
        .byte   0x6e,0x74,0x6d,0x71,0x0
        .align  4
'
fi

if [  "$NTUSEWSS" = "true" ]
then
$ECHO '
.L80:
        .type   .L80,@object
        .size   .L80,4
        .align  4
        .byte   0x77,0x73,0x73,0x0
        .align  4
.L81:
        .type   .L81,@object
        .size   .L81,9
        .align  4
        .byte   0x6e,0x74,0x77,0x73,0x73,0x69,0x6e,0x69,0x0
        .align  4
.L82:
        .type   .L82,@object
        .size   .L82,6
        .align  4
        .byte   0x6e,0x74,0x77,0x73,0x73,0x0
        .align  4
'
fi

if [  "$NTUSEWS" = "true" ]
then
$ECHO '
.L83:
        .type   .L83,@object
        .size   .L83,3
        .align  4
        .byte   0x77,0x73,0x0
        .align  4
.L84:
        .type   .L84,@object
        .size   .L84,8
        .align  4
        .byte   0x6e,0x74,0x77,0x73,0x69,0x6e,0x69,0x0
        .align  4
.L85:
        .type   .L85,@object
        .size   .L85,6
        .align  4
        .byte   0x6e,0x74,0x77,0x73,0x73,0x0
        .align  4
'
fi

$ECHO '
.L65:
        .type   .L65,@object
        .size   .L65,4
        .align  4
        .byte   0x72,0x61,0x77,0x0
        .align  4
.L66:
        .type   .L66,@object
        .size   .L66,8
        .align  4
        .byte   0x5f,0x4e,0x54,0x52,0x49,0x4e,0x49,0x0
        .align  4
.L67:
        .type   .L67,@object
        .size   .L67,4
        .align  4
        .byte   0x6e,0x74,0x72,0x0
        .align  4
.L68:
        .type   .L68,@object
        .size   .L68,4
        .align  4
        .byte   0x62,0x65,0x71,0x0
        .align  4
.L69:
        .type   .L69,@object
        .size   .L69,8
        .align  4
        .byte   0x5f,0x4e,0x54,0x50,0x49,0x4e,0x49,0x0
        .align  4
.L70:
        .type   .L70,@object
        .size   .L70,4
        .align  4
        .byte   0x6e,0x74,0x70,0x0
        .align  4
.L71:
        .type   .L71,@object
        .size   .L71,4
        .align  4
        .byte   0x69,0x70,0x63,0x0
        .align  4
.L72:
        .type   .L72,@object
        .size   .L72,12
        .align  4
        .byte   0x5f,0x4e,0x54,0x55,0x53,0x49,0x4e,0x49,0x0
	.set    .,.+3
	.align  4
.L73:
        .type   .L73,@object
        .size   .L73,5
        .align  4
        .byte   0x6e,0x74,0x75,0x73,0x0

        .section        .rodata ,"a"
        .globl  ntconent
        .align  4
ntconent:
        .type   ntconent,@object
        .size   ntconent,4
        .align  4
'
$ECHO "        .4byte  0x$count"
$ECHO '
        .file   "ntcontab.c"
        .xstabs ".stab.index","Xa ; V=3.1 ; R=WorkShop Compilers 5.0 98/12/15 C 5.0",0x3c,0,0,0
        .xstabs ".stab.index","/scratch/d8/net815/bin; /opt/SUNWspro/bin/../SC5.0/bin/cc -S  nt.c -W0,-xp",0x34,0,0,0
        .ident  "@(#)types.h    1.63    98/04/28 SMI"
        .ident  "@(#)isa_defs.h 1.15    97/11/22 SMI"
        .ident  "@(#)feature_tests.h    1.17    97/12/04 SMI"
        .ident  "@(#)machtypes.h        1.7     96/05/23 SMI"
        .ident  "@(#)int_types.h        1.6     97/08/20 SMI"
        .ident  "@(#)select.h   1.16    98/04/27 SMI"
        .ident  "@(#)time.h     2.62    98/02/04 SMI"
        .ident  "@(#)time.h     1.36    98/03/27 SMI"
        .ident  "@(#)time_impl.h        1.3     98/02/13 SMI"
        .ident  "acomp: WorkShop Compilers 5.0 98/12/15 C 5.0"
'

	$ECHO ""

else  # USE_AS

$ECHO '/*'
$ECHO '**'
$ECHO '** This file is GENERATED by gennttab'
$ECHO '**'
$ECHO '*/
'

$ECHO "#include <sys/types.h>
"

# the following is taken from ntdrv.h
$ECHO '/* NT driver descriptor */
struct ntdrv
{
    char   *ntdrvdes;                               /* NT driver designator */
    void  (*ntdrvini)(            /* NTCONNECT - NT driver init function */
             /*_ ptr_t gbl, struct ntpa *pactx _*/ );
    char   *ntdrvsini;                                 /* Name of INIT func */
    char   *ntdrvmod;                                   /* NT driver module */
};
typedef struct ntdrv ntdrv;
'

if [ "${NTUSEDCE}" = "true" ]
then
$ECHO "void ntodrini();"
fi

if [ "${NTUSETCP}" = "true" ]
then
$ECHO "void nttini();"
fi

if [ "${NTUSETCPS}" = "true" ]; then
$ECHO "void ntzini();"
fi

if [ "${NTUSEASYNC}" = "true" ]
then
$ECHO "void ntasgini();"
fi

if [ "${NTUSEITCP}" = "true" ]
then
$ECHO "void ntitini();"
fi

if [ "${NTUSEX25}" = "true" ]
then
$ECHO "void ntxini();"
fi

if [ "${NTUSESPX}" = "true" ]
then
$ECHO "void ntsini();"
fi

if [ "${NTUSEISPX}" = "true" ]
then
$ECHO "void ntsini();"
fi

if [ "${NTUSENTB}" = "true" ]
then
$ECHO "void ntbini();"
fi

if [ "${NTUSEDNT}" = "true" ]
then
$ECHO "void ntdini();"
fi

if [ "${NTUSEIDNT}" = "true" ]
then
$ECHO "void ntidini();"
fi

$ECHO "void ntrini();"

$ECHO "void ntpini();"

$ECHO "void ntusini();"

if [ "${NTUSENMP}" = "true" ]
then
$ECHO "void ntnini();"
fi

if [ "${NTUSEOSI}" = "true" ]
then

$ECHO "void snto4in();"

fi

if [ "${NTUSELU62}" = "true" ]
then
$ECHO "void ntlini();"
fi

if [ "${NTUSEEXADIRECT}" = "true" ]
then
$ECHO "void ntmqini();"
fi

if [ "${NTUSEWSS}" = "true" ]
then
$ECHO "void ntwssini();"
fi
if [ "${NTUSEWSS}" = "true" ]
then
$ECHO "void ntwsini();"
fi

# the protocol table
$ECHO "ntdrv ntcontab[] = {"
#Add the DCE adapter
if [ "${NTUSEDCE}" = "true" ]
then
$ECHO '
 { "dce", ntodrini, "_NTODRINI", "ntodr" },
'
fi

# Add the TCP adapter
if [ "${NTUSETCP}" = "true" ]
then
$ECHO '
 { "tcp", nttini, "NTTINI", "ntt" },
'
fi

# Add the SSL adapter
if [ "${NTUSETCPS}" = "true" ]; then
$ECHO '
 { "tcps", ntzini, "NTZINI", "ntcps" },
'
fi

# Add the SDP adapter
if [ "${NTUSESDP}" = "true" ]; then
$ECHO '
 { "sdp", nttsdpini, "NTTSDPINI", "ntt" },
'
fi
# Add the ITCP adapter
if [ "${NTUSEITCP}" = "true" ]
then
$ECHO '
 { "tcp", ntitini, "_NTITCN", "ntlit" },
'
fi
# Add the X25 adapter
if [ "${NTUSEX25}" = "true" ]
then
$ECHO '
 { "x25", ntxini, "_NTXINI", "ntx" }, 
'
fi
# Add the SPX adapter
if [ "${NTUSESPX}" = "true" ]
then
$ECHO '
 { "spx", ntsini, "_NTSINI", "nts" },
'
fi
# Add the ISPX adapter
if [ "${NTUSEISPX}" = "true" ]
then
$ECHO '
 { "spx", ntsini, "_NTSINI", "ntlis" },
'
fi
# Add the NTB adapter
if [ "${NTUSENTB}" = "true" ]
then
$ECHO '
{ "ntb", ntbini, "_NTBINI", "ntb" }, 
'
fi
# Add the DECNet adapter
if [ "${NTUSEDNT}" = "true" ]
then
$ECHO '
{ "decnet", ntdini, "_NTDINI", "ntd" },
'
fi
# Add the IDNT adapter
if [ "${NTUSEIDNT}" = "true" ]
then
$ECHO '
{ "decnet", ntidini, "_NTIDINI", "ntid" },
'
fi
# RAW Bequeath and IPC PAs always included
$ECHO '
 { "raw", ntrini, "_NTRINI", "ntr" },
'
$ECHO '
{ "beq", ntpini, "_NTPINI", "ntp" },
'
$ECHO '
{ "ipc", ntusini, "_NTUSINI", "ntus" },
'
# Add the Named pipes adapter
if [ "${NTUSENMP}" = "true" ]
then
$ECHO '
{ "nmp", ntnini, "_NTNINI", "ntn" },
'
fi
# Add the OSI adapter
if [ "${NTUSEOSI}" = "true" ]
then

$ECHO '
{  "osi4", snto4in, "_snto4in",  "nto4" },
'

fi
# Add the LU6.2 adapter
if [ "${NTUSELU62}" = "true" ]
then
$ECHO '
{  "lu62", ntlini, "_ntlini",  "ntl" },
'
fi
# Add the async adapter
if [ "${NTUSEASYNC}" = "true" ]
then
$ECHO '
{  "async", ntasgini, "_ntasgini",  "ntas" },
'
fi
# Add the exadirect adapter
if [ "${NTUSEEXADIRECT}" = "true" ]
then
$ECHO '
{  "exadirect", ntmqini, "_NTMQINI",  "ntmq" },
'
fi
# Add the WebSocketSecure adapter
if [ "${NTUSEWSS}" = "true" ]
then
$ECHO '
 { "wss", ntwssini, "_NTWSSINI", "ntwss" },
'
fi
# Add the WebSocket adapter
if [ "${NTUSEWS}" = "true" ]
then
$ECHO '
 { "ws", ntwsini, "_NTWSINI", "ntwss" },
'
fi
$ECHO " { 0, 0, 0, 0}};"

$ECHO '/* no. of connect table entries */
'

$ECHO "const int ntconent = sizeof(ntcontab)/sizeof(ntcontab[0]) - 1;"

fi # USE_AS

