diff options
author | John Forte <John.Forte@Sun.COM> | 2008-10-21 08:43:26 -0700 |
---|---|---|
committer | John Forte <John.Forte@Sun.COM> | 2008-10-21 08:43:26 -0700 |
commit | 73a9f52fa0e4b5d00dc5f3a6314e6837e47f88cf (patch) | |
tree | 0cccf9b8644b231bd83042026936bdf4d963efd9 | |
parent | 915ebf8da9f4ef3e7b2e34dd367f64d358a628d9 (diff) | |
download | illumos-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
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 <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> .</U></P> - <P>The Initial Developer of the Original Code is <U> [COMPLETE - THIS] </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"> </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 </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> </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> <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> .</u></p> -<p>The Initial Developer of the Original Code is <u> [COMPLETE THIS] </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 */ |