diff options
| author | yz147064 <none@none> | 2007-03-21 09:48:58 -0700 |
|---|---|---|
| committer | yz147064 <none@none> | 2007-03-21 09:48:58 -0700 |
| commit | f595a68a3b8953a12aa778c2abd7642df8da8c3a (patch) | |
| tree | 1cef70a487a4a4ae84778794fcbf4a6853b9b2b5 /usr/src/lib/libmacadm/common/libmacadm.c | |
| parent | 880e0df1f057217de7e4bf18b04b73d93730bdfa (diff) | |
| download | illumos-gate-f595a68a3b8953a12aa778c2abd7642df8da8c3a.tar.gz | |
PSARC 2007/140 libdladm restructure
6329535 the use_cache argument of macadm_walk function should be removed
6454340 macadm_walk leaks
6509525 wrong error code when adding/removing ports to/from an aggregation
6509532 aggregation deleting fails but system reports success
6518572 the reference to dls_vlan should be released if setzoneid fails
6520149 show-linkprop stops showing full list of link properties if it fails to display one property
6535220 potential complicated library dependency and code duplication between libdladm and its friends
--HG--
rename : usr/src/lib/liblaadm/Makefile => deleted_files/usr/src/lib/liblaadm/Makefile
rename : usr/src/lib/liblaadm/Makefile.com => deleted_files/usr/src/lib/liblaadm/Makefile.com
rename : usr/src/lib/liblaadm/common/llib-llaadm => deleted_files/usr/src/lib/liblaadm/common/llib-llaadm
rename : usr/src/lib/liblaadm/common/mapfile-vers => deleted_files/usr/src/lib/liblaadm/common/mapfile-vers
rename : usr/src/lib/liblaadm/i386/Makefile => deleted_files/usr/src/lib/liblaadm/i386/Makefile
rename : usr/src/lib/liblaadm/sparc/Makefile => deleted_files/usr/src/lib/liblaadm/sparc/Makefile
rename : usr/src/lib/libmacadm/Makefile => deleted_files/usr/src/lib/libmacadm/Makefile
rename : usr/src/lib/libmacadm/Makefile.com => deleted_files/usr/src/lib/libmacadm/Makefile.com
rename : usr/src/lib/libmacadm/common/libmacadm.c => deleted_files/usr/src/lib/libmacadm/common/libmacadm.c
rename : usr/src/lib/libmacadm/common/libmacadm.h => deleted_files/usr/src/lib/libmacadm/common/libmacadm.h
rename : usr/src/lib/libmacadm/common/llib-lmacadm => deleted_files/usr/src/lib/libmacadm/common/llib-lmacadm
rename : usr/src/lib/libmacadm/common/mapfile-vers => deleted_files/usr/src/lib/libmacadm/common/mapfile-vers
rename : usr/src/lib/libmacadm/i386/Makefile => deleted_files/usr/src/lib/libmacadm/i386/Makefile
rename : usr/src/lib/libmacadm/sparc/Makefile => deleted_files/usr/src/lib/libmacadm/sparc/Makefile
rename : usr/src/lib/libwladm/Makefile => deleted_files/usr/src/lib/libwladm/Makefile
rename : usr/src/lib/libwladm/Makefile.com => deleted_files/usr/src/lib/libwladm/Makefile.com
rename : usr/src/lib/libwladm/common/llib-lwladm => deleted_files/usr/src/lib/libwladm/common/llib-lwladm
rename : usr/src/lib/libwladm/common/mapfile-vers => deleted_files/usr/src/lib/libwladm/common/mapfile-vers
rename : usr/src/lib/libwladm/i386/Makefile => deleted_files/usr/src/lib/libwladm/i386/Makefile
rename : usr/src/lib/libwladm/libwladm.xcl => deleted_files/usr/src/lib/libwladm/libwladm.xcl
rename : usr/src/lib/libwladm/sparc/Makefile => deleted_files/usr/src/lib/libwladm/sparc/Makefile
rename : usr/src/lib/liblaadm/common/liblaadm.c => usr/src/lib/libdladm/common/libdlaggr.c
rename : usr/src/lib/liblaadm/common/liblaadm.h => usr/src/lib/libdladm/common/libdlaggr.h
rename : usr/src/lib/libwladm/common/libwladm.c => usr/src/lib/libdladm/common/libdlwlan.c
rename : usr/src/lib/libwladm/common/libwladm.h => usr/src/lib/libdladm/common/libdlwlan.h
rename : usr/src/lib/libwladm/common/libwladm_impl.h => usr/src/lib/libdladm/common/libdlwlan_impl.h
Diffstat (limited to 'usr/src/lib/libmacadm/common/libmacadm.c')
| -rw-r--r-- | usr/src/lib/libmacadm/common/libmacadm.c | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/usr/src/lib/libmacadm/common/libmacadm.c b/usr/src/lib/libmacadm/common/libmacadm.c deleted file mode 100644 index 9e6061099d..0000000000 --- a/usr/src/lib/libmacadm/common/libmacadm.c +++ /dev/null @@ -1,137 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (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 2005 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include <stdio.h> -#include <sys/types.h> -#include <fcntl.h> -#include <unistd.h> -#include <stdlib.h> -#include <string.h> -#include <stropts.h> -#include <sys/dld.h> -#include <libdevinfo.h> - -#define _KERNEL -#include <sys/sysmacros.h> -#undef _KERNEL - -/* - * MAC Administration Library. - * - * This library is used by administration tools such as dladm(1M) to - * iterate through the list of MAC interfaces - * - */ - -typedef struct macadm_dev { - char md_name[MAXNAMELEN]; - struct macadm_dev *md_next; -} macadm_dev_t; - -typedef struct macadm_walk { - macadm_dev_t *mw_dev_list; -} macadm_walk_t; - -/* - * Local callback invoked for each DDI_NT_NET node. - */ -/* ARGSUSED */ -static int -i_macadm_apply(di_node_t node, di_minor_t minor, void *arg) -{ - macadm_walk_t *mwp = arg; - macadm_dev_t *mdp = mwp->mw_dev_list; - macadm_dev_t **lastp = &mwp->mw_dev_list; - char dev[MAXNAMELEN]; - - (void) snprintf(dev, MAXNAMELEN, "%s%d", - di_driver_name(node), di_instance(node)); - - /* - * Skip aggregations. - */ - if (strcmp("aggr", di_driver_name(node)) == 0) - return (DI_WALK_CONTINUE); - - while (mdp) { - /* - * Skip duplicates. - */ - if (strcmp(mdp->md_name, dev) == 0) - return (DI_WALK_CONTINUE); - - lastp = &mdp->md_next; - mdp = mdp->md_next; - } - - if ((mdp = malloc(sizeof (*mdp))) == NULL) - return (DI_WALK_CONTINUE); - - (void) strlcpy(mdp->md_name, dev, MAXNAMELEN); - mdp->md_next = NULL; - *lastp = mdp; - - return (DI_WALK_CONTINUE); -} - -/* - * Invoke the specified callback for each DDI_NT_MAC node. - */ -int -macadm_walk(void (*fn)(void *, const char *), void *arg, - boolean_t use_cache) -{ - di_node_t root; - macadm_walk_t mw; - macadm_dev_t *mdp; - uint_t flags; - - if (use_cache) { - flags = DINFOCACHE; - } else { - flags = DINFOSUBTREE | DINFOMINOR | DINFOPROP | DINFOFORCE; - } - - if ((root = di_init("/", flags)) == DI_NODE_NIL) { - return (-1); - } - mw.mw_dev_list = NULL; - - (void) di_walk_minor(root, DDI_NT_NET, DI_CHECK_ALIAS, &mw, - i_macadm_apply); - - di_fini(root); - - mdp = mw.mw_dev_list; - while (mdp) { - (*fn)(arg, mdp->md_name); - mdp = mdp->md_next; - } - - return (0); -} |
