summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Forte <John.Forte@Sun.COM>2008-10-21 08:43:26 -0700
committerJohn Forte <John.Forte@Sun.COM>2008-10-21 08:43:26 -0700
commit73a9f52fa0e4b5d00dc5f3a6314e6837e47f88cf (patch)
tree0cccf9b8644b231bd83042026936bdf4d963efd9
parent915ebf8da9f4ef3e7b2e34dd367f64d358a628d9 (diff)
downloadillumos-joyent-73a9f52fa0e4b5d00dc5f3a6314e6837e47f88cf.tar.gz
6745433 Merge NWS consolidation into OS/Net consolidation (fix unref)
--HG-- rename : usr/src/cmd/avs/errgen/errgen.help => usr/src/cmd/avs/errgen/errgen.help.txt rename : usr/src/uts/common/avs/ns/sdbc/CACHE_SPEC => usr/src/uts/common/avs/ns/sdbc/CACHE_SPEC.txt
-rw-r--r--usr/src/cmd/avs/dscvt/Makefile68
-rw-r--r--usr/src/cmd/avs/dscvt/dscvt.c433
-rw-r--r--usr/src/cmd/avs/dsw/dsimage.c556
-rw-r--r--usr/src/cmd/avs/errgen/errgen.help.txt (renamed from usr/src/cmd/avs/errgen/errgen.help)0
-rw-r--r--usr/src/cmd/avs/sdbc/sd_dcmp.c172
-rw-r--r--usr/src/cmd/fcinfo/getopt.h91
-rw-r--r--usr/src/lib/hbaapi/THIRDPARTYLICENSE (renamed from usr/src/pkgdefs/license_files/lic_SNIA)0
-rw-r--r--usr/src/lib/hbaapi/THIRDPARTYLICENSE.descrip1
-rw-r--r--usr/src/lib/hbaapi/common/license.htm397
-rw-r--r--usr/src/lib/libdscfg/common/llib-ldscfg72
-rw-r--r--usr/src/lib/libima/THIRDPARTYLICENSE404
-rw-r--r--usr/src/lib/libima/THIRDPARTYLICENSE.descrip1
-rw-r--r--usr/src/lib/libima/common/license.html397
-rw-r--r--usr/src/lib/mpapi/libmpapi/THIRDPARTYLICENSE404
-rw-r--r--usr/src/lib/mpapi/libmpapi/THIRDPARTYLICENSE.descrip1
-rw-r--r--usr/src/pkgdefs/SUNWcfcl/Makefile2
-rw-r--r--usr/src/pkgdefs/SUNWimac/Makefile2
-rw-r--r--usr/src/pkgdefs/SUNWmpapi/Makefile2
-rw-r--r--usr/src/pkgdefs/SUNWmpapir/Makefile2
-rw-r--r--usr/src/pkgdefs/SUNWscmu/i.preserve31
-rw-r--r--usr/src/tools/findunref/exception_list.open1
-rw-r--r--usr/src/tools/opensolaris/license-list3
-rw-r--r--usr/src/uts/common/avs/ns/sdbc/CACHE_SPEC.txt (renamed from usr/src/uts/common/avs/ns/sdbc/CACHE_SPEC)0
-rw-r--r--usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_transport.c230
-rw-r--r--usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_transport.h42
-rw-r--r--usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_utils.c422
-rw-r--r--usr/src/uts/common/io/scsi/adapters/iscsi/transport_services.c61
-rw-r--r--usr/src/uts/common/io/scsi/adapters/iscsi/transport_services.h75
28 files changed, 819 insertions, 3051 deletions
diff --git a/usr/src/cmd/avs/dscvt/Makefile b/usr/src/cmd/avs/dscvt/Makefile
deleted file mode 100644
index 0341d0cece..0000000000
--- a/usr/src/cmd/avs/dscvt/Makefile
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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
-# or http://www.opensolaris.org/os/licensing.
-# 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 2008 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-
-DYNPROG= dscvt
-
-include ../../Makefile.cmd
-include ../Makefile.com
-
-PROG = $(DYNPROG)
-
-dscvt := POBJS = dscvt.o
-
-OBJS= dscvt.o
-SRCS= $(OBJS:%.o=%.c)
-POFILE= $(OBJS:%.o=%.po)
-
-CFLAGS += -v
-LDLIBS += -lnsctl -ldscfg
-LINTFLAGS += -Xa -n -s -x -m -u -Dlint -errhdr=%user
-LINTFLAGS += -erroff=E_SEC_PRINTF_VAR_FMT
-
-all := TARGET= all
-install := TARGET= install
-clean := TARGET= clean
-clobber := TARGET= clobber
-lint := TARGET= lint
-
-.KEEP_STATE:
-
-.PARALLEL: $(OBJS)
-
-all: $(PROG) $(POFILES)
-
-install: all $(ROOTPROG)
-
-lint: lint_SRCS
-
-clean:
- $(RM) *.o $(POFILE)
-
-$(PROG): $$(POBJS)
- $(LINK.c) $(POBJS) -o $@ $(LDLIBS)
- $(POST_PROCESS)
-
-FRC:
-
-include ../../Makefile.targ
diff --git a/usr/src/cmd/avs/dscvt/dscvt.c b/usr/src/cmd/avs/dscvt/dscvt.c
deleted file mode 100644
index 9afd1842ca..0000000000
--- a/usr/src/cmd/avs/dscvt/dscvt.c
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- * 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
- * or http://www.opensolaris.org/os/licensing.
- * 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 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <sys/types.h>
-#include <sys/utsname.h>
-#include <sys/stat.h>
-#include <sys/mkdev.h>
-#include <sys/param.h>
-#include <sys/wait.h>
-#include <fcntl.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <strings.h>
-#include <errno.h>
-#include <limits.h>
-#include <stdio.h>
-#include <locale.h>
-#include <unistd.h>
-#include <search.h>
-#include <libgen.h>
-#include <nsctl.h>
-#include <dlfcn.h>
-#include <langinfo.h>
-#include <libintl.h>
-#include <netdb.h>
-#include <ctype.h>
-
-#include <sys/nsctl/rdc_io.h>
-#include <sys/nsctl/rdc_ioctl.h>
-#include <sys/nsctl/rdc_prot.h>
-
-#include <sys/unistat/spcs_s.h>
-#include <sys/unistat/spcs_s_u.h>
-#include <sys/unistat/spcs_errors.h>
-
-#include <sys/nsctl/sv.h>
-#include <sys/nsctl/sv_impl.h>
-
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netinet/tcp.h>
-#include <rpc/rpc_com.h>
-#include <rpc/rpc.h>
-
-#include <sys/nsctl/cfg.h>
-#include <sys/nsctl/nsc_hash.h>
-
-#define RDC_LIB "/usr/lib/librdc.so.1"
-
-/*
- * Structure to keep track of how many times a volume is used.
- */
-typedef struct vol_s {
- int count;
-} vol_t;
-int rflg;
-
-static void error(char *, char *, ...);
-static void process_dsw(CFGFILE *, hash_node_t **);
-static void process_rdc(CFGFILE *, hash_node_t **);
-static void process_sv(CFGFILE *, hash_node_t **);
-static void register_vol(CFGFILE *, hash_node_t **, char *, char *, char *,
- hash_node_t **);
-
-static int do_cluster;
-static int (*self_check)(char *);
-
-int
-main(int argc, char *argv[])
-{
- CFGFILE *cfg;
- hash_node_t **svhash;
- extern char *optarg;
- int rc;
- void *librdc;
- char altroot[NSC_MAXPATH]; /* jumpstart */
- char altlib[NSC_MAXPATH]; /* jumpstart */
- char *cfgloc;
- char c;
-
- while ((c = getopt(argc, argv, "r:")) != EOF) {
- switch (c) {
- case 'r':
- rflg++;
- strcpy(altroot, optarg);
- break;
- default:
- error(NULL, "Usage: dscvt [-r root_dir]\n");
- /*NOTREACHED*/
- };
- }
- cfgloc = cfg_location(NULL, CFG_LOC_GET_CLUSTER, rflg ? altroot : NULL);
-
- cfg = cfg_open(cfgloc);
- if (!cfg) {
- error("cfg_open", gettext("unable to open dscfg"));
- /*NOTREACHED*/
- }
- if (!cfg_lock(cfg, CFG_WRLOCK)) {
- error("cfg_lock",
- gettext("unable to obtain write lock for dscfg"));
- /*NOTREACHED*/
- }
- if (cfg_update_parser_config(cfg, "dsvol.path.cnode.users\n",
- CFG_PARSE_CONF) < 0) {
- if (errno != EEXIST) {
- error("cfg_update_parser_config",
- gettext("unable to update parser config"));
- /*NOTREACHED*/
- }
- }
- if (cfg_commit(cfg) < 0) {
- error("cfg_commit",
- gettext("unable to commit, parser info may be wrong"));
- }
- cfg_close(cfg);
- /*
- * re-open with new parser entry
- */
-
- cfg = NULL;
- cfg = cfg_open(cfgloc);
- if (!cfg) {
- error("cfg_open", gettext("unable to open dscfg"));
- /*NOTREACHED*/
- }
- if (!cfg_lock(cfg, CFG_WRLOCK)) {
- error("cfg_lock",
- gettext("unable to obtain write lock for dscfg"));
- /*NOTREACHED*/
- }
-
- cfg_resource(cfg, NULL);
-
- svhash = nsc_create_hash();
- if (!svhash) {
- error("nsc_create_hash",
- gettext("unable to create hash for sv"));
- /*NOTREACHED*/
- }
-
- /* preload volumes from 'dsvol' section, if any */
- rc = cfg_load_dsvols(cfg);
- if (rc < 0) {
- error("cfg_load_dsvols", gettext("cannot read config file"));
- /*NOTREACHED*/
- }
-
- /* handle cluster tags */
- do_cluster = cfg_issuncluster();
- if (do_cluster < 0) {
- error("cfg_issuncluster",
- gettext("unable to ascertain environment"));
- /*NOTREACHED*/
- }
-
- /* find out if RDC is installed */
- if (!rflg)
- librdc = dlopen(RDC_LIB, RTLD_LAZY | RTLD_GLOBAL);
- else {
- if ((strlen(altroot) + strlen(RDC_LIB)) >= NSC_MAXPATH) {
- (void) fprintf(stderr,
- "sndr library name too long, skipping\n");
- librdc = NULL;
- } else {
- strcpy(altlib, altroot);
- strcat(altlib, RDC_LIB);
- librdc = dlopen(altlib, RTLD_LAZY | RTLD_GLOBAL);
- }
- }
-
-
- /* now handle all the sections of the config file */
- process_dsw(cfg, svhash);
- if (librdc) {
- self_check = (int (*)(char *)) dlsym(librdc, "self_check");
- process_rdc(cfg, svhash);
- (void) dlclose(librdc);
- }
- process_sv(cfg, svhash);
-
- /* write changes and exit */
- (void) cfg_commit(cfg);
- cfg_close(cfg);
-
- nsc_remove_all(svhash, free);
-
- return (0);
-}
-
-static void
-error(char *func, char *str, ...)
-{
- va_list ap;
-
- va_start(ap, str);
-
- (void) fprintf(stderr, "dscvt: ");
- (void) vfprintf(stderr, str, ap);
-
- va_end(ap);
-
- if (errno && func) {
- perror(func);
- }
-
- exit(1);
-}
-
-/*
- * Determines which volumes are being used by II and adds them to
- * the 'dsvol' section of the config file.
- */
-static void
-process_dsw(CFGFILE *cfg, hash_node_t **svhash)
-{
- hash_node_t **iihash;
- int set;
- char key[ CFG_MAX_KEY ];
- char buf[ CFG_MAX_BUF ];
- char *master, *shadow, *p;
- char *ctag = "-";
-
- iihash = nsc_create_hash();
- if (!iihash) {
- error("nsc_create_hash",
- gettext("unable to create hashtable for Point-in-Time "
- "Copy"));
- /*NOTREACHED*/
- }
- cfg_rewind(cfg, CFG_SEC_CONF);
- for (set = 1; /*CSTYLED*/; set++) {
- (void) snprintf(key, CFG_MAX_KEY, "ii.set%d", set);
- if (cfg_get_cstring(cfg, key, buf, CFG_MAX_BUF)) {
- break;
- }
- p = buf;
- while (*p && isspace(*p)) {
- ++p;
- }
- master = strtok(p, " ");
- shadow = strtok(NULL, " ");
- if (do_cluster) {
- /* skip some fields */
- (void) strtok(NULL, " "); /* bitmap */
- (void) strtok(NULL, " "); /* mode */
- (void) strtok(NULL, " "); /* overflow */
- ctag = strtok(NULL, " ");
- }
-
- if (!master) {
- break;
- }
- register_vol(cfg, iihash, master, "ii", ctag, svhash);
-
- if (!shadow) {
- break;
- }
- register_vol(cfg, iihash, shadow, "ii", ctag, svhash);
-
- }
- nsc_remove_all(iihash, free);
-}
-
-/*
- * Determines which volumes are being used by SNDR and adds them to
- * the 'dsvol' section of the config file.
- */
-static void
-process_rdc(CFGFILE *cfg, hash_node_t **svhash)
-{
- hash_node_t **rdchash;
- int set;
- char key[ CFG_MAX_KEY ];
- char buf[ CFG_MAX_BUF ];
- char *host, *vol, *bmp, *p;
- char *ctag = "-";
-
- rdchash = nsc_create_hash();
- if (!rdchash) {
- error("nsc_create_hash",
- gettext("unable to create hashtable for Remote Mirror"));
- /*NOTREACHED*/
- }
- cfg_rewind(cfg, CFG_SEC_CONF);
- for (set = 1; /*CSTYLED*/; set++) {
- (void) snprintf(key, CFG_MAX_KEY, "sndr.set%d", set);
- if (cfg_get_cstring(cfg, key, buf, CFG_MAX_BUF)) {
- break;
- }
- p = buf;
- while (*p && isspace(*p)) {
- ++p;
- }
- host = strtok(p, " ");
- vol = strtok(NULL, " ");
- bmp = strtok(NULL, " ");
- if (!self_check(host)) {
- host = strtok(NULL, " ");
- vol = strtok(NULL, " ");
- bmp = strtok(NULL, " ");
- if (do_cluster) {
- /* skip some fields */
- (void) strtok(NULL, " "); /* type */
- (void) strtok(NULL, " "); /* mode */
- (void) strtok(NULL, " "); /* group */
- }
- } else if (do_cluster) {
- /* skip some fields */
- (void) strtok(NULL, " "); /* shost */
- (void) strtok(NULL, " "); /* secondary */
- (void) strtok(NULL, " "); /* sbitmap */
- (void) strtok(NULL, " "); /* type */
- (void) strtok(NULL, " "); /* mode */
- (void) strtok(NULL, " "); /* group */
- }
-
- if (do_cluster) {
- ctag = strtok(NULL, " ");
- }
- if (self_check(host)) {
- register_vol(cfg, rdchash, vol, "sndr", ctag, svhash);
- register_vol(cfg, rdchash, bmp, "sndr", ctag, svhash);
- }
- }
- nsc_remove_all(rdchash, free);
-}
-
-/*
- * This must be executed last. Any volumes that are configured in sv
- * which are not already claimed by II or SNDR must be put under SV
- * control.
- */
-static void
-process_sv(CFGFILE *cfg, hash_node_t **svhash)
-{
- int set;
- char key[ CFG_MAX_KEY ];
- char buf[ CFG_MAX_BUF ];
- char *path, *p;
- char *ctag = "-";
-
- cfg_rewind(cfg, CFG_SEC_CONF);
- for (set = 1; /*CSTYLED*/; set++) {
- (void) snprintf(key, CFG_MAX_KEY, "sv.set%d", set);
- if (cfg_get_cstring(cfg, key, buf, CFG_MAX_BUF)) {
- break;
- }
- p = buf;
- while (*p && isspace(*p)) {
- ++p;
- }
- path = strtok(p, " ");
- if (do_cluster) {
- (void) strtok(NULL, " "); /* skip 'mode' field */
- ctag = strtok(NULL, " ");
- }
- register_vol(cfg, svhash, path, "sv", ctag, NULL);
- }
-}
-
-static void
-register_vol(CFGFILE *cfg, hash_node_t **hash, char *path, char *user,
- char *ctag, hash_node_t **svhash)
-{
- vol_t *volp, *svolp;
- int rc;
-
- volp = (vol_t *)nsc_lookup(hash, path);
- if (!volp) {
- volp = (vol_t *)malloc(sizeof (vol_t));
- volp->count = 0;
- (void) printf("%s: adding %s as volume\n", user, path);
- if (nsc_insert_node(hash, volp, path) < 0) {
- error("nsc_insert_node", gettext(
- "Error manipulating data: vol %s, user %s\n"),
- path, user);
- /*NOTREACHED*/
- }
- rc = cfg_add_user(cfg, path, ctag, user);
- if (CFG_USER_ERR == rc) {
- error("cfg_add_user", gettext("Error adding volume %s"
- " for user %s\n"), path, user);
- perror("cfg_add_user");
- /*NOTREACHED*/
- }
- } else {
- ++volp->count;
- (void) printf("%s: incrementing usage of %s to %d\n", user,
- path, volp->count);
- }
-
- if (svhash) {
- svolp = (vol_t *)nsc_lookup(svhash, path);
- if (!svolp) {
- svolp = (vol_t *)malloc(sizeof (vol_t));
- svolp->count = volp->count;
- if (nsc_insert_node(svhash, svolp, path) < 0) {
- error("nsc_insert_node", gettext("Unable to"
- " insert node into svhash for %s (%s)"),
- path, user);
- /*NOTREACHED*/
- }
- } else {
- ++svolp->count;
- }
- /* remove it from 'sv' in case it was previously put there */
- (void) cfg_rem_user(cfg, path, ctag, "-sv");
- }
-}
diff --git a/usr/src/cmd/avs/dsw/dsimage.c b/usr/src/cmd/avs/dsw/dsimage.c
deleted file mode 100644
index 3ce442c9da..0000000000
--- a/usr/src/cmd/avs/dsw/dsimage.c
+++ /dev/null
@@ -1,556 +0,0 @@
-/*
- * 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
- * or http://www.opensolaris.org/os/licensing.
- * 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 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <strings.h>
-#include <errno.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include <unistd.h>
-
-#include <sys/scsi/scsi.h>
-#include <libintl.h>
-
-#include <sys/unistat/spcs_s.h>
-#include <sys/nsctl/ste_scsi.h>
-#include <sys/nsctl/dsw.h>
-
-#define SCSI_CDB(c, s, p, l) \
-{ \
- *c = (char)s; \
- *(c + 2) = (p >> 24) & 0xff; \
- *(c + 3) = (p >> 16) & 0xff; \
- *(c + 4) = (p >> 8) & 0xff; \
- *(c + 5) = p & 0xff; \
- *(c + 7) = (l >> 8) & 0xff; \
- *(c + 8) = l & 0xff; \
-}
-
-#define CDBSIZE 10
-#define RQBSIZE 26
-
-#define SCSITIME 5
-#define POLLTIME 3
-#define MAXIWWNS 3
-#define IIVOLCNT 4
-
-#define IN_BUFSIZE 2
-
-/* Globals */
-static int aflag = 0;
-static int cflag = 0;
-static int iflag = 0;
-static int uflag = 0;
-static int wflag = 0;
-static int qflag = 1;
-
-static int scsi_timeout = SCSITIME;
-static int wait_poll_time = POLLTIME;
-static int wwn_count = MAXIWWNS;
-static char *volume = NULL;
-static char direction = '\0';
-
-/* Prototypes */
-void help();
-void fail(int, char *);
-void parse(int, char **);
-int pit_abort();
-int pit_copy_update(int);
-int pit_list();
-int pit_wait();
-int pit_group_operation(int);
-void version();
-
-int
-main(int argc, char **argv)
-{
- int rc = 0;
-
- parse(argc, argv);
-
- if (!aflag && !cflag && !iflag && !uflag && !wflag)
- fail(EINVAL, gettext("operation not specified.\n"));
-
- /* abort */
- if (aflag && (rc = pit_abort()))
- fail(rc, gettext("abort failed.\n"));
-
- /* copy */
- if (cflag && (rc = pit_copy_update(II_PIT_COPY)))
- fail(rc, gettext("copy failed.\n"));
-
- /* update */
- if (uflag && (rc = pit_copy_update(II_PIT_UPDATE)))
- fail(rc, gettext("update failed.\n"));
-
- /* list */
- if (iflag && (rc = pit_list()))
- fail(rc, gettext("list failed.\n"));
-
- /* wait */
- if (wflag && (rc = pit_wait()))
- fail(rc, gettext("wait failed.\n"));
-
- return (0);
-}
-
-void
-help()
-{
- printf(gettext("Usage:\n"));
- printf(gettext("\tdsimage [-t <timeout>] [-n] -a <volume>\n"));
- printf(gettext("\tdsimage [-t <timeout>] [-n] -c [m|s] <volume>\n"));
- printf(gettext("\tdsimage [-t <timeout>] [-n] -u [m|s] <volume>\n"));
- printf(gettext("\tdsimage [-t <timeout>] -i <volume>\n"));
- printf(gettext("\tdsimage [-t <timeout>] [-p <polltime>] -w "
- "<volume>\n"));
- printf(gettext("\tdsimage -h\n"));
- printf(gettext("\tdsimage -v\n"));
- printf(gettext("Description of options:\n"));
- printf(gettext("\t-a\tAbort any outstanding copy/update "
- "operations.\n"));
- printf(gettext("\t-c\tInitiate a copy operation, overwriting an "
- "entire volume.\n"));
- printf(gettext("\t-u\tInitiate a update operation, moving changed "
- "data.\n"));
- printf(gettext("\t-i\tRetrieve information about the point-in-time "
- "set.\n"));
- printf(gettext("\t-w\tWait for a copy/update operation to "
- "complete.\n"));
- printf(gettext("\t-t\tSet the SCSI timeout. (default=%d)\n"), SCSITIME);
- printf(gettext("\t-p\tSet the polling time used for wait "
- "operation. (default=%d)\n"), POLLTIME);
- printf(gettext("\t-n\tSupress confirmation of operation.\n"));
- printf(gettext("\t-h\tOutput help text.\n"));
- printf(gettext("\t-v\tOutput version of dsimage.\n"));
-}
-
-void
-fail(int rc, char *msg)
-{
- fprintf(stderr, "\n%s\n", msg);
- help();
- exit(rc);
-}
-
-void
-parse(int argc, char **argv)
-{
- int c;
- extern char *optarg;
- extern int optind;
-
- while ((c = getopt(argc, argv, "ac:hinp:t:u:wv")) != EOF)
- switch (c) {
- case 'a' : /* ABORT */
- aflag++;
- break;
- case 'c' : /* COPY */
- cflag++;
- direction = optarg[0];
- break;
- case 'h': /* HELP */
- help();
- exit(0);
- break;
- case 'i': /* LIST */
- iflag++;
- break;
- case 'n' : /* NO CONFIRM */
- qflag = 0;
- break;
- case 'p' : /* POLLING TIME */
- wait_poll_time = atoi(optarg);
- break;
- case 't' : /* TIMEOUT */
- scsi_timeout = atoi(optarg);
- break;
- case 'u': /* UPDATE */
- uflag++;
- direction = optarg[0];
- break;
- case 'w': /* WAIT */
- wflag++;
- break;
- case 'v': /* VERSION */
- version();
- break;
- }
-
- if (!(argc - optind))
- fail(EINVAL, gettext("No volume specified\n"));
-
- volume = (char *)calloc(DSW_NAMELEN, sizeof (char));
- strcpy(volume, argv[optind]);
-
-
- if ((cflag || uflag) && !strchr("ms", direction))
- fail(EINVAL, gettext("Invalid direciton specified.\n"));
-
- if (scsi_timeout < 1)
- fail(EINVAL, gettext("Invalid SCSI timeout specified.\n"));
-
- if (wait_poll_time < 1)
- fail(EINVAL, gettext("Invalid poll time specified.\n"));
-}
-
-int
-scsiwrite(int cmd, char *volume, int len, char *buf)
-{
- int fd;
- int rc;
- struct uscsi_cmd scsi_cmd;
- char *rqb;
- char *cdb;
-
- cdb = (char *)calloc(CDBSIZE, sizeof (char));
- rqb = (char *)calloc(RQBSIZE, sizeof (char));
-
- SCSI_CDB(cdb, CMD_STOREDGE_WRITE, cmd, len);
-
- scsi_cmd.uscsi_flags = (USCSI_WRITE | USCSI_RQENABLE);
- scsi_cmd.uscsi_timeout = scsi_timeout;
- scsi_cmd.uscsi_cdb = cdb;
- scsi_cmd.uscsi_cdblen = CDBSIZE;
- scsi_cmd.uscsi_rqbuf = rqb;
- scsi_cmd.uscsi_rqlen = RQBSIZE;
- scsi_cmd.uscsi_bufaddr = buf;
- scsi_cmd.uscsi_buflen = len;
-
- if ((fd = open(volume, O_RDWR)) == -1)
- fail(EINVAL, "Unable to open specified volume.\n");
-
- if ((rc = ioctl(fd, USCSICMD, &scsi_cmd)))
- fail(EINVAL, "Image operation timed out.");
-
- close(fd);
-
- return (rc);
-}
-
-int
-scsiread(int cmd, char *volume, int len, char *buf)
-{
- int fd;
- int rc;
- struct uscsi_cmd scsi_cmd;
- char *rqb;
- char *cdb;
-
- cdb = (char *)calloc(CDBSIZE, sizeof (char));
- rqb = (char *)calloc(RQBSIZE, sizeof (char));
-
- SCSI_CDB(cdb, CMD_STOREDGE_READ, cmd, len);
-
- scsi_cmd.uscsi_flags = (USCSI_READ | USCSI_RQENABLE);
- scsi_cmd.uscsi_status = 0;
- scsi_cmd.uscsi_timeout = scsi_timeout;
- scsi_cmd.uscsi_cdb = cdb;
- scsi_cmd.uscsi_cdblen = CDBSIZE;
- scsi_cmd.uscsi_rqbuf = rqb;
- scsi_cmd.uscsi_rqlen = RQBSIZE;
- scsi_cmd.uscsi_bufaddr = buf;
- scsi_cmd.uscsi_buflen = len;
- scsi_cmd.uscsi_resid = 0;
- scsi_cmd.uscsi_rqstatus = 0;
- scsi_cmd.uscsi_rqresid = 0;
-
- if ((fd = open(volume, O_RDWR)) == -1)
- fail(EINVAL, "Unable to open specified volume.\n");
-
- if ((rc = ioctl(fd, USCSICMD, &scsi_cmd)))
- fail(EINVAL, "Image operation timed out.");
-
- close(fd);
-
- return (rc);
-}
-
-/*
- * 'iiadm -i' output
- */
-void
-print_set(char *buf)
-{
- pit_props_t props;
- char *wwnp = (char *)buf + sizeof (pit_props_t);
-
- bcopy(buf, &props, sizeof (pit_props_t));
-
- /* vdisk IDs */
- if (props.mstid == -1)
- printf(gettext("<not mapped>"));
- else {
- printf("%s,%d", wwnp, props.mstid);
- wwnp += WWN_STRLEN * wwn_count;
- }
- printf(gettext(" (master volume)\n"));
-
- if (props.shdid == -1)
- printf(gettext("<not mapped>"));
- else {
- printf("%s,%d", wwnp, props.shdid);
- wwnp += WWN_STRLEN * wwn_count;
- }
- printf(gettext(" (shadow volume)\n"));
-
- if (props.bmpid == -1)
- printf(gettext("<not mapped>"));
- else {
- printf("%s,%d", wwnp, props.bmpid);
- wwnp += WWN_STRLEN * wwn_count;
- }
- printf(gettext(" (bitmap volume)\n"));
-
- if (props.has_overflow) {
- if (props.ovrid == -1)
- printf(gettext("<not mapped>"));
- else {
- printf("%s,%d", wwnp, props.ovrid);
- wwnp += WWN_STRLEN * wwn_count;
- }
- printf(gettext(" (ovrflow volume)\n"));
- }
-
- if (strlen(props.group)) {
- printf(gettext("Group: "));
- printf("%s\n", props.group);
- }
- if (strlen(props.cluster)) {
- printf(gettext("Cluster tag: "));
- printf("%s\n", props.cluster);
- }
-
- if (props.flags & DSW_GOLDEN)
- (void) printf(gettext("Independent copy"));
- else
- (void) printf(gettext("Dependent copy"));
-
- if (props.flags & DSW_TREEMAP)
- (void) printf(gettext(", compacted shadow space"));
-
- if (props.flags & DSW_COPYINGP)
- (void) printf(gettext(", copy in progress"));
- else if (props.flags & DSW_COPYING)
- (void) printf(gettext(", copy not active"));
-
- if (props.flags & DSW_COPYINGM)
- (void) printf(gettext(", copying master to shadow"));
-
- if (props.flags & DSW_COPYINGS)
- (void) printf(gettext(", copying shadow to master"));
-
- if (props.flags & DSW_COPYINGX)
- (void) printf(gettext(", abort of copy requested"));
-
- if (props.flags & DSW_MSTOFFLINE)
- (void) printf(gettext(", master volume offline"));
-
- if (props.flags & DSW_SHDOFFLINE)
- (void) printf(gettext(", shadow volume offline"));
-
- if (props.flags & DSW_BMPOFFLINE)
- (void) printf(gettext(", bitmap volume offline"));
-
- if (props.flags & DSW_OVROFFLINE)
- (void) printf(gettext(", overflow volume offline"));
-
- if (props.flags & DSW_SHDEXPORT)
- (void) printf(gettext(", shadow volume exported"));
-
- if (props.flags & DSW_SHDIMPORT)
- (void) printf(gettext(", shadow volume imported"));
-
- if (props.flags & DSW_OVERFLOW)
- (void) printf(gettext(", out of space"));
-
- if (props.flags & DSW_VOVERFLOW)
- (void) printf(gettext(", spilled into overflow volume"));
-
- printf(gettext("\nVolume size: %d\n"), props.size);
-
- if (props.copybits > 0) {
- int pctcopy = (props.copybits * 100) / props.shdchks;
- printf(gettext("Copy bitmap is %d%% set.\n"), pctcopy);
- printf(gettext("\t(bitmap dirty)\n"));
- } else
- printf(gettext("Copy bitmap is clean.\n"));
-
- if (props.shdbits > 0) {
- int pctdiff = (props.shdbits * 100) / props.shdchks;
- printf(gettext("Shadow bitmap is %d%% set.\n"), pctdiff);
- printf(gettext("\t(bitmap dirty)\n"));
- }
- else
- printf(gettext("Differences bitmap is clean.\n"));
-}
-
-int
-confirm(char *msg)
-{
- char c[IN_BUFSIZE];
-
- if (!qflag)
- return (0);
-
- fprintf(stdout, msg);
- fgets(c, IN_BUFSIZE, stdin);
-
- if (c[0] == 'y' || c[0] == 'Y')
- return (0);
-
- fprintf(stderr, gettext("Operation cancelled.\n"));
- return (1);
-}
-
-int
-pit_abort()
-{
- int rc;
- int iirc;
-
- if (confirm(gettext("Abort copy/update operations? (y/n): ")))
- return (0);
-
- rc = scsiwrite(II_PIT_ABORT, volume, sizeof (int), (char *)&iirc);
-
- if (!rc && iirc == DSW_COPYINGP)
- fprintf(stderr, gettext("Not copying.\n"));
-
- return (rc);
-}
-
-int
-pit_copy_update(int cmd)
-{
- int rc;
-
- char msg[80];
- char *op;
- char *v1;
- char *v2;
-
- pit_update_t update;
-
- /* Opeartion text for configmr message */
- if (cmd == II_PIT_COPY)
- op = gettext("Copy");
-
- if (cmd == II_PIT_UPDATE)
- op = gettext("Update");
-
- /* Direction text for confirm messasge */
- if (direction == 'm') {
- v1 = gettext("shadow");
- v2 = gettext("master");
- }
-
- if (direction == 's') {
- v1 = gettext("master");
- v2 = gettext("shadow");
- }
-
- /* Assemble message */
- sprintf(msg, gettext("%s from %s to %s? (y/n): "), op, v1, v2);
-
- /* Confirm */
- if (confirm(msg))
- return (0);
-
- /* Set up buffers */
- update.direction = direction;
-
- /* Begin copy */
- rc = scsiwrite(cmd, volume, sizeof (pit_update_t), (char *)&update);
-
- if (rc)
- return (rc);
-
-
- if (update.iirc == DSW_COPYINGP) {
- fprintf(stderr, gettext("Already copying.\n"));
- return (rc);
- }
-
- return (0);
-}
-
-int
-pit_list()
-{
- int rc;
- int bufl;
- char *bufp;
-
- /* Allocate memory to hold set data */
- /* WWN_STRLEN = # of characters in a WWN */
- /* IIVOLCNT = # of volumes per II set (mst, shd, bit, ovr) */
- bufl = sizeof (pit_props_t) + (WWN_STRLEN * wwn_count * IIVOLCNT);
- bufp = (char *)calloc(1, bufl);
-
- /* Data for all of the II sets */
- if ((rc = scsiread(II_PIT_PROPS, volume, bufl, bufp)))
- goto end;
-
- print_set(bufp);
-end:
- free(bufp);
- return (rc);
-}
-
-int
-pit_wait()
-{
- int rc;
- int iirc;
-
- for (;;) {
- rc = scsiread(II_PIT_WAIT, volume, sizeof (int),
- (char *)&iirc);
-
- if (rc || (iirc != DSW_COPYINGP))
- break;
-
- sleep(POLLTIME);
- }
-
- return (rc);
-}
-
-void
-version()
-{
- printf("dsimage V%d.%d.%d.%d\n",
- ISS_VERSION_MAJ,
- ISS_VERSION_MIN,
- ISS_VERSION_MIC,
- ISS_VERSION_NUM);
-
- exit(0);
-}
diff --git a/usr/src/cmd/avs/errgen/errgen.help b/usr/src/cmd/avs/errgen/errgen.help.txt
index 33600d3bd1..33600d3bd1 100644
--- a/usr/src/cmd/avs/errgen/errgen.help
+++ b/usr/src/cmd/avs/errgen/errgen.help.txt
diff --git a/usr/src/cmd/avs/sdbc/sd_dcmp.c b/usr/src/cmd/avs/sdbc/sd_dcmp.c
deleted file mode 100644
index 8bd85693b0..0000000000
--- a/usr/src/cmd/avs/sdbc/sd_dcmp.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * 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
- * or http://www.opensolaris.org/os/licensing.
- * 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 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/param.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <strings.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/shm.h>
-#include <nsctl.h>
-
-#include <sys/nsctl/sd_cache.h>
-#include <sys/nsctl/sd_conf.h>
-
-
-#define BLK_CMP 16
-#define BYTES_CMP (BLK_CMP*512)
-
-#define min(a, b) ((a) > (b) ? (b) : (a))
-
-int bflag = 0;
-
-int
-main(argc, argv)
- int argc;
- char *argv[];
-{
- int fd1, fd2, curpos, r;
- nsc_size_t blocks, blocks2;
- nsc_fd_t *sdfd1, *sdfd2;
- char buf1[BYTES_CMP], buf2[BYTES_CMP];
- int count;
- int c;
-
- if (argc < 3) {
- (void) printf("Usage: spd_dcmp {-b} <path1> <path2> \n");
- (void) printf("Example: spd_dcmp /dev/rdsk/7d4 "
- "/dev/rdsk/13d9\n");
- (void) printf("Example: spd_dcmp -b /dev/rdsk/7d4 "
- "/dev/rdsk/13d9\n");
- (void) printf(" -b : Break on Finding the first Mismatch\n");
- exit(1);
- }
-
- while ((c = getopt(argc, argv, "b")) != -1) {
- switch (c) {
- case 'b':
- bflag = 1;
- break;
- }
- }
- if (bflag) {
- sdfd1 = nsc_open(argv[2], NSC_DEVICE, O_RDONLY);
- } else {
- sdfd1 = nsc_open(argv[1], NSC_DEVICE, O_RDONLY);
- }
- if (!sdfd1) {
- perror("nsc_open");
- exit(errno);
- }
-
- fd1 = nsc_fileno(sdfd1);
- if (fd1 < 0) {
- perror("open");
- exit(errno);
- }
- if (bflag) {
- sdfd2 = nsc_open(argv[3], NSC_DEVICE, O_RDONLY);
- } else {
- sdfd2 = nsc_open(argv[2], NSC_DEVICE, O_RDONLY);
- }
- if (!sdfd2) {
- perror("nsc_open");
- exit(errno);
- }
- fd2 = nsc_fileno(sdfd2);
- if (fd2 < 0) {
- perror("open");
- exit(errno);
- }
-
- r = nsc_partsize(sdfd1, &blocks);
- if (r < 0 || blocks == 0) {
- perror("can't get filesize1");
- return (1);
- }
- r = nsc_partsize(sdfd2, &blocks2);
- if (r < 0 || blocks2 == 0) {
- perror("can't get filesize2");
- return (1);
- }
-
- (void) printf("Size1: %d (%d MB), Size2: %d (%d MB)\n", blocks,
- blocks >> 11, blocks2, blocks2 >> 11);
-
- curpos = 0;
- while (curpos < blocks) {
- r = pread(fd1, buf1, min((blocks-curpos), BLK_CMP) * 512,
- (curpos << SCTRSHFT));
- if (r < 0) {
- perror("read");
- exit(errno);
- } else if (r == 0)
- break;
-
- r = pread(fd2, buf2, min((blocks-curpos), BLK_CMP) * 512,
- (curpos << SCTRSHFT));
- if (r < 0) {
- perror("read");
- exit(errno);
- } else if (r == 0)
- break;
-
- if (bcmp(buf1, buf2, min((blocks-curpos), BLK_CMP) * 512)) {
- (void) printf("\nERROR: data mismatch filepos:%d bl\n",
- curpos);
- if (bflag) {
- close(fd1);
- close(fd2);
- exit(1);
- }
- }
- curpos += min((blocks-curpos), BLK_CMP);
-
- if (!bflag) {
- count ++;
- if ((count % 64) == 0) {
- if (count < 3200) {
- (void) printf(".");
- fflush(stdout);
- } else {
- (void) printf(". %10d bl %7d MB\n",
- curpos, curpos >> 11);
- fflush(stdout);
- count = 0;
- }
- }
- }
- }
- if (!bflag) {
- (void) printf(". %10d bl %7d MB\n", curpos, curpos >> 11);
- }
- close(fd1);
- close(fd2);
- exit(0);
-}
diff --git a/usr/src/cmd/fcinfo/getopt.h b/usr/src/cmd/fcinfo/getopt.h
deleted file mode 100644
index c40e7aca7a..0000000000
--- a/usr/src/cmd/fcinfo/getopt.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * 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
- * or http://www.opensolaris.org/os/licensing.
- * 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 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _GETOPT_H
-#define _GETOPT_H
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern char *optarg;
-
-extern int optind;
-
-extern int opterr;
-
-extern int optopt;
-
-
-struct option
-{
-#if defined(__STDC__) && __STDC__
- const char *name;
-#else
- char *name;
-#endif
- int has_arg;
- int *flag;
- int val;
-};
-
-
-#define no_argument 0
-#define required_argument 1
-#define optional_argument 2
-
-#if defined(__STDC__) && __STDC__
-#if !HAVE_DECL_GETOPT
-#if defined(__GNU_LIBRARY__) || defined(HAVE_DECL_GETOPT)
-extern int getopt(int argc, char *const *argv, const char *shortopts);
-#else
-#ifndef __cplusplus
-extern int getopt();
-#endif /* __cplusplus */
-#endif
-#endif /* !HAVE_DECL_GETOPT */
-
-extern int getopt_long(int argc, char *const *argv, const char *shortopts,
- const struct option *longopts, int *longind);
-extern int getopt_long_only(int argc, char *const *argv,
- const char *shortopts, const struct option *longopts, int *longind);
-extern int _getopt_internal(int argc, char *const *argv,
- const char *shortopts, const struct option *longopts, int *longind,
- int long_only);
-#else /* not __STDC__ */
-extern int getopt();
-extern int getopt_long();
-extern int getopt_long_only();
-
-extern int _getopt_internal();
-#endif /* __STDC__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _GETOPT_H */
diff --git a/usr/src/pkgdefs/license_files/lic_SNIA b/usr/src/lib/hbaapi/THIRDPARTYLICENSE
index 464ee756eb..464ee756eb 100644
--- a/usr/src/pkgdefs/license_files/lic_SNIA
+++ b/usr/src/lib/hbaapi/THIRDPARTYLICENSE
diff --git a/usr/src/lib/hbaapi/THIRDPARTYLICENSE.descrip b/usr/src/lib/hbaapi/THIRDPARTYLICENSE.descrip
new file mode 100644
index 0000000000..f686979c6c
--- /dev/null
+++ b/usr/src/lib/hbaapi/THIRDPARTYLICENSE.descrip
@@ -0,0 +1 @@
+HBA API SOFTWARE
diff --git a/usr/src/lib/hbaapi/common/license.htm b/usr/src/lib/hbaapi/common/license.htm
deleted file mode 100644
index 32c9b41d6c..0000000000
--- a/usr/src/lib/hbaapi/common/license.htm
+++ /dev/null
@@ -1,397 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0058)http://www.snia.org/English/Resources/Code/OpenSource.html -->
-<HTML><HEAD><TITLE>Open Source</TITLE>
-<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
-<META content="Open Source Code from SNIA" name=description>
-<META
-content="Storage Networking Industry Association, SNIA, SAN, NAS, Network Attached Storage, Storage Area Network, open source, CIMOM"
-name=keywords><LINK href="SPL1.1_files/Base_Style.css" rel=stylesheet
-type=text/css>
-<META content="Dave Barnes of MarketingTactics (+1.303.744.9024)" name=Author>
-<META content="MSHTML 5.00.3314.2100" name=GENERATOR></HEAD>
-<BODY>
-<TABLE border=0 cellPadding=1 cellSpacing=0 width=600>
- <TBODY>
- <TR>
- <TD>
- <CENTER>
- <P><B>STORAGE NETWORKING INDUSTRY ASSOCIATION<BR></B><B>PUBLIC
- LICENSE<BR></B><B>Version
- 1.1&nbsp;<BR></B>________________________</P></CENTER>
- <DIV align=left>
- <P><B>1. Definitions.</B></P>
- <UL>
- <P><B>1.1 "Commercial Use"</B> means distribution or otherwise making
- the Covered Code available to a third party. </P>
- <P><B>1.2 "Contributor"</B> means each entity that creates or
- contributes to the creation of Modifications. </P>
- <P><B>1.3 "Contributor Version"</B> means the combination of the
- Original Code, prior Modifications used by a Contributor, and the
- Modifications made by that particular Contributor. </P>
- <P><B>1.4 "Covered Code"</B> means the Original Code or Modifications or
- the combination of the Original Code and Modifications, in each case
- including portions thereof. </P>
- <P><B>1.5 "Electronic Distribution Mechanism"</B> means a mechanism
- generally accepted in the software development community for the
- electronic transfer of data. </P>
- <P><B>1.6 "Executable"</B> means Covered Code in any form other than
- Source Code. </P>
- <P><B>1.7 "Initial Developer"</B> means the individual or entity
- identified as the Initial Developer in the Source Code notice required
- by Exhibit A. </P>
- <P><B>1.8 "Larger Work"</B> means a work which combines Covered Code or
- portions thereof with code not governed by the terms of this License.
- </P>
- <P><B>1.9 "License"</B> means this document. </P>
- <P><B>1.10 "Licensable"</B> means having the right to grant, to the
- maximum extent possible, whether at the time of the initial grant or
- subsequently acquired, any and all of the rights conveyed herein. </P>
- <P><B>1.11 "Modifications"</B> means any addition to or deletion from
- the substance or structure of either the Original Code or any previous
- Modifications. When Covered Code is released as a series of files, a
- Modification is: </P>
- <UL>
- <P><B>A.</B> Any addition to or deletion from the contents of a file
- containing Original Code or previous Modifications. </P>
- <P><B>B.</B> Any new file that contains any part of the Original Code
- or previous Modifications. </P></UL></UL>
- <UL>
- <P><B>1.12 "Original Code"</B> means Source Code of computer software
- code which is described in the Source Code notice required by Exhibit A
- as Original Code, and which, at the time of its release under this
- License is not already Covered Code governed by this License. </P>
- <P><B>1.13 "Patent Claims"</B> means any patent claim(s), now owned or
- hereafter acquired, including without limitation, method, process, and
- apparatus claims, in any patent Licensable by grantor. </P>
- <P><B>1.14 "Source Code"</B> means the preferred form of the Covered
- Code for making modifications to it, including all modules it contains,
- plus any associated interface definition files, scripts used to control
- compilation and installation of an Executable, or source code
- differential comparisons against either the Original Code or another
- well known, available Covered Code of the Contributor's choice. The
- Source Code can be in a compressed or archival form, provided the
- appropriate decompression or de-archiving software is widely available
- for no charge. </P>
- <P><B>1.15 "You" (or "Your")</B> means an individual or a legal entity
- exercising rights under, and complying with all of the terms of, this
- License or a future version of this License issued under Section 6.1.
- For legal entities, "You" includes any entity which controls, is
- controlled by, or is under common control with You. For purposes of this
- definition, "control" means (a) the power, direct or indirect, to cause
- the direction or management of such entity, whether by contract or
- otherwise, or (b) ownership of more than fifty percent (50%) of the
- outstanding shares or beneficial ownership of such entity.</P></UL>
- <P><B>2. Source Code License.</B> </P>
- <UL>
- <P><B>2.1 The Initial Developer Grant.</B> The Initial Developer hereby
- grants You a world-wide, royalty-free, non-exclusive license, subject to
- third party intellectual property claims:</P>
- <UL>
- <P><B>(a)</B> under intellectual property rights (other than patent or
- trademark) Licensable by Initial Developer to use, reproduce, modify,
- display, perform, sublicense and distribute the Original Code (or
- portions thereof) with or without Modifications, and/or as part of a
- Larger Work; and </P>
- <P><B>(b)</B> under Patents Claims infringed by the making, using or
- selling of Original Code, to make, have made, use, practice, sell, and
- offer for sale, and/or otherwise dispose of the Original Code (or
- portions thereof). </P>
- <P><B>(c)</B> the licenses granted in this Section 2.1(a) and (b) are
- effective on the date Initial Developer first distributes Original
- Code under the terms of this License. </P>
- <P><B>(d)</B> Notwithstanding Section 2.1(b) above, no patent license
- is granted: 1) for code that You delete from the Original Code; 2)
- separate from the Original Code; or 3) for infringements caused by: i)
- the modification of the Original Code or ii) the combination of the
- Original Code with other software or devices. </P></UL></UL>
- <UL>
- <P><B>2.2 Contributor Grant.</B> Subject to third party intellectual
- property claims, each Contributor hereby grants You a world-wide,
- royalty-free, non-exclusive license </P>
- <UL>
- <P><B>(a)</B> under intellectual property rights (other than patent or
- trademark) Licensable by Contributor, to use, reproduce, modify,
- display, perform, sublicense and distribute the Modifications created
- by such Contributor (or portions thereof) either on an unmodified
- basis, with other Modifications, as Covered Code and/or as part of a
- Larger Work; and </P>
- <P><B>(b)</B> under Patent Claims infringed by the making, using, or
- selling of Modifications made by that Contributor either alone and/or
- in combination with its Contributor Version (or portions of such
- combination), to make, use, sell, offer for sale, have made, and/or
- otherwise dispose of: 1) Modifications made by that Contributor (or
- portions thereof); and 2) the combination of Modifications made by
- that Contributor with its Contributor Version (or portions of such
- combination). </P>
- <P><B>(c)</B> the licenses granted in Sections 2.2(a) and 2.2(b) are
- effective on the date Contributor first makes Commercial Use of the
- Covered Code. </P>
- <P><B>(d)</B> Notwithstanding Section 2.2(b) above, no patent license
- is granted: 1) for any code that Contributor has deleted from the
- Contributor Version; 2) separate from the Contributor Version; 3) for
- infringements caused by: i) third party modifications of Contributor
- Version or ii) the combination of Modifications made by that
- Contributor with other software (except as part of the Contributor
- Version) or other devices; or 4) under Patent Claims infringed by
- Covered Code in the absence of Modifications made by that
- Contributor.</P></UL></UL>
- <P><B>3. Distribution Obligations.</B> </P>
- <UL>
- <P><B>3.1 Application of License.</B> The Modifications which You create
- or to which You contribute are governed by the terms of this License,
- including without limitation Section 2.2. The Source Code version of
- Covered Code may be distributed only under the terms of this License or
- a future version of this License released under Section 6.1, and You
- must include a copy of this License with every copy of the Source Code
- You distribute. You may not offer or impose any terms on any Source Code
- version that alters or restricts the applicable version of this License
- or the recipients' rights hereunder. However, You may include an
- additional document offering the additional rights described in Section
- 3.5. </P>
- <P><B>3.2 Availability of Source Code.</B> Any Modification which You
- create or to which You contribute must be made available in Source Code
- form under the terms of this License either on the same media as an
- Executable version or via an accepted Electronic Distribution Mechanism
- to anyone to whom you made an Executable version available; and if made
- available via Electronic Distribution Mechanism, must remain available
- for at least twelve (12) months after the date it initially became
- available, or at least six (6) months after a subsequent version of that
- particular Modification has been made available to such recipients. You
- are responsible for ensuring that the Source Code version remains
- available even if the Electronic Distribution Mechanism is maintained by
- a third party. </P>
- <P><B>3.3 Description of Modifications.</B> You must cause all Covered
- Code to which You contribute to contain a file documenting the changes
- You made to create that Covered Code and the date of any change. You
- must include a prominent statement that the Modification is derived,
- directly or indirectly, from Original Code provided by the Initial
- Developer and including the name of the Initial Developer in (a) the
- Source Code, and (b) in any notice in an Executable version or related
- documentation in which You describe the origin or ownership of the
- Covered Code. </P>
- <P><B>3.4 Intellectual Property Matters.</B></P>
- <UL>
- <P><B>(a) Third Party Claims. </B>If Contributor has actual knowledge
- that a license under a third party's intellectual property rights is
- required to exercise the rights granted by such Contributor under
- Sections 2.1 or 2.2, Contributor must include a text file with the
- Source Code distribution titled "LEGAL" which describes the claim and
- the party making the claim in sufficient detail that a recipient will
- know whom to contact. If Contributor obtains such knowledge after the
- Modification is made available as described in Section 3.2,
- Contributor shall promptly modify the LEGAL file in all copies
- Contributor makes available thereafter.</P>
- <P><B>(b) Contributor API's. </B>If Contributor's Modifications
- include an application programming interface and Contributor has
- actual knowledge of patent licenses which are reasonably necessary to
- implement that API, Contributor must also include this information in
- the LEGAL file.<BR></P>
- <P><B>(c) Representations.</B> Contributor represents that, except as
- disclosed pursuant to Section 3.4(a) above, Contributor believes that
- Contributor's Modifications are Contributor's original creation(s)
- and/or Contributor has sufficient rights to grant the rights conveyed
- by this License.</P></UL>
- <P><B>3.5 Required Notices. </B>You must duplicate the notice in
- <B>Exhibit A</B> in each file of the Source Code. If it is not possible
- to put such notice in a particular Source Code file due to its
- structure, then You must include such notice in a location (such as a
- relevant directory) where a user would be most likely to look for such a
- notice. If You created one or more Modification(s) You may add your name
- as a Contributor to the notice described in <B>Exhibit A. </B>You must
- also duplicate this License in any documentation for the Source Code
- where You describe recipients' rights or ownership rights relating to
- Covered Code. You may choose to offer, and to charge a fee for,
- warranty, support, indemnity or liability obligations to one or more
- recipients of Covered Code. However, You may do so only on Your own
- behalf, and not on behalf of the Initial Developer or any Contributor.
- You must make it absolutely clear that any such warranty, support,
- indemnity or liability obligation is offered by You alone, and You
- hereby agree to indemnify the Initial Developer and every Contributor
- for any liability (excluding any liability arising from intellectual
- property claims relating to the Covered Code) incurred by the Initial
- Developer or such Contributor as a result of warranty, support,
- indemnity or liability terms You offer.</P>
- <P><B>3.6 Distribution of Executable Versions. </B>You may distribute
- Covered Code in Executable form only if the requirements of Section<B>
- 3.1-3.5 </B>have been met for that Covered Code, and if You include a
- notice stating that the Source Code version of the Covered Code is
- available under the terms of this License, including a description of
- how and where You have fulfilled the obligation of Section <B>3.2.</B>
- The notice must be conspicuously included in any notice in an Executable
- version, related documentation or collateral in which You describe
- recipients' rights relating to the Covered Code. You may distribute the
- Executable version of Covered Code or ownership rights under a license
- of Your choice, which may contain terms different from this License,
- provided that You are in compliance with the terms of this License and
- that the license for the Executable version does not attempt to limit or
- alter the recipient's rights in the Source Code version from the rights
- set forth in this License. If You distribute the Executable version
- under a different license You must make it absolutely clear that any
- terms which differ from this License are offered by You alone, not by
- the Initial Developer or any Contributor. You hereby agree to indemnify
- the Initial Developer and every Contributor for any liability (excluding
- any liability arising from intellectual property claims relating to the
- Covered Code) incurred by the Initial Developer or such Contributor as a
- result of any such terms You offer.</P>
- <P><B>3.7 Larger Works.</B> You may create a Larger Work by combining
- Covered Code with other code not governed by the terms of this License
- and distribute the Larger Work as a single product. In such a case, You
- must make sure the requirements of this License are fulfilled for the
- Covered Code.</P></UL>
- <P><B>4. Inability to Comply Due to Statute or Regulation.</B> If it is
- impossible for You to comply with any of the terms of this License with
- respect to some or all of the Covered Code due to statute, judicial order,
- or regulation then You must: (a) comply with the terms of this License to
- the maximum extent possible; and (b) describe the limitations and the code
- they affect. Such description must be included in the LEGAL file described
- in Section 3.4 and must be included with all distributions of the Source
- Code. Except to the extent prohibited by statute or regulation, such
- description must be sufficiently detailed for a recipient of ordinary
- skill to be able to understand it.</P>
- <P><B>5. Application of this License.</B> This License applies to code to
- which the Initial Developer has attached the notice in Exhibit A and to
- related Covered Code.</P>
- <P><B>6. Versions of the License.</B> </P>
- <UL>
- <P><B>6.1 New Versions.</B> The Storage Networking Industry Association
- (the "SNIA") may publish revised and/or new versions of the License from
- time to time. Each version will be given a distinguishing version
- number. </P>
- <P><B>6.2 Effect of New Versions.</B> Once Covered Code has been
- published under a particular version of the License, You may always
- continue to use it under the terms of that version. You may also choose
- to use such Covered Code under the terms of any subsequent version of
- the License published by the SNIA. No one other than the SNIA has the
- right to modify the terms applicable to Covered Code created under this
- License. </P>
- <P><B>6.3 Derivative Works.</B> If You create or use a modified version
- of this License (which you may only do in order to apply it to code
- which is not already Covered Code governed by this License), You must
- (a) rename Your license so that the phrases "Storage Networking Industry
- Association," "SNIA," or any confusingly similar phrase do not appear in
- your license (except to note that your license differs from this
- License) and (b) otherwise make it clear that Your version of the
- license contains terms which differ from the SNIA Public License.
- (Filling in the name of the Initial Developer, Original Code or
- Contributor in the notice described in Exhibit A shall not of themselves
- be deemed to be modifications of this License.)</P></UL>
- <P><B>7. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED UNDER THIS
- LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER
- EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE
- COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
- PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
- PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE
- DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER
- CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR
- CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF
- THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT
- UNDER THIS DISCLAIMER.</B></P>
- <P><B>8. TERMINATION. </B></P>
- <UL>
- <P><B>8.1 </B>This License and the rights granted hereunder will
- terminate automatically if You fail to comply with terms herein and fail
- to cure such breach within a reasonable time after becoming aware of the
- breach. All sublicenses to the Covered Code which are properly granted
- shall survive any termination of this License. Provisions which, by
- their nature, must remain in effect beyond the termination of this
- License shall survive.</P>
- <P><B>8.2</B> If You initiate litigation by asserting a patent
- infringement claim (excluding declaratory judgment actions) against
- Initial Developer or a Contributor (the Initial Developer or Contributor
- against whom You file such action is referred to as "Participant")
- alleging that: </P>
- <UL>
- <P><B>(a)</B> such Participant's Contributor Version directly or
- indirectly infringes any patent, then any and all rights granted by
- such Participant to You under Sections 2.1 and/or 2.2 of this License
- shall, upon 60 days notice from Participant terminate prospectively,
- unless if within 60 days after receipt of notice You either: (i) agree
- in writing to pay Participant a mutually agreeable reasonable royalty
- for Your past and future use of Modifications made by such
- Participant, or (ii) withdraw Your litigation claim with respect to
- the Contributor Version against such Participant. If within 60 days of
- notice, a reasonable royalty and payment arrangement are not mutually
- agreed upon in writing by the parties or the litigation claim is not
- withdrawn, the rights granted by Participant to You under Sections 2.1
- and/or 2.2 automatically terminate at the expiration of the 60 day
- notice period specified above. </P></UL>
- <P><B>8.3</B> If You assert a patent infringement claim against
- Participant alleging that such Participant's Contributor Version
- directly or indirectly infringes any patent where such claim is resolved
- (such as by license or settlement) prior to the initiation of patent
- infringement litigation, then the reasonable value of the licenses
- granted by such Participant under Sections 2.1 or 2.2 shall be taken
- into account in determining the amount or value of any payment or
- license. </P>
- <P><B>8.4</B> In the event of termination under Sections 8.1 or 8.2
- above, all end user license agreements (excluding distributors and
- resellers) which have been validly granted by You or any distributor
- hereunder prior to termination shall survive termination.</P></UL>
- <P><B>9. LIMITATION OF LIABILITY. </B><B>UNDER NO CIRCUMSTANCES AND UNDER
- NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR
- OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY
- DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
- LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
- CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
- DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
- MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
- SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.
- THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR
- PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
- APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW
- THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
- THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.</B></P>
- <P><B>10. U.S. GOVERNMENT END USERS.</B> The Covered Code is a "commercial
- item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting
- of "commercial computer software" and "commercial computer software
- documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995).
- Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through
- 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code
- with only those rights set forth herein.</P>
- <P><B>11. MISCELLANEOUS </B>This License represents the complete agreement
- concerning subject matter hereof. If any provision of this License is held
- to be unenforceable, such provision shall be reformed only to the extent
- necessary to make it enforceable. This License shall be governed by
- California law provisions (except to the extent applicable law, if any,
- provides otherwise), excluding its conflict-of-law provisions. The
- application of the United Nations Convention on Contracts for the
- International Sale of Goods is expressly excluded. Any law or regulation
- which provides that the language of a contract shall be construed against
- the drafter shall not apply to this License.</P>
- <P><B>12. RESPONSIBILITY FOR CLAIMS.</B> As between Initial Developer and
- the Contributors, each party is responsible for claims and damages
- arising, directly or indirectly, out of its utilization of rights under
- this License and You agree to work with Initial Developer and Contributors
- to distribute such responsibility on an equitable basis. Nothing herein is
- intended or shall be deemed to constitute any admission of liability.</P>
- <P><B>13. MULTIPLE-LICENSED CODE.</B> Initial Developer may designate
- portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed"
- means that the Initial Developer permits you to utilize portions of the
- Covered Code under Your choice of this License or the alternative
- licenses, if any, specified by the Initial Developer in the file described
- in Exhibit A.</P>
- <P><B>14. ACCEPTANCE.</B> This License is accepted by You if You retain,
- use, or distribute the Covered Code for any purpose. </P>
- <P><B>EXHIBIT A —The SNIA Public License.</B></P>
- <DIR>
- <DIR>
- <P>The contents of this file are subject to the SNIA Public License
- Version 1.0 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at</P>
- <P><A
- href="http://www.snia.org/English/Resources/Code/OpenSource.html">/http://www.snia.org/English/Resources/Code/OpenSource.html</A></P>
- <DIR></DIR>
- <P>Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations under
- the License.</P>
- <P>The Original Code is
- <U>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.</U></P>
- <P>The Initial Developer of the Original Code is <U>&nbsp;&nbsp;[COMPLETE
- THIS]&nbsp;&nbsp;&nbsp;&nbsp;</U>.</P>
- <P>Contributor(s):
- ______________________________________.</P></DIR></DIR></DIV>
- <DIV align=right>
- <P><A name=accept></A>
- </P></DIV></TD></TR></TBODY></TABLE>
-<H2 style="COLOR: #df9d2b">&nbsp;</H2></BODY></HTML>
diff --git a/usr/src/lib/libdscfg/common/llib-ldscfg b/usr/src/lib/libdscfg/common/llib-ldscfg
deleted file mode 100644
index 00f7f27ba9..0000000000
--- a/usr/src/lib/libdscfg/common/llib-ldscfg
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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
- * or http://www.opensolaris.org/os/licensing.
- * 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
- */
-/* LINTLIBRARY */
-/* PROTOLIB1 */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <sys/types.h>
-#include <sys/nsctl/cfg.h>
-
-int cfg_get_cstring(CFGFILE *fd, const char *key, void *value, int value_len);
-int cfg_put_cstring(CFGFILE *fd, const char *key, void *value, int value_len);
-int cfg_get_pstring(CFGFILE *fd, const char *key, void *value, int value_len);
-int cfg_put_pstring(CFGFILE *fd, const char *key, void *value, int value_len);
-int cfg_get_options(CFGFILE *fd, int section, const char *basekey,
- char *tag, int tag_len, char *val, int val_len);
-int cfg_put_options(CFGFILE *fd, int section, const char *basekey,
- char *tag, char *val);
-int cfg_get_single_option(CFGFILE *fd, int section, const char *basekey,
- char *tag, char *val, int val_len);
-int cfg_del_option(CFGFILE *fd, int section, const char *basekey, char *tag);
-
-CFGFILE *cfg_open(char *filename);
-void cfg_rewind(CFGFILE *fd, int section);
-int cfg_update_parser_config(CFGFILE *, const char *key, int section);
-char *cfg_error(int *severity);
-char *cfg_location(char *location, int mode, char *altroot);
-void cfg_close(CFGFILE *fd);
-int cfg_lock(CFGFILE *fd, CFGLOCK type);
-void cfg_unlock(CFGFILE *fd);
-int cfg_get_lock(CFGFILE *fd, CFGLOCK *type, pid_t *pid);
-int cfg_commit(CFGFILE *fd);
-void cfg_resource(CFGFILE *fd, const char *resource);
-char *cfg_dgname(const char *path, char *dgname, size_t len);
-char *cfg_l_dgname(const char *path, char *dgname, size_t len);
-int cfg_dgname_islocal(char *dgname, char **node);
-int cfg_iscluster(void);
-int cfg_issuncluster(void);
-int cfg_add_user(CFGFILE *, char *, char *, char *);
-int cfg_rem_user(CFGFILE *, char *, char *, char *);
-int cfg_vol_enable(CFGFILE *, char *, char *, char *);
-int cfg_vol_disable(CFGFILE *, char *, char *, char *);
-int cfg_load_dsvols(CFGFILE *);
-void cfg_unload_dsvols();
-int cfg_load_svols(CFGFILE *);
-void cfg_unload_svols();
-int cfg_load_shadows(CFGFILE *);
-void cfg_unload_shadows();
-int cfg_get_canonical_name(CFGFILE *, const char *, char **);
-int cfg_get_tags(CFGFILE*, char ***);
-char *cfg_get_resource(CFGFILE *);
diff --git a/usr/src/lib/libima/THIRDPARTYLICENSE b/usr/src/lib/libima/THIRDPARTYLICENSE
new file mode 100644
index 0000000000..464ee756eb
--- /dev/null
+++ b/usr/src/lib/libima/THIRDPARTYLICENSE
@@ -0,0 +1,404 @@
+--------------------------------------------------------------------
+
+*STORAGE NETWORKING INDUSTRY ASSOCIATION
+PUBLIC LICENSE
+Version 1.1 *
+________________________
+
+*1. Definitions.*
+
+ * 1.1 "Commercial Use" means distribution or otherwise making the
+ Covered Code available to a third party.
+ * 1.2 "Contributor" means each entity that creates or contributes to
+ the creation of Modifications.
+ * 1.3 "Contributor Version" means the combination of the Original
+ Code, prior Modifications used by a Contributor, and the
+ Modifications made by that particular Contributor.
+ * 1.4 "Covered Code" means the Original Code or Modifications or the
+ combination of the Original Code and Modifications, in each case
+ including portions thereof.
+ * 1.5 "Electronic Distribution Mechanism" means a mechanism
+ generally accepted in the software development community for the
+ electronic transfer of data.
+ * 1.6 "Executable" means Covered Code in any form other than Source
+ Code.
+ * 1.7 "Initial Developer" means the individual or entity identified
+ as the Initial Developer in the Source Code notice required by
+ Exhibit A.
+ * 1.8 "Larger Work" means a work which combines Covered Code or
+ portions thereof with code not governed by the terms of this License.
+ * 1.9 "License" means this document.
+ * 1.10 "Licensable" means having the right to grant, to the maximum
+ extent possible, whether at the time of the initial grant or
+ subsequently acquired, any and all of the rights conveyed herein.
+ * 1.11 "Modifications" means any addition to or deletion from the
+ substance or structure of either the Original Code or any previous
+ Modifications. When Covered Code is released as a series of files,
+ a Modification is:
+ o A. Any addition to or deletion from the contents of a file
+ containing Original Code or previous Modifications.
+ o B. Any new file that contains any part of the Original Code
+ or previous Modifications.
+
+ 1.12 "Original Code" means Source Code of computer software code
+ which is described in the Source Code notice required by Exhibit A
+ as Original Code, and which, at the time of its release under this
+ License is not already Covered Code governed by this License.
+
+ * 1.13 "Patent Claims" means any patent claim(s), now owned or
+ hereafter acquired, including without limitation, method, process,
+ and apparatus claims, in any patent Licensable by grantor.
+ * 1.14 "Source Code" means the preferred form of the Covered Code
+ for making modifications to it, including all modules it contains,
+ plus any associated interface definition files, scripts used to
+ control compilation and installation of an Executable, or source
+ code differential comparisons against either the Original Code or
+ another well known, available Covered Code of the Contributor's
+ choice. The Source Code can be in a compressed or archival form,
+ provided the appropriate decompression or de-archiving software is
+ widely available for no charge.
+ * 1.15 "You" (or "Your") means an individual or a legal entity
+ exercising rights under, and complying with all of the terms of,
+ this License or a future version of this License issued under
+ Section 6.1. For legal entities, "You" includes any entity which
+ controls, is controlled by, or is under common control with You.
+ For purposes of this definition, "control" means (a) the power,
+ direct or indirect, to cause the direction or management of such
+ entity, whether by contract or otherwise, or (b) ownership of more
+ than fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity
+
+*2. Source Code License.*
+
+ * 2.1 The Initial Developer Grant. The Initial Developer hereby
+ grants You a world-wide, royalty-free, non-exclusive license,
+ subject to third party intellectual property claims:
+ o (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Initial Developer to use,
+ reproduce, modify, display, perform, sublicense and
+ distribute the Original Code (or portions thereof) with or
+ without Modifications, and/or as part of a Larger Work; and
+ o (b) under Patents Claims infringed by the making, using or
+ selling of Original Code, to make, have made, use, practice,
+ sell, and offer for sale, and/or otherwise dispose of the
+ Original Code (or portions thereof).
+ o (c) the licenses granted in this Section 2.1(a) and (b) are
+ effective on the date Initial Developer first distributes
+ Original Code under the terms of this License.
+ o (d) Notwithstanding Section 2.1(b) above, no patent license
+ is granted: 1) for code that You delete from the Original
+ Code; 2) separate from the Original Code; or 3) for
+ infringements caused by: i) the modification of the Original
+ Code or ii) the combination of the Original Code with other
+ software or devices.
+
+ * 2.2 Contributor Grant. Subject to third party intellectual
+ property claims, each Contributor hereby grants You a world-wide,
+ royalty-free, non-exclusive license
+ o (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Contributor, to use, reproduce,
+ modify, display, perform, sublicense and distribute the
+ Modifications created by such Contributor (or portions
+ thereof) either on an unmodified basis, with other
+ Modifications, as Covered Code and/or as part of a Larger
+ Work; and
+ o (b) under Patent Claims infringed by the making, using, or
+ selling of Modifications made by that Contributor either
+ alone and/or in combination with its Contributor Version (or
+ portions of such combination), to make, use, sell, offer for
+ sale, have made, and/or otherwise dispose of: 1)
+ Modifications made by that Contributor (or portions
+ thereof); and 2) the combination of Modifications made by
+ that Contributor with its Contributor Version (or portions
+ of such combination).
+ o (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+ effective on the date Contributor first makes Commercial Use
+ of the Covered Code.
+ o (d) Notwithstanding Section 2.2(b) above, no patent license
+ is granted: 1) for any code that Contributor has deleted
+ from the Contributor Version; 2) separate from the
+ Contributor Version; 3) for infringements caused by: i)
+ third party modifications of Contributor Version or ii) the
+ combination of Modifications made by that Contributor with
+ other software (except as part of the Contributor Version)
+ or other devices; or 4) under Patent Claims infringed by
+ Covered Code in the absence of Modifications made by that
+ Contributor.
+
+*3. Distribution Obligations.*
+
+ * 3.1 Application of License. The Modifications which You create or
+ to which You contribute are governed by the terms of this License,
+ including without limitation Section 2.2. The Source Code version
+ of Covered Code may be distributed only under the terms of this
+ License or a future version of this License released under Section
+ 6.1, and You must include a copy of this License with every copy
+ of the Source Code You distribute. You may not offer or impose any
+ terms on any Source Code version that alters or restricts the
+ applicable version of this License or the recipients' rights
+ hereunder. However, You may include an additional document
+ offering the additional rights described in Section 3.5.
+ * 3.2 Availability of Source Code. Any Modification which You create
+ or to which You contribute must be made available in Source Code
+ form under the terms of this License either on the same media as
+ an Executable version or via an accepted Electronic Distribution
+ Mechanism to anyone to whom you made an Executable version
+ available; and if made available via Electronic Distribution
+ Mechanism, must remain available for at least twelve (12) months
+ after the date it initially became available, or at least six (6)
+ months after a subsequent version of that particular Modification
+ has been made available to such recipients. You are responsible
+ for ensuring that the Source Code version remains available even
+ if the Electronic Distribution Mechanism is maintained by a third
+ party.
+ * 3.3 Description of Modifications. You must cause all Covered Code
+ to which You contribute to contain a file documenting the changes
+ You made to create that Covered Code and the date of any change.
+ You must include a prominent statement that the Modification is
+ derived, directly or indirectly, from Original Code provided by
+ the Initial Developer and including the name of the Initial
+ Developer in (a) the Source Code, and (b) in any notice in an
+ Executable version or related documentation in which You describe
+ the origin or ownership of the Covered Code.
+ * 3.4 Intellectual Property Matters.
+ o (a) Third Party Claims. If Contributor has actual knowledge
+ that a license under a third party's intellectual property
+ rights is required to exercise the rights granted by such
+ Contributor under Sections 2.1 or 2.2, Contributor must
+ include a text file with the Source Code distribution titled
+ "LEGAL" which describes the claim and the party making the
+ claim in sufficient detail that a recipient will know whom
+ to contact. If Contributor obtains such knowledge after the
+ Modification is made available as described in Section 3.2,
+ Contributor shall promptly modify the LEGAL file in all
+ copies Contributor makes available thereafter.
+ o (b) Contributor API's. If Contributor's Modifications
+ include an application programming interface and Contributor
+ has actual knowledge of patent licenses which are reasonably
+ necessary to implement that API, Contributor must also
+ include this information in the LEGAL file.
+ o (c) Representations. Contributor represents that, except as
+ disclosed pursuant to Section 3.4(a) above, Contributor
+ believes that Contributor's Modifications are Contributor's
+ original creation(s) and/or Contributor has sufficient
+ rights to grant the rights conveyed by this License.
+ * 3.5 Required Notices. You must duplicate the notice in *Exhibit A*
+ in each file of the Source Code. If it is not possible to put such
+ notice in a particular Source Code file due to its structure, then
+ You must include such notice in a location (such as a relevant
+ directory) where a user would be most likely to look for such a
+ notice. If You created one or more Modification(s) You may add
+ your name as a Contributor to the notice described in *Exhibit A.
+ *You must also duplicate this License in any documentation for the
+ Source Code where You describe recipients' rights or ownership
+ rights relating to Covered Code. You may choose to offer, and to
+ charge a fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Code. However,
+ You may do so only on Your own behalf, and not on behalf of the
+ Initial Developer or any Contributor. You must make it absolutely
+ clear that any such warranty, support, indemnity or liability
+ obligation is offered by You alone, and You hereby agree to
+ indemnify the Initial Developer and every Contributor for any
+ liability (excluding any liability arising from intellectual
+ property claims relating to the Covered Code) incurred by the
+ Initial Developer or such Contributor as a result of warranty,
+ support, indemnity or liability terms You offer.
+ * 3.6 Distribution of Executable Versions. You may distribute
+ Covered Code in Executable form only if the requirements of
+ Section* 3.1-3.5 *have been met for that Covered Code, and if You
+ include a notice stating that the Source Code version of the
+ Covered Code is available under the terms of this License,
+ including a description of how and where You have fulfilled the
+ obligation of Section *3.2.* The notice must be conspicuously
+ included in any notice in an Executable version, related
+ documentation or collateral in which You describe recipients'
+ rights relating to the Covered Code. You may distribute the
+ Executable version of Covered Code or ownership rights under a
+ license of Your choice, which may contain terms different from
+ this License, provided that You are in compliance with the terms
+ of this License and that the license for the Executable version
+ does not attempt to limit or alter the recipient's rights in the
+ Source Code version from the rights set forth in this License. If
+ You distribute the Executable version under a different license
+ You must make it absolutely clear that any terms which differ from
+ this License are offered by You alone, not by the Initial
+ Developer or any Contributor. You hereby agree to indemnify the
+ Initial Developer and every Contributor for any liability
+ (excluding any liability arising from intellectual property claims
+ relating to the Covered Code) incurred by the Initial Developer or
+ such Contributor as a result of any such terms You offer.
+ * 3.7 Larger Works. You may create a Larger Work by combining
+ Covered Code with other code not governed by the terms of this
+ License and distribute the Larger Work as a single product. In
+ such a case, You must make sure the requirements of this License
+ are fulfilled for the Covered Code.
+
+*4. Inability to Comply Due to Statute or Regulation.* If it is
+impossible for You to comply with any of the terms of this License with
+respect to some or all of the Covered Code due to statute, judicial
+order, or regulation then You must: (a) comply with the terms of this
+License to the maximum extent possible; and (b) describe the limitations
+and the code they affect. Such description must be included in the LEGAL
+file described in Section 3.4 and must be included with all
+distributions of the Source Code. Except to the extent prohibited by
+statute or regulation, such description must be sufficiently detailed
+for a recipient of ordinary skill to be able to understand it.
+
+*5. Application of this License.* This License applies to code to which
+the Initial Developer has attached the notice in Exhibit A and to
+related Covered Code.
+
+*6. Versions of the License.*
+
+ * 6.1 New Versions. The Storage Networking Industry Association (the
+ "SNIA") may publish revised and/or new versions of the License
+ from time to time. Each version will be given a distinguishing
+ version number.
+ * 6.2 Effect of New Versions. Once Covered Code has been published
+ under a particular version of the License, You may always continue
+ to use it under the terms of that version. You may also choose to
+ use such Covered Code under the terms of any subsequent version of
+ the License published by the SNIA. No one other than the SNIA has
+ the right to modify the terms applicable to Covered Code created
+ under this License.
+ * 6.3 Derivative Works. If You create or use a modified version of
+ this License (which you may only do in order to apply it to code
+ which is not already Covered Code governed by this License), You
+ must (a) rename Your license so that the phrases "Storage
+ Networking Industry Association," "SNIA," or any confusingly
+ similar phrase do not appear in your license (except to note that
+ your license differs from this License) and (b) otherwise make it
+ clear that Your version of the license contains terms which differ
+ from the SNIA Public License. (Filling in the name of the Initial
+ Developer, Original Code or Contributor in the notice described in
+ Exhibit A shall not of themselves be deemed to be modifications of
+ this License.)
+
+*7. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED UNDER THIS LICENSE
+ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
+IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE
+IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR
+NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY
+RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME
+THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS
+DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO
+USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+DISCLAIMER.*
+
+*8. TERMINATION.*
+
+ * *8.1 *This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to
+ cure such breach within a reasonable time after becoming aware of
+ the breach. All sublicenses to the Covered Code which are properly
+ granted shall survive any termination of this License. Provisions
+ which, by their nature, must remain in effect beyond the
+ termination of this License shall survive.
+ * *8.2* If You initiate litigation by asserting a patent
+ infringement claim (excluding declaratory judgment actions)
+ against Initial Developer or a Contributor (the Initial Developer
+ or Contributor against whom You file such action is referred to as
+ "Participant") alleging that:
+ o *(a)* such Participant's Contributor Version directly or
+ indirectly infringes any patent, then any and all rights
+ granted by such Participant to You under Sections 2.1 and/or
+ 2.2 of this License shall, upon 60 days notice from
+ Participant terminate prospectively, unless if within 60
+ days after receipt of notice You either: (i) agree in
+ writing to pay Participant a mutually agreeable reasonable
+ royalty for Your past and future use of Modifications made
+ by such Participant, or (ii) withdraw Your litigation claim
+ with respect to the Contributor Version against such
+ Participant. If within 60 days of notice, a reasonable
+ royalty and payment arrangement are not mutually agreed upon
+ in writing by the parties or the litigation claim is not
+ withdrawn, the rights granted by Participant to You under
+ Sections 2.1 and/or 2.2 automatically terminate at the
+ expiration of the 60 day notice period specified above.
+ * *8.3* If You assert a patent infringement claim against
+ Participant alleging that such Participant's Contributor Version
+ directly or indirectly infringes any patent where such claim is
+ resolved (such as by license or settlement) prior to the
+ initiation of patent infringement litigation, then the reasonable
+ value of the licenses granted by such Participant under Sections
+ 2.1 or 2.2 shall be taken into account in determining the amount
+ or value of any payment or license.
+
+
+
+ * *8.4* In the event of termination under Sections 8.1 or 8.2 above,
+ all end user license agreements (excluding distributors and
+ resellers) which have been validly granted by You or any
+ distributor hereunder prior to termination shall survive termination.
+
+*9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
+THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE,
+SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY
+DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
+DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
+MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
+SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.
+THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR
+PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT
+ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL
+DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.*
+
+*10. U.S. GOVERNMENT END USERS.* The Covered Code is a "commercial
+item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995),
+consisting of "commercial computer software" and "commercial computer
+software documentation," as such terms are used in 48 C.F.R. 12.212
+(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+through 227.7202-4 (June 1995), all U.S. Government End Users acquire
+Covered Code with only those rights set forth herein.
+
+*11. MISCELLANEOUS *This License represents the complete agreement
+concerning subject matter hereof. If any provision of this License is
+held to be unenforceable, such provision shall be reformed only to the
+extent necessary to make it enforceable. This License shall be governed
+by California law provisions (except to the extent applicable law, if
+any, provides otherwise), excluding its conflict-of-law provisions. The
+application of the United Nations Convention on Contracts for the
+International Sale of Goods is expressly excluded. Any law or regulation
+which provides that the language of a contract shall be construed
+against the drafter shall not apply to this License.
+
+*12. RESPONSIBILITY FOR CLAIMS.* As between Initial Developer and the
+Contributors, each party is responsible for claims and damages arising,
+directly or indirectly, out of its utilization of rights under this
+License and You agree to work with Initial Developer and Contributors to
+distribute such responsibility on an equitable basis. Nothing herein is
+intended or shall be deemed to constitute any admission of liability.
+
+*13. MULTIPLE-LICENSED CODE.* Initial Developer may designate portions
+of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means
+that the Initial Developer permits you to utilize portions of the
+Covered Code under Your choice of this License or the alternative
+licenses, if any, specified by the Initial Developer in the file
+described in Exhibit A.
+
+*14. ACCEPTANCE.* This License is accepted by You if You retain, use, or
+distribute the Covered Code for any purpose.
+
+*EXHIBIT A —The SNIA Public License.*
+
+The contents of this file are subject to the SNIA Public License Version
+1.1 (the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://mp-mgmt-api.sourceforge.net/SourceLicense-v1.1.html
+
+Software distributed under the License is distributed on an "AS IS"
+basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+License for the specific language governing rights and limitations under
+the License.
+
+The Original Code is _ ._
+
+The Initial Developer of the Original Code is _ [COMPLETE THIS] _.
+
+Contributor(s): ______________________________________.
+
diff --git a/usr/src/lib/libima/THIRDPARTYLICENSE.descrip b/usr/src/lib/libima/THIRDPARTYLICENSE.descrip
new file mode 100644
index 0000000000..99267edf82
--- /dev/null
+++ b/usr/src/lib/libima/THIRDPARTYLICENSE.descrip
@@ -0,0 +1 @@
+ISCSI Management API LIBRARY
diff --git a/usr/src/lib/libima/common/license.html b/usr/src/lib/libima/common/license.html
deleted file mode 100644
index 1b0c2e386d..0000000000
--- a/usr/src/lib/libima/common/license.html
+++ /dev/null
@@ -1,397 +0,0 @@
-<!--
- Copyright 2008 Sun Microsystems, Inc. All rights reserved.
- Use is subject to license terms.
-
- 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
- or http://www.opensolaris.org/os/licensing.
- 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
--->
-
-<html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document"><title>SNIA Public License v1.1</title>
-
-<meta name="Microsoft Theme" content="none"></head>
-
-<body>
-
-<p align="center"><b>STORAGE NETWORKING INDUSTRY ASSOCIATION<br>
-PUBLIC LICENSE<br>
-Version 1.1&nbsp;</b><br>
-________________________</p>
-<p><b>1. Definitions.</b></p>
-<ul>
- <li>1.1 "Commercial Use" means distribution or otherwise making the
- Covered Code available to a third party.
- </li><li>1.2 "Contributor" means each entity that creates or contributes
- to the creation of Modifications.
- </li><li>1.3 "Contributor Version" means the combination of the Original
- Code, prior Modifications used by a Contributor, and the Modifications made
- by that particular Contributor.
- </li><li>1.4 "Covered Code" means the Original Code or Modifications or
- the combination of the Original Code and Modifications, in each case
- including portions thereof.
- </li><li>1.5 "Electronic Distribution Mechanism" means a mechanism
- generally accepted in the software development community for the electronic
- transfer of data.
- </li><li>1.6 "Executable" means Covered Code in any form other than
- Source Code.
- </li><li>1.7 "Initial Developer" means the individual or entity
- identified as the Initial Developer in the Source Code notice required by
- Exhibit A.
- </li><li>1.8 "Larger Work" means a work which combines Covered Code or
- portions thereof with code not governed by the terms of this License.
- </li><li>1.9 "License" means this document.
- </li><li>1.10 "Licensable" means having the right to grant, to the
- maximum extent possible, whether at the time of the initial grant or
- subsequently acquired, any and all of the rights conveyed herein.
- </li><li>1.11 "Modifications" means any addition to or deletion from the
- substance or structure of either the Original Code or any previous
- Modifications. When Covered Code is released as a series of files, a
- Modification is:
- <ul>
- <li>A. Any addition to or deletion from the contents of a file containing
- Original Code or previous Modifications.</li>
- <li>B. Any new file that contains any part of the Original Code or
- previous Modifications.</li>
- </ul>
- <p>1.12 "Original Code" means Source Code of computer software code
- which is described in the Source Code notice required by Exhibit A as
- Original Code, and which, at the time of its release under this License is
- not already Covered Code governed by this License.
-
- </p></li><li>1.13 "Patent Claims" means any patent claim(s), now owned or
- hereafter acquired, including without limitation, method, process, and
- apparatus claims, in any patent Licensable by grantor.
- </li><li>1.14 "Source Code" means the preferred form of the Covered Code
- for making modifications to it, including all modules it contains, plus any
- associated interface definition files, scripts used to control compilation
- and installation of an Executable, or source code differential comparisons
- against either the Original Code or another well known, available Covered
- Code of the Contributor's choice. The Source Code can be in a compressed or
- archival form, provided the appropriate decompression or de-archiving
- software is widely available for no charge.
- </li><li>1.15 "You" (or "Your") means an individual or a legal
- entity exercising rights under, and complying with all of the terms of, this
- License or a future version of this License issued under Section 6.1. For
- legal entities, "You" includes any entity which controls, is
- controlled by, or is under common control with You. For purposes of this
- definition, "control" means (a) the power, direct or indirect, to
- cause the direction or management of such entity, whether by contract or
- otherwise, or (b) ownership of more than fifty percent (50%) of the
- outstanding shares or beneficial ownership of such entity</li>
-</ul>
-<p><b>2. Source Code License.</b></p>
-<ul>
- <li>2.1 The Initial Developer Grant. The Initial Developer hereby grants You a
- world-wide, royalty-free, non-exclusive license, subject to third party
- intellectual property claims:
- <ul>
- <li>(a) under intellectual property rights (other than patent or
- trademark) Licensable by Initial Developer to use, reproduce, modify,
- display, perform, sublicense and distribute the Original Code (or
- portions thereof) with or without Modifications, and/or as part of a
- Larger Work; and
- </li><li>(b) under Patents Claims infringed by the making, using or selling of
- Original Code, to make, have made, use, practice, sell, and offer for
- sale, and/or otherwise dispose of the Original Code (or portions
- thereof).
- </li><li>(c) the licenses granted in this Section 2.1(a) and (b) are effective
- on the date Initial Developer first distributes Original Code under the
- terms of this License.
- </li><li>(d) Notwithstanding Section 2.1(b) above, no patent license is
- granted: 1) for code that You delete from the Original Code; 2) separate
- from the Original Code; or 3) for infringements caused by: i) the
- modification of the Original Code or ii) the combination of the Original
- Code with other software or devices.</li>
- </ul>
- </li>
-</ul>
-<ul>
- <li>2.2 Contributor Grant. Subject to third party intellectual property
- claims, each Contributor hereby grants You a world-wide, royalty-free,
- non-exclusive license
- <ul>
- <li>(a) under intellectual property rights (other than patent or
- trademark) Licensable by Contributor, to use, reproduce, modify,
- display, perform, sublicense and distribute the Modifications created by
- such Contributor (or portions thereof) either on an unmodified basis,
- with other Modifications, as Covered Code and/or as part of a Larger
- Work; and
- </li><li>(b) under Patent Claims infringed by the making, using, or selling of
- Modifications made by that Contributor either alone and/or in
- combination with its Contributor Version (or portions of such
- combination), to make, use, sell, offer for sale, have made, and/or
- otherwise dispose of: 1) Modifications made by that Contributor (or
- portions thereof); and 2) the combination of Modifications made by that
- Contributor with its Contributor Version (or portions of such
- combination).
- </li><li>(c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective
- on the date Contributor first makes Commercial Use of the Covered Code.
- </li><li>(d) Notwithstanding Section 2.2(b) above, no patent license is
- granted: 1) for any code that Contributor has deleted from the
- Contributor Version; 2) separate from the Contributor Version; 3) for
- infringements caused by: i) third party modifications of Contributor
- Version or ii) the combination of Modifications made by that Contributor
- with other software (except as part of the Contributor Version) or other
- devices; or 4) under Patent Claims infringed by Covered Code in the
- absence of Modifications made by that Contributor.</li>
- </ul>
- </li>
-</ul>
-<p><b>3. Distribution Obligations.</b></p>
-<ul>
- <li>3.1 Application of License. The Modifications which You create or to which
- You contribute are governed by the terms of this License, including without
- limitation Section 2.2. The Source Code version of Covered Code may be
- distributed only under the terms of this License or a future version of this
- License released under Section 6.1, and You must include a copy of this
- License with every copy of the Source Code You distribute. You may not offer
- or impose any terms on any Source Code version that alters or restricts the
- applicable version of this License or the recipients' rights hereunder.
- However, You may include an additional document offering the additional
- rights described in Section 3.5.
- </li><li>3.2 Availability of Source Code. Any Modification which You create or to
- which You contribute must be made available in Source Code form under the
- terms of this License either on the same media as an Executable version or
- via an accepted Electronic Distribution Mechanism to anyone to whom you made
- an Executable version available; and if made available via Electronic
- Distribution Mechanism, must remain available for at least twelve (12)
- months after the date it initially became available, or at least six (6)
- months after a subsequent version of that particular Modification has been
- made available to such recipients. You are responsible for ensuring that the
- Source Code version remains available even if the Electronic Distribution
- Mechanism is maintained by a third party.
- </li><li>3.3 Description of Modifications. You must cause all Covered Code to which
- You contribute to contain a file documenting the changes You made to create
- that Covered Code and the date of any change. You must include a prominent
- statement that the Modification is derived, directly or indirectly, from
- Original Code provided by the Initial Developer and including the name of
- the Initial Developer in (a) the Source Code, and (b) in any notice in an
- Executable version or related documentation in which You describe the origin
- or ownership of the Covered Code.
- </li><li>3.4 Intellectual Property Matters.
- <ul>
- <li>(a) Third Party Claims. If Contributor has actual knowledge that a
- license under a third party's intellectual property rights is required
- to exercise the rights granted by such Contributor under Sections 2.1 or
- 2.2, Contributor must include a text file with the Source Code
- distribution titled "LEGAL" which describes the claim and the
- party making the claim in sufficient detail that a recipient will know
- whom to contact. If Contributor obtains such knowledge after the
- Modification is made available as described in Section 3.2, Contributor
- shall promptly modify the LEGAL file in all copies Contributor makes
- available thereafter.
- </li><li>(b) Contributor API's. If Contributor's Modifications include an
- application programming interface and Contributor has actual knowledge
- of patent licenses which are reasonably necessary to implement that API,
- Contributor must also include this information in the LEGAL file.
- </li><li>(c) Representations. Contributor represents that, except as disclosed
- pursuant to Section 3.4(a) above, Contributor believes that
- Contributor's Modifications are Contributor's original creation(s)
- and/or Contributor has sufficient rights to grant the rights conveyed by
- this License.</li>
- </ul>
- </li><li>3.5 Required Notices. You must duplicate the notice in <b>Exhibit A</b> in
- each file of the Source Code. If it is not possible to put such notice in a
- particular Source Code file due to its structure, then You must include such
- notice in a location (such as a relevant directory) where a user would be
- most likely to look for such a notice. If You created one or more
- Modification(s) You may add your name as a Contributor to the notice
- described in <b>Exhibit A. </b>You must also duplicate this License in any
- documentation for the Source Code where You describe recipients' rights or
- ownership rights relating to Covered Code. You may choose to offer, and to
- charge a fee for, warranty, support, indemnity or liability obligations to
- one or more recipients of Covered Code. However, You may do so only on Your
- own behalf, and not on behalf of the Initial Developer or any Contributor.
- You must make it absolutely clear that any such warranty, support, indemnity
- or liability obligation is offered by You alone, and You hereby agree to
- indemnify the Initial Developer and every Contributor for any liability
- (excluding any liability arising from intellectual property claims relating
- to the Covered Code) incurred by the Initial Developer or such Contributor
- as a result of warranty, support, indemnity or liability terms You offer.
- </li><li>3.6 Distribution of Executable Versions. You may distribute Covered Code
- in Executable form only if the requirements of Section<b> 3.1-3.5 </b>have
- been met for that Covered Code, and if You include a notice stating that the
- Source Code version of the Covered Code is available under the terms of this
- License, including a description of how and where You have fulfilled the
- obligation of Section <b>3.2.</b> The notice must be conspicuously included
- in any notice in an Executable version, related documentation or collateral
- in which You describe recipients' rights relating to the Covered Code. You
- may distribute the Executable version of Covered Code or ownership rights
- under a license of Your choice, which may contain terms different from this
- License, provided that You are in compliance with the terms of this License
- and that the license for the Executable version does not attempt to limit or
- alter the recipient's rights in the Source Code version from the rights set
- forth in this License. If You distribute the Executable version under a
- different license You must make it absolutely clear that any terms which
- differ from this License are offered by You alone, not by the Initial
- Developer or any Contributor. You hereby agree to indemnify the Initial
- Developer and every Contributor for any liability (excluding any liability
- arising from intellectual property claims relating to the Covered Code)
- incurred by the Initial Developer or such Contributor as a result of any
- such terms You offer.
- </li><li>3.7 Larger Works. You may create a Larger Work by combining Covered Code
- with other code not governed by the terms of this License and distribute the
- Larger Work as a single product. In such a case, You must make sure the
- requirements of this License are fulfilled for the Covered Code.</li>
-</ul>
-<p><b>4. Inability to Comply Due to Statute or Regulation.</b> If it is
-impossible for You to comply with any of the terms of this License with respect
-to some or all of the Covered Code due to statute, judicial order, or regulation
-then You must: (a) comply with the terms of this License to the maximum extent
-possible; and (b) describe the limitations and the code they affect. Such
-description must be included in the LEGAL file described in Section 3.4 and must
-be included with all distributions of the Source Code. Except to the extent
-prohibited by statute or regulation, such description must be sufficiently
-detailed for a recipient of ordinary skill to be able to understand it.</p>
-<p><b>5. Application of this License.</b> This License applies to code to which
-the Initial Developer has attached the notice in Exhibit A and to related
-Covered Code.</p>
-<p><b>6. Versions of the License.</b></p>
-<ul>
- <li>6.1 New Versions. The Storage Networking Industry Association (the
- "SNIA") may publish revised and/or new versions of the License
- from time to time. Each version will be given a distinguishing version
- number.
- </li><li>6.2 Effect of New Versions. Once Covered Code has been published under a
- particular version of the License, You may always continue to use it under
- the terms of that version. You may also choose to use such Covered Code
- under the terms of any subsequent version of the License published by the
- SNIA. No one other than the SNIA has the right to modify the terms
- applicable to Covered Code created under this License.
- </li><li>6.3 Derivative Works. If You create or use a modified version of this
- License (which you may only do in order to apply it to code which is not
- already Covered Code governed by this License), You must (a) rename Your
- license so that the phrases "Storage Networking Industry
- Association," "SNIA," or any confusingly similar phrase do
- not appear in your license (except to note that your license differs from
- this License) and (b) otherwise make it clear that Your version of the
- license contains terms which differ from the SNIA Public License. (Filling
- in the name of the Initial Developer, Original Code or Contributor in the
- notice described in Exhibit A shall not of themselves be deemed to be
- modifications of this License.)</li>
-</ul>
-<p><b>7. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED UNDER THIS LICENSE ON
-AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
-IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE
-OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE
-ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU.
-SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
-DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING,
-REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
-OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER
-THIS DISCLAIMER.</b></p>
-<p><b>8. TERMINATION.</b></p>
-<ul>
- <li><b>8.1 </b>This License and the rights granted hereunder will terminate
- automatically if You fail to comply with terms herein and fail to cure such
- breach within a reasonable time after becoming aware of the breach. All
- sublicenses to the Covered Code which are properly granted shall survive any
- termination of this License. Provisions which, by their nature, must remain
- in effect beyond the termination of this License shall survive.
- </li><li><b>8.2</b> If You initiate litigation by asserting a patent infringement
- claim (excluding declaratory judgment actions) against Initial Developer or
- a Contributor (the Initial Developer or Contributor against whom You file
- such action is referred to as "Participant") alleging that:
- <ul>
- <li><b>(a)</b> such Participant's Contributor Version directly or
- indirectly infringes any patent, then any and all rights granted by such
- Participant to You under Sections 2.1 and/or 2.2 of this License shall,
- upon 60 days notice from Participant terminate prospectively, unless if
- within 60 days after receipt of notice You either: (i) agree in writing
- to pay Participant a mutually agreeable reasonable royalty for Your past
- and future use of Modifications made by such Participant, or (ii)
- withdraw Your litigation claim with respect to the Contributor Version
- against such Participant. If within 60 days of notice, a reasonable
- royalty and payment arrangement are not mutually agreed upon in writing
- by the parties or the litigation claim is not withdrawn, the rights
- granted by Participant to You under Sections 2.1 and/or 2.2
- automatically terminate at the expiration of the 60 day notice period
- specified above.</li>
- </ul>
- </li><li><b>8.3</b> If You assert a patent infringement claim against Participant
- alleging that such Participant's Contributor Version directly or indirectly
- infringes any patent where such claim is resolved (such as by license or
- settlement) prior to the initiation of patent infringement litigation, then
- the reasonable value of the licenses granted by such Participant under
- Sections 2.1 or 2.2 shall be taken into account in determining the amount or
- value of any payment or license.
- <p>&nbsp;</p>
- </li><li><b>8.4</b> In the event of termination under Sections 8.1 or 8.2 above,
- all end user license agreements (excluding distributors and resellers) which
- have been validly granted by You or any distributor hereunder prior to
- termination shall survive termination.</li>
-</ul>
-<p><b>9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
-THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU,
-THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED
-CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY
-INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER
-INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE,
-COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR
-LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH
-DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR
-PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE
-LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
-LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND
-LIMITATION MAY NOT APPLY TO YOU.</b></p>
-<p><b>10. U.S. GOVERNMENT END USERS.</b> The Covered Code is a "commercial
-item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting
-of "commercial computer software" and "commercial computer
-software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept.
-1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through
-227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with
-only those rights set forth herein.</p>
-<p><b>11. MISCELLANEOUS </b>This License represents the complete agreement
-concerning subject matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the extent necessary to
-make it enforceable. This License shall be governed by California law provisions
-(except to the extent applicable law, if any, provides otherwise), excluding its
-conflict-of-law provisions. The application of the United Nations Convention on
-Contracts for the International Sale of Goods is expressly excluded. Any law or
-regulation which provides that the language of a contract shall be construed
-against the drafter shall not apply to this License.</p>
-<p><b>12. RESPONSIBILITY FOR CLAIMS.</b> As between Initial Developer and the
-Contributors, each party is responsible for claims and damages arising, directly
-or indirectly, out of its utilization of rights under this License and You agree
-to work with Initial Developer and Contributors to distribute such
-responsibility on an equitable basis. Nothing herein is intended or shall be
-deemed to constitute any admission of liability.</p>
-<p><b>13. MULTIPLE-LICENSED CODE.</b> Initial Developer may designate portions
-of the Covered Code as "Multiple-Licensed".
-"Multiple-Licensed" means that the Initial Developer permits you to
-utilize portions of the Covered Code under Your choice of this License or the
-alternative licenses, if any, specified by the Initial Developer in the file
-described in Exhibit A.</p>
-<p><b>14. ACCEPTANCE.</b> This License is accepted by You if You retain, use, or
-distribute the Covered Code for any purpose.</p>
-<p><b>EXHIBIT A —The SNIA Public License.</b></p>
-<p>The contents of this file are subject to the SNIA Public License Version 1.1
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at</p>
-<p>&nbsp;&nbsp;&nbsp; <a href="http://mp-mgmt-api.sourceforge.net/SourceLicense-v1.1.html">http://mp-mgmt-api.sourceforge.net/SourceLicense-v1.1.html</a></p>
-<p>Software distributed under the License is distributed on an "AS IS"
-basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the License.</p>
-<p>The Original Code is <u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.</u></p>
-<p>The Initial Developer of the Original Code is <u>&nbsp;&nbsp;[COMPLETE THIS]&nbsp;&nbsp;&nbsp;&nbsp;</u>.</p>
-<p>Contributor(s): ______________________________________.</p>
-
-</body></html>
diff --git a/usr/src/lib/mpapi/libmpapi/THIRDPARTYLICENSE b/usr/src/lib/mpapi/libmpapi/THIRDPARTYLICENSE
new file mode 100644
index 0000000000..464ee756eb
--- /dev/null
+++ b/usr/src/lib/mpapi/libmpapi/THIRDPARTYLICENSE
@@ -0,0 +1,404 @@
+--------------------------------------------------------------------
+
+*STORAGE NETWORKING INDUSTRY ASSOCIATION
+PUBLIC LICENSE
+Version 1.1 *
+________________________
+
+*1. Definitions.*
+
+ * 1.1 "Commercial Use" means distribution or otherwise making the
+ Covered Code available to a third party.
+ * 1.2 "Contributor" means each entity that creates or contributes to
+ the creation of Modifications.
+ * 1.3 "Contributor Version" means the combination of the Original
+ Code, prior Modifications used by a Contributor, and the
+ Modifications made by that particular Contributor.
+ * 1.4 "Covered Code" means the Original Code or Modifications or the
+ combination of the Original Code and Modifications, in each case
+ including portions thereof.
+ * 1.5 "Electronic Distribution Mechanism" means a mechanism
+ generally accepted in the software development community for the
+ electronic transfer of data.
+ * 1.6 "Executable" means Covered Code in any form other than Source
+ Code.
+ * 1.7 "Initial Developer" means the individual or entity identified
+ as the Initial Developer in the Source Code notice required by
+ Exhibit A.
+ * 1.8 "Larger Work" means a work which combines Covered Code or
+ portions thereof with code not governed by the terms of this License.
+ * 1.9 "License" means this document.
+ * 1.10 "Licensable" means having the right to grant, to the maximum
+ extent possible, whether at the time of the initial grant or
+ subsequently acquired, any and all of the rights conveyed herein.
+ * 1.11 "Modifications" means any addition to or deletion from the
+ substance or structure of either the Original Code or any previous
+ Modifications. When Covered Code is released as a series of files,
+ a Modification is:
+ o A. Any addition to or deletion from the contents of a file
+ containing Original Code or previous Modifications.
+ o B. Any new file that contains any part of the Original Code
+ or previous Modifications.
+
+ 1.12 "Original Code" means Source Code of computer software code
+ which is described in the Source Code notice required by Exhibit A
+ as Original Code, and which, at the time of its release under this
+ License is not already Covered Code governed by this License.
+
+ * 1.13 "Patent Claims" means any patent claim(s), now owned or
+ hereafter acquired, including without limitation, method, process,
+ and apparatus claims, in any patent Licensable by grantor.
+ * 1.14 "Source Code" means the preferred form of the Covered Code
+ for making modifications to it, including all modules it contains,
+ plus any associated interface definition files, scripts used to
+ control compilation and installation of an Executable, or source
+ code differential comparisons against either the Original Code or
+ another well known, available Covered Code of the Contributor's
+ choice. The Source Code can be in a compressed or archival form,
+ provided the appropriate decompression or de-archiving software is
+ widely available for no charge.
+ * 1.15 "You" (or "Your") means an individual or a legal entity
+ exercising rights under, and complying with all of the terms of,
+ this License or a future version of this License issued under
+ Section 6.1. For legal entities, "You" includes any entity which
+ controls, is controlled by, or is under common control with You.
+ For purposes of this definition, "control" means (a) the power,
+ direct or indirect, to cause the direction or management of such
+ entity, whether by contract or otherwise, or (b) ownership of more
+ than fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity
+
+*2. Source Code License.*
+
+ * 2.1 The Initial Developer Grant. The Initial Developer hereby
+ grants You a world-wide, royalty-free, non-exclusive license,
+ subject to third party intellectual property claims:
+ o (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Initial Developer to use,
+ reproduce, modify, display, perform, sublicense and
+ distribute the Original Code (or portions thereof) with or
+ without Modifications, and/or as part of a Larger Work; and
+ o (b) under Patents Claims infringed by the making, using or
+ selling of Original Code, to make, have made, use, practice,
+ sell, and offer for sale, and/or otherwise dispose of the
+ Original Code (or portions thereof).
+ o (c) the licenses granted in this Section 2.1(a) and (b) are
+ effective on the date Initial Developer first distributes
+ Original Code under the terms of this License.
+ o (d) Notwithstanding Section 2.1(b) above, no patent license
+ is granted: 1) for code that You delete from the Original
+ Code; 2) separate from the Original Code; or 3) for
+ infringements caused by: i) the modification of the Original
+ Code or ii) the combination of the Original Code with other
+ software or devices.
+
+ * 2.2 Contributor Grant. Subject to third party intellectual
+ property claims, each Contributor hereby grants You a world-wide,
+ royalty-free, non-exclusive license
+ o (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Contributor, to use, reproduce,
+ modify, display, perform, sublicense and distribute the
+ Modifications created by such Contributor (or portions
+ thereof) either on an unmodified basis, with other
+ Modifications, as Covered Code and/or as part of a Larger
+ Work; and
+ o (b) under Patent Claims infringed by the making, using, or
+ selling of Modifications made by that Contributor either
+ alone and/or in combination with its Contributor Version (or
+ portions of such combination), to make, use, sell, offer for
+ sale, have made, and/or otherwise dispose of: 1)
+ Modifications made by that Contributor (or portions
+ thereof); and 2) the combination of Modifications made by
+ that Contributor with its Contributor Version (or portions
+ of such combination).
+ o (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+ effective on the date Contributor first makes Commercial Use
+ of the Covered Code.
+ o (d) Notwithstanding Section 2.2(b) above, no patent license
+ is granted: 1) for any code that Contributor has deleted
+ from the Contributor Version; 2) separate from the
+ Contributor Version; 3) for infringements caused by: i)
+ third party modifications of Contributor Version or ii) the
+ combination of Modifications made by that Contributor with
+ other software (except as part of the Contributor Version)
+ or other devices; or 4) under Patent Claims infringed by
+ Covered Code in the absence of Modifications made by that
+ Contributor.
+
+*3. Distribution Obligations.*
+
+ * 3.1 Application of License. The Modifications which You create or
+ to which You contribute are governed by the terms of this License,
+ including without limitation Section 2.2. The Source Code version
+ of Covered Code may be distributed only under the terms of this
+ License or a future version of this License released under Section
+ 6.1, and You must include a copy of this License with every copy
+ of the Source Code You distribute. You may not offer or impose any
+ terms on any Source Code version that alters or restricts the
+ applicable version of this License or the recipients' rights
+ hereunder. However, You may include an additional document
+ offering the additional rights described in Section 3.5.
+ * 3.2 Availability of Source Code. Any Modification which You create
+ or to which You contribute must be made available in Source Code
+ form under the terms of this License either on the same media as
+ an Executable version or via an accepted Electronic Distribution
+ Mechanism to anyone to whom you made an Executable version
+ available; and if made available via Electronic Distribution
+ Mechanism, must remain available for at least twelve (12) months
+ after the date it initially became available, or at least six (6)
+ months after a subsequent version of that particular Modification
+ has been made available to such recipients. You are responsible
+ for ensuring that the Source Code version remains available even
+ if the Electronic Distribution Mechanism is maintained by a third
+ party.
+ * 3.3 Description of Modifications. You must cause all Covered Code
+ to which You contribute to contain a file documenting the changes
+ You made to create that Covered Code and the date of any change.
+ You must include a prominent statement that the Modification is
+ derived, directly or indirectly, from Original Code provided by
+ the Initial Developer and including the name of the Initial
+ Developer in (a) the Source Code, and (b) in any notice in an
+ Executable version or related documentation in which You describe
+ the origin or ownership of the Covered Code.
+ * 3.4 Intellectual Property Matters.
+ o (a) Third Party Claims. If Contributor has actual knowledge
+ that a license under a third party's intellectual property
+ rights is required to exercise the rights granted by such
+ Contributor under Sections 2.1 or 2.2, Contributor must
+ include a text file with the Source Code distribution titled
+ "LEGAL" which describes the claim and the party making the
+ claim in sufficient detail that a recipient will know whom
+ to contact. If Contributor obtains such knowledge after the
+ Modification is made available as described in Section 3.2,
+ Contributor shall promptly modify the LEGAL file in all
+ copies Contributor makes available thereafter.
+ o (b) Contributor API's. If Contributor's Modifications
+ include an application programming interface and Contributor
+ has actual knowledge of patent licenses which are reasonably
+ necessary to implement that API, Contributor must also
+ include this information in the LEGAL file.
+ o (c) Representations. Contributor represents that, except as
+ disclosed pursuant to Section 3.4(a) above, Contributor
+ believes that Contributor's Modifications are Contributor's
+ original creation(s) and/or Contributor has sufficient
+ rights to grant the rights conveyed by this License.
+ * 3.5 Required Notices. You must duplicate the notice in *Exhibit A*
+ in each file of the Source Code. If it is not possible to put such
+ notice in a particular Source Code file due to its structure, then
+ You must include such notice in a location (such as a relevant
+ directory) where a user would be most likely to look for such a
+ notice. If You created one or more Modification(s) You may add
+ your name as a Contributor to the notice described in *Exhibit A.
+ *You must also duplicate this License in any documentation for the
+ Source Code where You describe recipients' rights or ownership
+ rights relating to Covered Code. You may choose to offer, and to
+ charge a fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Code. However,
+ You may do so only on Your own behalf, and not on behalf of the
+ Initial Developer or any Contributor. You must make it absolutely
+ clear that any such warranty, support, indemnity or liability
+ obligation is offered by You alone, and You hereby agree to
+ indemnify the Initial Developer and every Contributor for any
+ liability (excluding any liability arising from intellectual
+ property claims relating to the Covered Code) incurred by the
+ Initial Developer or such Contributor as a result of warranty,
+ support, indemnity or liability terms You offer.
+ * 3.6 Distribution of Executable Versions. You may distribute
+ Covered Code in Executable form only if the requirements of
+ Section* 3.1-3.5 *have been met for that Covered Code, and if You
+ include a notice stating that the Source Code version of the
+ Covered Code is available under the terms of this License,
+ including a description of how and where You have fulfilled the
+ obligation of Section *3.2.* The notice must be conspicuously
+ included in any notice in an Executable version, related
+ documentation or collateral in which You describe recipients'
+ rights relating to the Covered Code. You may distribute the
+ Executable version of Covered Code or ownership rights under a
+ license of Your choice, which may contain terms different from
+ this License, provided that You are in compliance with the terms
+ of this License and that the license for the Executable version
+ does not attempt to limit or alter the recipient's rights in the
+ Source Code version from the rights set forth in this License. If
+ You distribute the Executable version under a different license
+ You must make it absolutely clear that any terms which differ from
+ this License are offered by You alone, not by the Initial
+ Developer or any Contributor. You hereby agree to indemnify the
+ Initial Developer and every Contributor for any liability
+ (excluding any liability arising from intellectual property claims
+ relating to the Covered Code) incurred by the Initial Developer or
+ such Contributor as a result of any such terms You offer.
+ * 3.7 Larger Works. You may create a Larger Work by combining
+ Covered Code with other code not governed by the terms of this
+ License and distribute the Larger Work as a single product. In
+ such a case, You must make sure the requirements of this License
+ are fulfilled for the Covered Code.
+
+*4. Inability to Comply Due to Statute or Regulation.* If it is
+impossible for You to comply with any of the terms of this License with
+respect to some or all of the Covered Code due to statute, judicial
+order, or regulation then You must: (a) comply with the terms of this
+License to the maximum extent possible; and (b) describe the limitations
+and the code they affect. Such description must be included in the LEGAL
+file described in Section 3.4 and must be included with all
+distributions of the Source Code. Except to the extent prohibited by
+statute or regulation, such description must be sufficiently detailed
+for a recipient of ordinary skill to be able to understand it.
+
+*5. Application of this License.* This License applies to code to which
+the Initial Developer has attached the notice in Exhibit A and to
+related Covered Code.
+
+*6. Versions of the License.*
+
+ * 6.1 New Versions. The Storage Networking Industry Association (the
+ "SNIA") may publish revised and/or new versions of the License
+ from time to time. Each version will be given a distinguishing
+ version number.
+ * 6.2 Effect of New Versions. Once Covered Code has been published
+ under a particular version of the License, You may always continue
+ to use it under the terms of that version. You may also choose to
+ use such Covered Code under the terms of any subsequent version of
+ the License published by the SNIA. No one other than the SNIA has
+ the right to modify the terms applicable to Covered Code created
+ under this License.
+ * 6.3 Derivative Works. If You create or use a modified version of
+ this License (which you may only do in order to apply it to code
+ which is not already Covered Code governed by this License), You
+ must (a) rename Your license so that the phrases "Storage
+ Networking Industry Association," "SNIA," or any confusingly
+ similar phrase do not appear in your license (except to note that
+ your license differs from this License) and (b) otherwise make it
+ clear that Your version of the license contains terms which differ
+ from the SNIA Public License. (Filling in the name of the Initial
+ Developer, Original Code or Contributor in the notice described in
+ Exhibit A shall not of themselves be deemed to be modifications of
+ this License.)
+
+*7. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED UNDER THIS LICENSE
+ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
+IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE
+IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR
+NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY
+RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME
+THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS
+DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO
+USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+DISCLAIMER.*
+
+*8. TERMINATION.*
+
+ * *8.1 *This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to
+ cure such breach within a reasonable time after becoming aware of
+ the breach. All sublicenses to the Covered Code which are properly
+ granted shall survive any termination of this License. Provisions
+ which, by their nature, must remain in effect beyond the
+ termination of this License shall survive.
+ * *8.2* If You initiate litigation by asserting a patent
+ infringement claim (excluding declaratory judgment actions)
+ against Initial Developer or a Contributor (the Initial Developer
+ or Contributor against whom You file such action is referred to as
+ "Participant") alleging that:
+ o *(a)* such Participant's Contributor Version directly or
+ indirectly infringes any patent, then any and all rights
+ granted by such Participant to You under Sections 2.1 and/or
+ 2.2 of this License shall, upon 60 days notice from
+ Participant terminate prospectively, unless if within 60
+ days after receipt of notice You either: (i) agree in
+ writing to pay Participant a mutually agreeable reasonable
+ royalty for Your past and future use of Modifications made
+ by such Participant, or (ii) withdraw Your litigation claim
+ with respect to the Contributor Version against such
+ Participant. If within 60 days of notice, a reasonable
+ royalty and payment arrangement are not mutually agreed upon
+ in writing by the parties or the litigation claim is not
+ withdrawn, the rights granted by Participant to You under
+ Sections 2.1 and/or 2.2 automatically terminate at the
+ expiration of the 60 day notice period specified above.
+ * *8.3* If You assert a patent infringement claim against
+ Participant alleging that such Participant's Contributor Version
+ directly or indirectly infringes any patent where such claim is
+ resolved (such as by license or settlement) prior to the
+ initiation of patent infringement litigation, then the reasonable
+ value of the licenses granted by such Participant under Sections
+ 2.1 or 2.2 shall be taken into account in determining the amount
+ or value of any payment or license.
+
+
+
+ * *8.4* In the event of termination under Sections 8.1 or 8.2 above,
+ all end user license agreements (excluding distributors and
+ resellers) which have been validly granted by You or any
+ distributor hereunder prior to termination shall survive termination.
+
+*9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
+THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE,
+SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY
+DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
+DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
+MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
+SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.
+THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR
+PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT
+ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL
+DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.*
+
+*10. U.S. GOVERNMENT END USERS.* The Covered Code is a "commercial
+item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995),
+consisting of "commercial computer software" and "commercial computer
+software documentation," as such terms are used in 48 C.F.R. 12.212
+(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+through 227.7202-4 (June 1995), all U.S. Government End Users acquire
+Covered Code with only those rights set forth herein.
+
+*11. MISCELLANEOUS *This License represents the complete agreement
+concerning subject matter hereof. If any provision of this License is
+held to be unenforceable, such provision shall be reformed only to the
+extent necessary to make it enforceable. This License shall be governed
+by California law provisions (except to the extent applicable law, if
+any, provides otherwise), excluding its conflict-of-law provisions. The
+application of the United Nations Convention on Contracts for the
+International Sale of Goods is expressly excluded. Any law or regulation
+which provides that the language of a contract shall be construed
+against the drafter shall not apply to this License.
+
+*12. RESPONSIBILITY FOR CLAIMS.* As between Initial Developer and the
+Contributors, each party is responsible for claims and damages arising,
+directly or indirectly, out of its utilization of rights under this
+License and You agree to work with Initial Developer and Contributors to
+distribute such responsibility on an equitable basis. Nothing herein is
+intended or shall be deemed to constitute any admission of liability.
+
+*13. MULTIPLE-LICENSED CODE.* Initial Developer may designate portions
+of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means
+that the Initial Developer permits you to utilize portions of the
+Covered Code under Your choice of this License or the alternative
+licenses, if any, specified by the Initial Developer in the file
+described in Exhibit A.
+
+*14. ACCEPTANCE.* This License is accepted by You if You retain, use, or
+distribute the Covered Code for any purpose.
+
+*EXHIBIT A —The SNIA Public License.*
+
+The contents of this file are subject to the SNIA Public License Version
+1.1 (the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://mp-mgmt-api.sourceforge.net/SourceLicense-v1.1.html
+
+Software distributed under the License is distributed on an "AS IS"
+basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+License for the specific language governing rights and limitations under
+the License.
+
+The Original Code is _ ._
+
+The Initial Developer of the Original Code is _ [COMPLETE THIS] _.
+
+Contributor(s): ______________________________________.
+
diff --git a/usr/src/lib/mpapi/libmpapi/THIRDPARTYLICENSE.descrip b/usr/src/lib/mpapi/libmpapi/THIRDPARTYLICENSE.descrip
new file mode 100644
index 0000000000..9b3f82d096
--- /dev/null
+++ b/usr/src/lib/mpapi/libmpapi/THIRDPARTYLICENSE.descrip
@@ -0,0 +1 @@
+MULTIPATH MANAGEMENT API
diff --git a/usr/src/pkgdefs/SUNWcfcl/Makefile b/usr/src/pkgdefs/SUNWcfcl/Makefile
index 1f87d1b3d0..8ef07e677b 100644
--- a/usr/src/pkgdefs/SUNWcfcl/Makefile
+++ b/usr/src/pkgdefs/SUNWcfcl/Makefile
@@ -30,7 +30,7 @@ include ../Makefile.com
DATAFILES += depend
-LICENSEFILES += $(CMN_LIC_DIR)/lic_SNIA
+LICENSEFILES += ../../lib/hbaapi/THIRDPARTYLICENSE
.KEEP_STATE:
diff --git a/usr/src/pkgdefs/SUNWimac/Makefile b/usr/src/pkgdefs/SUNWimac/Makefile
index 1cdcf183c9..d343214bf1 100644
--- a/usr/src/pkgdefs/SUNWimac/Makefile
+++ b/usr/src/pkgdefs/SUNWimac/Makefile
@@ -27,7 +27,7 @@ include ../Makefile.com
.KEEP_STATE:
-LICENSEFILES += $(CMN_LIC_DIR)/lic_SNIA
+LICENSEFILES += ../../lib/libima/THIRDPARTYLICENSE
all: $(FILES) depend
diff --git a/usr/src/pkgdefs/SUNWmpapi/Makefile b/usr/src/pkgdefs/SUNWmpapi/Makefile
index e784b43642..d19097983d 100644
--- a/usr/src/pkgdefs/SUNWmpapi/Makefile
+++ b/usr/src/pkgdefs/SUNWmpapi/Makefile
@@ -25,7 +25,7 @@
include ../Makefile.com
-LICENSEFILES += $(CMN_LIC_DIR)/lic_SNIA
+LICENSEFILES += ../../lib/mpapi/libmpapi/THIRDPARTYLICENSE
.KEEP_STATE:
diff --git a/usr/src/pkgdefs/SUNWmpapir/Makefile b/usr/src/pkgdefs/SUNWmpapir/Makefile
index e34d4b6f87..f4a7e705fb 100644
--- a/usr/src/pkgdefs/SUNWmpapir/Makefile
+++ b/usr/src/pkgdefs/SUNWmpapir/Makefile
@@ -27,7 +27,7 @@ include ../Makefile.com
DATAFILES += i.preserve
-LICENSEFILES += $(CMN_LIC_DIR)/lic_SNIA
+LICENSEFILES += ../../lib/mpapi/libmpapi/THIRDPARTYLICENSE
.KEEP_STATE:
diff --git a/usr/src/pkgdefs/SUNWscmu/i.preserve b/usr/src/pkgdefs/SUNWscmu/i.preserve
deleted file mode 100644
index 5b9b0b11a9..0000000000
--- a/usr/src/pkgdefs/SUNWscmu/i.preserve
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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
-# or http://www.opensolaris.org/os/licensing.
-# 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 2008 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-#
-while read src dest
-do
- if [ ! -f $dest ] ; then
- cp $src $dest
- fi
-done
-exit 0
diff --git a/usr/src/tools/findunref/exception_list.open b/usr/src/tools/findunref/exception_list.open
index 3252cb9829..ffd698050c 100644
--- a/usr/src/tools/findunref/exception_list.open
+++ b/usr/src/tools/findunref/exception_list.open
@@ -180,6 +180,7 @@
./src/uts/sparc/uhci/Makefile
./src/lib/pam_modules/smb/amd64/Makefile
./src/lib/pam_modules/smb/sparcv9/Makefile
+./src/cmd/isns/isnsd/xml_def/isnsmgmtSchema.xsd
#
# Ignore dtrace scripts only used by developers
diff --git a/usr/src/tools/opensolaris/license-list b/usr/src/tools/opensolaris/license-list
index 0175ca863c..b78c583001 100644
--- a/usr/src/tools/opensolaris/license-list
+++ b/usr/src/tools/opensolaris/license-list
@@ -76,6 +76,7 @@ usr/src/common/crypto/md5/amd64/THIRDPARTYLICENSE
usr/src/common/openssl/LICENSE
usr/src/grub/grub-0.95/COPYING
usr/src/lib/gss_mechs/mech_krb5/THIRDPARTYLICENSE
+usr/src/lib/hbaapi/THIRDPARTYLICENSE
usr/src/lib/krb5/THIRDPARTYLICENSE
usr/src/lib/libast/THIRDPARTYLICENSE
usr/src/lib/libbc/THIRDPARTYLICENSE
@@ -83,6 +84,7 @@ usr/src/lib/libbsdmalloc/THIRDPARTYLICENSE
usr/src/lib/libcmd/THIRDPARTYLICENSE
usr/src/lib/libdll/THIRDPARTYLICENSE
usr/src/lib/libdns_sd/THIRDPARTYLICENSE
+usr/src/lib/libima/THIRDPARTYLICENSE
usr/src/lib/libgss/THIRDPARTYLICENSE
usr/src/lib/libinetutil/common/THIRDPARTYLICENSE
usr/src/lib/libkmf/THIRDPARTYLICENSE
@@ -95,6 +97,7 @@ usr/src/lib/libsasl/THIRDPARTYLICENSE
usr/src/lib/libshell/THIRDPARTYLICENSE
usr/src/lib/libtecla/THIRDPARTYLICENSE
usr/src/lib/libwrap/THIRDPARTYLICENSE
+usr/src/lib/mpapi/libmpapi/THIRDPARTYLICENSE
usr/src/lib/pam_modules/authtok_check/THIRDPARTYLICENSE
usr/src/lib/passwdutil/THIRDPARTYLICENSE
usr/src/lib/pkcs11/include/THIRDPARTYLICENSE
diff --git a/usr/src/uts/common/avs/ns/sdbc/CACHE_SPEC b/usr/src/uts/common/avs/ns/sdbc/CACHE_SPEC.txt
index 1769251955..1769251955 100644
--- a/usr/src/uts/common/avs/ns/sdbc/CACHE_SPEC
+++ b/usr/src/uts/common/avs/ns/sdbc/CACHE_SPEC.txt
diff --git a/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_transport.c b/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_transport.c
deleted file mode 100644
index e3a7aebfd3..0000000000
--- a/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_transport.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * 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
- * or http://www.opensolaris.org/os/licensing.
- * 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 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <iscsi_transport.h>
-#include <sys/socket.h>
-#include <sys/strsubr.h>
-#include <sys/socketvar.h>
-#ifdef _KERNEL
-#include <sys/sunddi.h>
-#else
-#include <stdlib.h>
-#endif
-#include <iscsi.h>
-
-static transport_services_t *hba_transport = NULL;
-
-static
-void
-*iscsi_socket(int domain, int type, int protocol)
-{
- /* This routine should return a pointer to struct sonode */
- return ((void *)iscsi_net_create(domain, type, protocol));
-}
-
-static
-int
-iscsi_bind(void *socket, struct sockaddr *name, int name_len,
- int backlog, int flags)
-{
- return (sobind((struct sonode *)socket, name, name_len,
- backlog, flags));
-}
-
-static
-int
-iscsi_connect(void *socket, struct sockaddr *name, int name_len,
- int fflag, int flags)
-{
- return (soconnect((struct sonode *)socket, name, name_len, fflag,
- flags));
-}
-
-static
-int
-iscsi_listen(void *socket, int backlog)
-{
- return (solisten((struct sonode *)socket, backlog));
-}
-
-static
-void *
-iscsi_accept(void *socket, struct sockaddr *addr, int *addr_len)
-{
- struct sonode *listening_socket;
-
- (void) soaccept((struct sonode *)socket,
- ((struct sonode *)socket)->so_flag,
- &listening_socket);
- if (listening_socket != NULL) {
- bcopy(listening_socket->so_faddr_sa, addr,
- (socklen_t)listening_socket->so_faddr_len);
- *addr_len = listening_socket->so_faddr_len;
- } else {
- *addr_len = 0;
- }
-
- return ((void *)listening_socket);
-}
-
-/* ARGSUSED */
-static
-ssize_t
-iscsi_sendmsg(void *socket, struct msghdr *msg, int flags)
-{
- int i = 0;
- int total_length = 0;
- struct uio uio;
-
- /* Initialization of the uio structure. */
- bzero(&uio, sizeof (uio));
- uio.uio_iov = msg->msg_iov;
- uio.uio_iovcnt = msg->msg_iovlen;
- uio.uio_segflg = UIO_SYSSPACE;
-
- for (i = 0; i < msg->msg_iovlen; i++) {
- total_length += (msg->msg_iov)[i].iov_len;
- }
- uio.uio_resid = total_length;
-
- (void) sosendmsg((struct sonode *)socket, msg, &uio);
- return (total_length - uio.uio_resid);
-}
-
-/* ARGSUSED */
-static
-ssize_t
-iscsi_recvmsg(void *socket, struct msghdr *msg, int flags)
-{
- int i = 0;
- int total_length = 0;
- struct uio uio;
-
- /* Initialization of the uio structure. */
- bzero(&uio, sizeof (uio));
- uio.uio_iov = msg->msg_iov;
- uio.uio_iovcnt = msg->msg_iovlen;
- uio.uio_segflg = UIO_SYSSPACE;
-
- for (i = 0; i < msg->msg_iovlen; i++) {
- total_length += (msg->msg_iov)[i].iov_len;
- }
- uio.uio_resid = total_length;
-
- if (!sorecvmsg((struct sonode *)socket, msg, &uio)) {
- return (total_length - uio.uio_resid);
- }
-
- return (0);
-}
-
-static
-int
-iscsi_getsockname(void *socket)
-{
- return (sogetsockname((struct sonode *)socket));
-}
-
-static
-int
-iscsi_getsockopt(void *socket, int level, int option_name,
- void *option_val, int *option_len, int flags)
-{
- return (sogetsockopt((struct sonode *)socket, level,
- option_name, option_val, (socklen_t *)option_len, flags));
-}
-
-static
-int
-iscsi_setsockopt(void *socket, int level, int option_name,
- void *option_val, int option_len)
-{
- return (sosetsockopt((struct sonode *)socket, level,
- option_name, option_val, option_len));
-}
-
-static
-int
-iscsi_shutdown(void *socket, int how)
-{
- return (soshutdown((struct sonode *)socket, how));
-}
-
-static
-void
-iscsi_close(void *socket)
-{
- vnode_t *vp = SOTOV((struct sonode *)socket);
- (void) soshutdown((struct sonode *)socket, 2);
- (void) VOP_CLOSE(vp, 0, 1, 0, kcred, NULL);
- VN_RELE(vp);
-}
-
-static
-int
-iscsi_poll(void *socket, clock_t timeout)
-{
- int pflag;
- uchar_t pri;
- rval_t rval;
-
- pri = 0;
- pflag = MSG_ANY;
- return (kstrgetmsg(SOTOV((struct sonode *)socket), NULL, NULL,
- &pri, &pflag, timeout, &rval));
-}
-
-transport_services_t
-*get_hba_transport()
-{
- if (hba_transport == NULL) {
- hba_transport = kmem_zalloc(sizeof (transport_services_t),
- KM_SLEEP);
- hba_transport->tcp_conf.valid = B_FALSE;
- hba_transport->socket = iscsi_socket;
- hba_transport->bind = iscsi_bind;
- hba_transport->connect = iscsi_connect;
- hba_transport->listen = iscsi_listen;
- hba_transport->accept = iscsi_accept;
- hba_transport->sendmsg = iscsi_sendmsg;
- hba_transport->recvmsg = iscsi_recvmsg;
- hba_transport->getsockname = iscsi_getsockname;
- hba_transport->getsockopt = iscsi_getsockopt;
- hba_transport->setsockopt = iscsi_setsockopt;
- hba_transport->shutdown = iscsi_shutdown;
- hba_transport->close = iscsi_close;
- hba_transport->poll = iscsi_poll;
- }
-
- return (hba_transport);
-}
-
-void
-free_hba_transport(transport_services_t *hba_transport)
-{
- ASSERT(hba_transport != NULL);
- kmem_free(hba_transport, sizeof (transport_services_t));
- hba_transport = NULL;
-}
diff --git a/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_transport.h b/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_transport.h
deleted file mode 100644
index 491288a32f..0000000000
--- a/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_transport.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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
- * or http://www.opensolaris.org/os/licensing.
- * 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 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _ISCSI_TRANSPORT_H
-#define _ISCSI_TRANSPORT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <transport_services.h>
-
-extern transport_services_t *get_hba_transport(void);
-extern void free_hba_transport(transport_services_t *hba_transport);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ISCSI_TRANSPORT_H */
diff --git a/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_utils.c b/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_utils.c
deleted file mode 100644
index 8e0b9daf13..0000000000
--- a/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi_utils.c
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * 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
- * or http://www.opensolaris.org/os/licensing.
- * 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 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-
-#include <sys/types.h>
-#include <sys/sunddi.h> /* declares: bcopy(), etc.. */
-#include <sys/file.h> /* defines: FKIOCTL */
-#include <sys/socket.h> /* AF_INET & company */
-#include <sys/cred.h> /* kcred */
-#include <netinet/in.h> /* declares: sa_family_t for socketvar.h */
-#include <netinet/tcp.h> /* TCP */
-#include <sys/stropts.h> /* strbuf for socketvar.h */
-#include <sys/ddi.h> /* getmajor */
-
-#include "iscsi.h"
-#include <iscsi_if.h>
-
-/*
- * Very specific set of file type function calls which are ONLY used by the
- * iSCSI driver.
- */
-#define ISCSID_GETF 16
-
-int iscsid_notify_threshold = ISCSI_TCP_CNOTIFY_THRESHOLD_DEFAULT;
-int iscsid_abort_threshold = ISCSI_TCP_CABORT_THRESHOLD_DEFAULT;
-
-static kmutex_t iscsid_getf_lock;
-static file_t *iscsid_fd[ISCSID_GETF];
-
-/*
- * util_locks_init -- initialize what ever locks local file will use
- */
-/* ARGSUSED */
-boolean_t
-iscsi_util_locks_init(boolean_t restart)
-{
- mutex_init(&iscsid_getf_lock, NULL, MUTEX_DRIVER, NULL);
- return (B_TRUE);
-}
-
-/*
- * iscsid_getf -- given a file descriptor returns a file pointer
- */
-static file_t *
-iscsid_getf(int fdes)
-{
- file_t *fp = NULL;
-
- mutex_enter(&iscsid_getf_lock);
- if ((fdes >= 0) && (fdes < ISCSID_GETF)) {
- fp = iscsid_fd[fdes];
- if (fp != NULL)
- mutex_enter(&fp->f_tlock);
- }
- mutex_exit(&iscsid_getf_lock);
-
- return (fp);
-}
-
-/*
- * iscsid_releasef -- release lock on file pointer
- */
-static void
-iscsid_releasef(int fdes)
-{
- file_t *fp;
-
- mutex_enter(&iscsid_getf_lock);
- if ((fdes >= 0) && (fdes < ISCSID_GETF)) {
- fp = iscsid_fd[fdes];
- mutex_exit(&fp->f_tlock);
- }
- mutex_exit(&iscsid_getf_lock);
-}
-
-/*
- * iscsid_setf -- stores the file pointer in an empty slot returning index
- */
-static int
-iscsid_setf(file_t *fp)
-{
- int i = -1;
-
- mutex_enter(&iscsid_getf_lock);
- for (i = 0; i < ISCSID_GETF; i++) {
- if (iscsid_fd[i] == 0) {
- iscsid_fd[i] = fp;
- break;
- }
- }
- mutex_exit(&iscsid_getf_lock);
- return (i);
-}
-
-int iscsid_errno;
-
-/*
- * iscsid_freef -- gets the file pointer based on index and releases memory.
- */
-static void
-iscsid_freef(int fdes)
-{
- file_t *fp;
-
- mutex_enter(&iscsid_getf_lock);
- if ((fdes >= 0) && (fdes < ISCSID_GETF)) {
- fp = iscsid_fd[fdes];
- unfalloc(fp);
- iscsid_fd[fdes] = NULL;
- }
- mutex_exit(&iscsid_getf_lock);
-}
-
-/*
- * iscsid_open -- acts like syscall open, but works for kernel
- *
- * Note: This works for regular files only. No umask is provided to
- * vn_open which means whatever mode is passed in will be used to
- * create a file.
- */
-int
-iscsid_open(char *path, int flags, int mode)
-{
- file_t *fp = NULL;
- vnode_t *vp = NULL;
- int fdes = -1,
- fflags;
-
- /*
- * Need to convert from user mode flags to file system flags.
- * It's unfortunate that the kernel doesn't define a mask for
- * the read/write bits which would make this conversion easier.
- * Only O_RDONLY/O_WRONLY/O_RDWR are different than their FXXXXX
- * counterparts. If one was provided something like
- * fflags = ((flags & mask) + 1) | (flags & ~mask)
- * would work. But, that would only be true if the relationship
- * be O_XXX and FXXX was defined and it's not. So we have the
- * following.
- */
- if (flags & O_WRONLY)
- fflags = FWRITE;
- else if (flags & O_RDWR)
- fflags = FWRITE | FREAD;
- else
- fflags = FREAD;
-
- /*
- * Now that fflags has been initialized with the read/write bits
- * look at the other flags and OR them in.
- */
- if (flags & O_CREAT)
- fflags |= FCREAT;
- if (flags & O_TRUNC)
- fflags |= FTRUNC;
-
- if (iscsid_errno = vn_open(path, UIO_SYSSPACE, fflags,
- mode & MODEMASK, &vp, CRCREAT, 0)) {
- return (-1);
- }
-
- if (falloc(vp, fflags, &fp, NULL) != 0) {
- VN_RELE(vp);
- return (-1);
- }
- /* ---- falloc returns with f_tlock held on success ---- */
- mutex_exit(&fp->f_tlock);
-
- if ((fdes = iscsid_setf(fp)) == -1) {
- VN_RELE(vp);
- }
- return (fdes);
-}
-
-/*
- * iscsid_close -- closes down the file by releasing locks and memory.
- */
-int
-iscsid_close(int fdes)
-{
- file_t *fp;
- vnode_t *vp;
-
- if ((fp = iscsid_getf(fdes)) == NULL)
- return (-1);
- vp = fp->f_vnode;
-
- (void) VOP_CLOSE(vp, fp->f_flag, 1, 0, kcred, NULL);
- VN_RELE(vp);
- /*
- * unfalloc which is called from here will do a mutex_exit
- * on t_lock in the fp. So don't call iscsid_releasef() here.
- */
- iscsid_freef(fdes);
-
- return (0);
-}
-
-/*
- * iscsid_remove -- remove file from filesystem
- */
-int
-iscsid_remove(char *filename)
-{
- return (vn_remove(filename, UIO_SYSSPACE, RMFILE));
-}
-
-/*
- * iscsid_rename -- rename file from one name to another
- */
-int
-iscsid_rename(char *oldname, char *newname)
-{
- return (vn_rename(oldname, newname, UIO_SYSSPACE));
-}
-
-/*
- * iscsid_rw -- common read/write code. Very simplistic.
- */
-static ssize_t
-iscsid_rw(int fdes, void *cbuf, ssize_t count, enum uio_rw rw)
-{
- file_t *fp;
- vnode_t *vp;
- ssize_t resid = 0;
-
- if ((fp = iscsid_getf(fdes)) == NULL)
- return (-1);
- vp = fp->f_vnode;
-
- if (iscsid_errno = vn_rdwr(rw, vp, (caddr_t)cbuf, count, fp->f_offset,
- UIO_SYSSPACE, 0, RLIM64_INFINITY, kcred, &resid)) {
- iscsid_releasef(fdes);
- return (-1);
- }
-
- if ((count - resid) > 0)
- fp->f_offset += count;
-
- iscsid_releasef(fdes);
- return (count - resid);
-}
-
-/*
- * iscsid_write -- kernel write function
- */
-ssize_t
-iscsid_write(int fdes, void *cbuf, ssize_t count)
-{
- return (iscsid_rw(fdes, cbuf, count, UIO_WRITE));
-}
-
-/*
- * iscsid_read -- kernel read function
- */
-ssize_t
-iscsid_read(int fdes, void *cbuf, ssize_t count)
-{
- return (iscsid_rw(fdes, cbuf, count, UIO_READ));
-}
-
-/*
- * iscsid_sendto -- kernel callable sendto function
- */
-ssize_t
-iscsid_sendto(struct sonode *so, void *buffer, size_t len,
- struct sockaddr *name, socklen_t namelen)
-{
- struct nmsghdr lmsg;
- struct uio auio;
- struct iovec aiov[1];
- int error;
-
- if ((ssize_t)len < 0) {
- iscsid_errno = EINVAL;
- return (-1);
- }
-
- bzero(&lmsg, sizeof (lmsg));
- bzero(&auio, sizeof (auio));
-
- aiov[0].iov_base = buffer;
- aiov[0].iov_len = len;
- auio.uio_loffset = 0;
- auio.uio_iov = aiov;
- auio.uio_iovcnt = 1;
- auio.uio_resid = len;
- auio.uio_segflg = UIO_SYSSPACE;
- auio.uio_limit = 0;
-
- lmsg.msg_name = name;
- lmsg.msg_namelen = namelen;
-
- error = sosendmsg(so, &lmsg, &auio);
-
- if (error != 0)
- return (-1);
- return (len - auio.uio_resid);
-}
-
-/*
- * iscsid_recvfrom -- kernel callable recvfrom routine
- */
-ssize_t
-iscsid_recvfrom(struct sonode *so, void *buffer, size_t len)
-{
- struct nmsghdr lmsg;
- struct uio auio;
- struct iovec aiov[1];
- int error;
-
- aiov[0].iov_base = buffer;
- aiov[0].iov_len = len;
- auio.uio_loffset = 0;
- auio.uio_iov = aiov;
- auio.uio_iovcnt = 1;
- auio.uio_resid = len;
- auio.uio_segflg = UIO_SYSSPACE;
- auio.uio_limit = 0;
-
- lmsg.msg_name = NULL;
- lmsg.msg_namelen = 0;
- lmsg.msg_control = NULL;
- lmsg.msg_controllen = 0;
- lmsg.msg_flags = 0;
-
- error = sorecvmsg(so, &lmsg, &auio);
- if (error) {
- iscsid_errno = error;
- return (-1);
- }
-
- return (len - auio.uio_resid);
-}
-
-/*
- * iscsi_discovery_event -- send event associated with discovery operations
- *
- * Each discovery event has a start and end event. Which is sent is based
- * on the boolean argument start with the obvious results.
- */
-void
-iscsi_discovery_event(iscsi_hba_t *ihp, iSCSIDiscoveryMethod_t m,
- boolean_t start)
-{
- char *subclass = NULL;
-
- mutex_enter(&ihp->hba_discovery_events_mutex);
- switch (m) {
- case iSCSIDiscoveryMethodStatic:
- if (start == B_TRUE)
- subclass = ESC_ISCSI_STATIC_START;
- else {
- ihp->hba_discovery_events |= iSCSIDiscoveryMethodStatic;
- subclass = ESC_ISCSI_STATIC_END;
- }
- break;
-
- case iSCSIDiscoveryMethodSendTargets:
- if (start == B_TRUE)
- subclass = ESC_ISCSI_SEND_TARGETS_START;
- else {
- ihp->hba_discovery_events |=
- iSCSIDiscoveryMethodSendTargets;
- subclass = ESC_ISCSI_SEND_TARGETS_END;
- }
-
- break;
-
- case iSCSIDiscoveryMethodSLP:
- if (start == B_TRUE)
- subclass = ESC_ISCSI_SLP_START;
- else {
- ihp->hba_discovery_events |= iSCSIDiscoveryMethodSLP;
- subclass = ESC_ISCSI_SLP_END;
- }
- break;
-
- case iSCSIDiscoveryMethodISNS:
- if (start == B_TRUE)
- subclass = ESC_ISCSI_ISNS_START;
- else {
- ihp->hba_discovery_events |= iSCSIDiscoveryMethodISNS;
- subclass = ESC_ISCSI_ISNS_END;
- }
- break;
-
- }
- mutex_exit(&ihp->hba_discovery_events_mutex);
- iscsi_send_sysevent(ihp, subclass, NULL);
-}
-
-/*
- * iscsi_send_sysevent -- send sysevent using iscsi class
- */
-void
-iscsi_send_sysevent(iscsi_hba_t *ihp, char *subclass, nvlist_t *np)
-{
- (void) ddi_log_sysevent(ihp->hba_dip, DDI_VENDOR_SUNW, EC_ISCSI,
- subclass, np, NULL, DDI_SLEEP);
-}
diff --git a/usr/src/uts/common/io/scsi/adapters/iscsi/transport_services.c b/usr/src/uts/common/io/scsi/adapters/iscsi/transport_services.c
deleted file mode 100644
index 959aeb54ce..0000000000
--- a/usr/src/uts/common/io/scsi/adapters/iscsi/transport_services.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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
- * or http://www.opensolaris.org/os/licensing.
- * 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 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include "transport_services.h"
-
-#ifdef _KERNEL
-#include <sys/sunddi.h>
-#else
-#include <stdlib.h>
-#endif
-
-/* For now there is only one HBA instance (i.e., the software initiator) */
-static transport_services_t *registered_transport = NULL;
-
-/* ARGSUSED */
-void transport_reg(transport_services_t *transport, uint8_t *isid) {
- ASSERT(registered_transport == NULL);
- /* Associate the transport service structure with the given ISID */
- registered_transport = transport;
-}
-
-/* ARGSUSED */
-void transport_dereg(uint8_t *isid) {
- ASSERT(registered_transport != NULL);
- /* Look up the registered transport service and deregister it */
- if (registered_transport) {
- registered_transport = NULL;
- }
-}
-
-/* ARGSUSED */
-transport_services_t *transport_lookup(uint8_t *lhba_handle) {
- /*
- * Until iSCSI DDI comes along the transport service only supports one
- * HBA instance (i.e., the software initiator). Hence we always
- * return the registered transport regardless of the LHBA handle.
- */
- return (registered_transport);
-}
diff --git a/usr/src/uts/common/io/scsi/adapters/iscsi/transport_services.h b/usr/src/uts/common/io/scsi/adapters/iscsi/transport_services.h
deleted file mode 100644
index 35af645d39..0000000000
--- a/usr/src/uts/common/io/scsi/adapters/iscsi/transport_services.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * 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
- * or http://www.opensolaris.org/os/licensing.
- * 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 2008 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _TRANSPORT_SERVICES_H
-#define _TRANSPORT_SERVICES_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/socket.h>
-#include <sys/types.h>
-
-typedef struct transport_services {
- /*
- * TCP configuration.
- */
- struct {
- boolean_t valid;
- int sndbuf;
- int rcvbuf;
- int nodelay;
- int conn_notify_threshold;
- int conn_abort_threshold;
- int abort_threshold;
- } tcp_conf;
-
- void* (*socket)(int domain, int, int);
- int (*bind)(void *, struct sockaddr *, int, int, int);
- int (*connect)(void *, struct sockaddr *, int, int, int);
- int (*listen)(void *, int);
- void* (*accept)(void *, struct sockaddr *, int *);
- ssize_t (*sendmsg)(void *, struct msghdr *, int);
- ssize_t (*recvmsg)(void *, struct msghdr *, int);
- int (*getsockname)(void *);
- int (*getsockopt)(void *, int, int, void *, int *, int);
- int (*setsockopt)(void *, int, int, void *, int);
- int (*shutdown)(void *, int);
- void (*close)(void *);
- int (*poll)(void *, clock_t);
-} transport_services_t;
-
-void transport_reg(transport_services_t *transport, uint8_t *lhba_handle);
-
-void transport_dereg(uint8_t *lhba_handle);
-
-transport_services_t *transport_lookup(uint8_t *lhba_handle);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _TRANSPORT_SERVICES_H */