1#!/sbin/sh
2#
3# CDDL HEADER START
4#
5# The contents of this file are subject to the terms of the
6# Common Development and Distribution License (the "License").
7# You may not use this file except in compliance with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22
23#
24# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
25#
26
27#
28# RCM script to inform if RDSv3 is currently used
29#
30rcm_script_version=1
31rcm_script_func_info="RDSv3 (un)configuration rcm script"
32rcm_cmd_timeout=10
33rcm_resource_name=/devices/ib/rdsv3@0:rdsv3
34
35do_scriptinfo()
36{
37	printf "rcm_script_version=%d\n" $rcm_script_version;
38	printf "rcm_script_func_info=$rcm_script_func_info\n";
39	printf "rcm_cmd_timeout=%d\n" $rcm_cmd_timeout;
40	exit 0;
41}
42
43do_register()
44{
45	printf "rcm_resource_name=%s\n" $rcm_resource_name;
46	exit 0;
47}
48
49do_resourceinfo()
50{
51	if [ x"$1" = x"/devices/ib/rdsv3@0:rdsv3" ]
52	then
53		printf "rcm_resource_usage_info=RDSv3 IB device 0\n";
54		exit 0;
55	else
56		printf "rcm_failure_reason=Unknown RDSv3 device\n";
57		exit 3;
58	fi
59}
60
61do_queryremove()
62{
63	output=`/usr/sbin/fuser $rcm_resource_name 2>&1`
64	ret=$?
65
66	sockrds=`echo "$output" | grep 'sockrds'`
67
68        if [ $ret -eq 0 ] && [ ! -z "$sockrds" ]
69        then
70                printf "rcm_log_warn=RDSv3 is being used currently. "
71                printf "Please stop processes currently running on it "
72		printf "before un-configuring IB HCA/RDSv3.\n";
73                printf "rcm_failure_reason=RDSv3 is being used on this system\n";
74                exit 3;
75        elif [ $ret -ne 0 ]
76        then
77                printf "rcm_log_warn='fuser $rcm_resource_name' command failed."
78                printf "rcm_failure_reason='fuser $rcm_resource_name' command "
79		printf "failed.\n";
80                exit 1;
81        fi
82        exit 0;
83}
84
85do_preremove()
86{
87	exit 0;
88}
89
90do_undoremove()
91{
92	exit 0;
93}
94
95do_postremove()
96{
97	exit 0;
98}
99
100case "$1" in
101	scriptinfo) do_scriptinfo;;
102	register) do_register;;
103	resourceinfo) do_resourceinfo $2;;
104	queryremove) do_queryremove $2;;
105	preremove) do_preremove $2;;
106	undoremove) do_undoremove $2;;
107	postremove) do_postremove $2;;
108	*) echo Unknown option $1;;
109esac
110