/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#include <stdio.h>
#include <errno.h>
#include <limits.h>
#include <fcntl.h>
#include <strings.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <locale.h>
#include <langinfo.h>
#include <libintl.h>
#include <stdarg.h>
#include "rdcadm.h"
int
{
int rdsk;
char *s;
int i;
rdsk = i = 0;
rdsk = 1;
else
s++;
}
*s = '\0';
gettext("can not check volume %s against mount table"),
/* Assume the worst, that it is mounted */
return (1);
}
/* found something before EOF */
return (1);
}
return (0);
}
char *
{
switch (flag) {
case (RDC_CMD_COPY):
if (options & RDC_OPT_FULL)
else
if (options & RDC_OPT_REVERSE)
break;
case (RDC_CMD_DISABLE):
break;
case (RDC_CMD_ENABLE):
if (options & RDC_OPT_SETBMP)
else
break;
case (RDC_CMD_LOG):
break;
case (RDC_CMD_HEALTH):
break;
case (RDC_CMD_WAIT):
break;
case (RDC_CMD_RECONFIG):
break;
case (RDC_CMD_TUNABLE):
break;
case (RDC_CMD_SUSPEND):
break;
case (RDC_CMD_RESUME):
break;
case (RDC_CMD_RESET):
break;
case (RDC_CMD_ADDQ):
break;
case (RDC_CMD_REMQ):
break;
case (RDC_CMD_REPQ):
break;
default:
break;
}
return (str);
}
static void
{
if (status) {
} else {
}
}
}
void
{
exit(1);
}
void
{
}
int
rdc_get_maxsets(void)
{
int rc;
rdc_status.nset = 0;
ustatus = spcs_s_ucreate();
if (rc == SPCS_S_ERROR) {
}
return (rdc_status.maxsets);
}
/*
* Look up a set in libcfg to find the setnumber.
*
* ASSUMPTIONS:
* - a valid cfg handle
*
* INPUTS:
* cfg - cfg handle
* tohost - secondary hostname
* tofile - secondary volume
*
* OUTPUTS:
* set number if found, otherwise -1 for an error
*/
int
{
int setnumber;
char **entry;
char *cnode;
int offset = 0;
#ifdef DEBUG
#endif
return (-1);
}
rc = -1;
/* filter this out */
++offset;
continue;
}
}
/* Check secondary volume name first, will get less hits */
continue;
}
break;
}
}
if (entries)
return (rc);
}
void
{
int i;
if (*group == '\0')
return;
for (i = 1; ; i++) {
break;
"group %s's disk queue"), group);
}
}
}
}
int
{
int setnum = 0;
int close_cfg = 0;
close_cfg = 1;
return (-1); /* message printed by caller */
}
return (-1);
}
}
if (setnum < 0)
return (setnum);
if (close_cfg)
gettext("%s unable to get unique setid "
return (-1);
}
if (close_cfg)
}
int
{
int setid;
char *ctag;
/* If in a Sun Cluster, SetIDs need to have a ctag */
}
setid = 1;
}
} else {
setid++;
if (setid <= 0) {
setid = 1;
}
}
}
/* Restore old ctag if in a Sun Cluster */
if (ctag) {
}
return (setid);
}
void
block_sigs(void)
{
(void) sigfillset(&allsigs);
}
void
unblock_sigs(void)
{
}