MINI MINI MANI MO
:
#
#
# 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" ] ; 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=18
##################################
NMOPTS=
##################################
if [ "x$1" = "x-64" ] ; then
LIB=lib64
else
LIB=lib
fi
LIBPATH=${ORACLE_HOME}/${LIB}
LIBNET="libn${VER}"
LIBNETPATH=${LIBPATH}/${LIBNET}
TRANSPORTS="US TCP BEQ TCPS DCE NMP RAW SDP EXADIRECT WSS WS"
TtoINI="US:ntusini TCP:nttini BEQ:ntpini TCPS:ntzini DCE:ntodrini NMP:ntnini RAW:ntrini SDP:nttsdpini EXADIRECT:ntmqini WSS:ntwssini WS:ntwsini"
TtoBAS="US:ntus TCP:ntt BEQ:ntp TCPS:ntz DCE:ntodr NMP:ntn RAW:ntr SDP:ntt EXADIRECT:ntmq WSS:ntwss WS:ntwss"
TtoNAM="US:IPC TCP:TCP/IP BEQ:BEQueath TCPS:SSL DCE:DCE NMP:NamedPipes RAW:RAW SDP:SDP EXADIRECT:EXADIRECT WSS:WEBSOCKSEC WS:WEBSOCK"
TtoLIB="US:us TCP:tcp BEQ:beq TCPS:tcps DCE:dce NMP:nmp RAW:raw 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:=true}
if [ "$USE_AS" = "true" ] ; then
true
pointer=long
pointer=quad
emit_string() {
$ECHO "$1: .string \"$2\""
}
saved_phase=0
emit_ntdrv_entry() {
if [ $phase != $saved_phase ] ; then
entry=0
saved_phase=$phase
fi
case "${phase}${1}" in
1true )
emit_string ".L${entry}_1" "$2"
emit_string ".L${entry}_2" "$4"
emit_string ".L${entry}_3" "$5"
;;
2true )
$ECHO "
.${pointer} .L${entry}_1
.${pointer} $3
.${pointer} .L${entry}_2
.${pointer} .L${entry}_3
.Lnumber_of_entries=.Lnumber_of_entries+1
"
;;
esac
entry=$((entry + 1))
}
emit_prologue() {
case "$phase" in
1 )
$ECHO '/*
**
** This file is GENERATED by gennttab for Linux x86_64
**
*/
.file "ntcontab.c"
.section .rodata.str1.4, "aMS",@progbits,1
.align 4
.Lnumber_of_entries=0
'
;;
2 )
$ECHO '
.section .data1, "wa", @progbits
.align 8
.globl ntcontab
ntcontab:
'
;;
esac;
}
emit_epilogue() {
case "$phase" in
2 )
$ECHO "
.${pointer} 0, 0, 0, 0"
$ECHO '
.type ntcontab,@object
.size ntcontab,.-ntcontab
.section .rodata, "a"
.align 4
.globl ntconent
ntconent:
.long .Lnumber_of_entries
.type ntconent,@object
.size ntconent,.-ntconent
.section .note.GNU-stack,"",@progbits
.end
'
;;
esac;
}
for phase in 1 2 ; do
emit_prologue
emit_ntdrv_entry "$NTUSEDCE" "dce" ntodrini "_NTODRINI" "ntodr"
emit_ntdrv_entry "$NTUSETCP" "tcp" nttini "NTTINI" "ntt"
emit_ntdrv_entry "$NTUSETCPS" "tcps" ntzini "NTZINI" "ntcps"
emit_ntdrv_entry "$NTUSESDP" "sdp" nttsdpini "NTTSDPINI" "ntt"
emit_ntdrv_entry "true" "raw" ntrini "_NTRINI" "ntr"
emit_ntdrv_entry "true" "beq" ntpini "_NTPINI" "ntp"
emit_ntdrv_entry "true" "ipc" ntusini "_NTUSINI" "ntus"
emit_ntdrv_entry "$NTUSENMP" "nmp" ntnini "_NTNINI" "ntn"
emit_ntdrv_entry "$NTUSEOSI" "osi4" snto4in "_snto4in" "nto4"
emit_ntdrv_entry "$NTUSELU62" "lu62" ntlini "_ntlini" "ntl"
emit_ntdrv_entry "$NTUSEASYNC" "async" ntasgini "_ntasgini" "ntas"
emit_ntdrv_entry "$NTUSEEXADIRECT" "exadirect" ntmqini "_NTMQINI" "ntmq"
emit_ntdrv_entry "$NTUSEWSS" "wss" ntwssini "_NTWSSINI" "ntwss"
emit_ntdrv_entry "$NTUSEWS" "ws" ntwsini "_NTWSINI" "ntwss"
emit_epilogue
done
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 [ "${NTUSESDP}" = "true" ]; then
$ECHO "void nttsdpini();"
fi
$ECHO "void ntrini();"
$ECHO "void ntpini();"
$ECHO "void ntusini();"
if [ "${NTUSENMP}" = "true" ]
then
$ECHO "void ntnini();"
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
# 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
OHA YOOOO