#!/bin/sh
#ident "$script: dlminsadrv Build 5.90.0.8 07/02/09 20:00:00 $"

#----------------------------------------------------------------------------#
# PRODUCT :  HDLM Driver 0503                                                #
#----------------------------------------------------------------------------#
# NAME :     dlminsadrv                                                      #
# FUNCTION : wrapper script for insertion of alert driver                    #
# INSTANCE :                                                                 #
# MEMO :                                                                     #
# DATE :     2004/03/11                                                      #
# AUTHOR :   Santosh Rokade                                          	     #
# HISTORY :                                                                  #
#                                                                            #
#@ All Rights Reserved, Copyright (C) 2004,2007 Hitachi, Ltd.                     #
#----------------------------------------------------------------------------#

# REVAMP ACTIVITY PERFORMED. SO ALL PREVIOUS FDOCS & COMMENTS ARE REMOVED. PLEASE LOOKUP 
# PREVIOUS VERSIONS CODES FOR REFERENCE.

# Use of Wrapper script for insmod and rmmod ADD Start 
# Creation of character device after Alert module is inserted ONLY for AS3/ES3 Start

ALERTDRV=sddlmadrv
CMD_CAT=/bin/cat
CMD_CHMOD=/bin/chmod
CMD_ECHO=/bin/echo
CMD_GAWK=/bin/gawk
CMD_GREP=/bin/grep
CMD_INSMOD=/sbin/insmod
CMD_MODPROBE="/sbin/modprobe"
CMD_MKDIR=/bin/mkdir
CMD_MKNOD=/bin/mknod
CMD_RM=/bin/rm
DLM_RMMOD_Alert=/etc/sysconfig/hdlm-scripts/dlmrmadrv
CMD_UNAME=/bin/uname
if [ -f /etc/redhat-release ]; then
	LOGGER=/usr/bin/logger
elif [ -f /etc/SuSE-release ]; then
	LOGGER=/bin/logger
fi
HDLM_COMMON_KNL_CHK="/etc/sysconfig/hdlm-scripts/dlmcommonknlcheck"
SYSLOG_TAG="dlminsadrv"
KERNEL_2_4=0
KERNEL_2_6=0

# Check for Kernel (2.4 or 2.6)  
VERSION=`$CMD_UNAME -r | $CMD_GAWK -F "." '{print $2 }'`
if [ $VERSION -eq 4 ] ; then
	KERNEL_2_4=1
else
	KERNEL_2_6=1
fi

##########################################################################
#Log message function
logmsg(){
        $LOGGER -t $SYSLOG_TAG "$*"
        $CMD_ECHO "$*"        
}

SUPPORT_JAP=$LANG
if [ "$SUPPORT_JAP" == "ja_JP.eucjp" ] || [ "$SUPPORT_JAP" == "ja_JP.eucJP" ] ; then
	dlminsadrvid1="KAPL12801-E 󥹥ȡ뤵ƤHDLMбƤ륫ͥΥСȡưƤ륫ͥΥС󤬰פޤ"
	dlminsadrvid2="KAPL12802-E HDLMΥե뤬Ǥե̾ = "
elif [ "$SUPPORT_JAP" == "ja_JP.UTF-8" -a $KERNEL_2_6 -eq 1 -a -f /etc/redhat-release ]; then
	dlminsadrvid1="KAPL12801-E インストールされているHDLMが対応しているカーネルのバージョンと，現在動作しているカーネルのバージョンが一致しません。"
	dlminsadrvid2="KAPL12802-E HDLMのファイルが不正です。ファイル名 = "
else
	dlminsadrvid1="KAPL12801-E The version of the kernel supported by the installed HDLM does not match the currently running kernel version."
	dlminsadrvid2="KAPL12802-E The HDLM file is invalid. File name = "
fi


###########################################################################
#Kernel Version Agreement Check
#For matching kernel version-START#
if [ -f $HDLM_COMMON_KNL_CHK ]; then
	. $HDLM_COMMON_KNL_CHK
	if [ "$HDLM_COMMON_RESULT" != "MATCH" ]; then
		if [ "$HDLM_COMMON_RESULT" == "UNMATCH" ]; then
			logmsg $dlminsadrvid1
		else
			logmsg $dlminsadrvid2 "$HDLM_COMMON_KNL_VER_FILE"
		fi	
		exit 1
	fi
else
	logmsg $dlminsadrvid2 "$HDLM_COMMON_KNL_CHK"
	exit 1
fi
#For matching kernel version-END#
##########################################################################


if [ $KERNEL_2_6 ]; then
    $CMD_MODPROBE $ALERTDRV
else
    $CMD_INSMOD $ALERTDRV
fi
if [ $? -ne 0 ]; then
    exit 1
fi

ALERT_MAJOR=`$CMD_CAT /proc/devices | $CMD_GREP $ALERTDRV | $CMD_GAWK '{print $1}'`
$CMD_MKDIR -p /dev/dlm 2>/dev/null
$CMD_RM -f /dev/dlm/sddlmadrv0 2>/dev/null
$CMD_MKNOD /dev/dlm/sddlmadrv0 c $ALERT_MAJOR 0
RET_VALUE=$?
if [ $RET_VALUE -ne 0 ]; then
    $DLM_RMMOD_Alert
    exit $RET_VALUE
fi
$CMD_CHMOD 640 /dev/dlm/sddlmadrv0
		
        
exit $RET_VALUE

# Creation of character device after Alert module is inserted ONLY for AS3/ES3 End
# Use of Wrapper script for insmod and rmmod ADD End 