diff options
author | Robert Johnston <Robert.Johnston@Sun.COM> | 2010-02-24 12:02:18 -0800 |
---|---|---|
committer | Robert Johnston <Robert.Johnston@Sun.COM> | 2010-02-24 12:02:18 -0800 |
commit | 81d9f076db88c1f40c85831ce1ebb444a209c5a8 (patch) | |
tree | 66b1378ee7468f6b35d6806d112698353a5ac903 /usr/src/lib/libipmi/common/libipmi.c | |
parent | 439b3dea6216344ffd0d8911f76442c317de8ca3 (diff) | |
download | illumos-joyent-81d9f076db88c1f40c85831ce1ebb444a209c5a8.tar.gz |
6896932 libipmi needs to support the IP transport
6925587 fmd is core dumping continuously on specific platforms in s10u9_03
--HG--
rename : usr/src/lib/libipmi/common/ipmi_lan.c => usr/src/lib/libipmi/common/ipmi_lancfg.c
Diffstat (limited to 'usr/src/lib/libipmi/common/libipmi.c')
-rw-r--r-- | usr/src/lib/libipmi/common/libipmi.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/usr/src/lib/libipmi/common/libipmi.c b/usr/src/lib/libipmi/common/libipmi.c index db96e1b30f..d678dc8257 100644 --- a/usr/src/lib/libipmi/common/libipmi.c +++ b/usr/src/lib/libipmi/common/libipmi.c @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -31,7 +31,7 @@ #include "ipmi_impl.h" ipmi_handle_t * -ipmi_open(int *errp, char **msg) +ipmi_open(int *errp, char **msg, uint_t xport_type, nvlist_t *params) { ipmi_handle_t *ihp; static char errmsg[48]; @@ -46,12 +46,21 @@ ipmi_open(int *errp, char **msg) return (NULL); } - /* /dev/bmc is the only currently available transport */ - ihp->ih_transport = &ipmi_transport_bmc; + switch (xport_type) { + case IPMI_TRANSPORT_BMC: + ihp->ih_transport = &ipmi_transport_bmc; + break; + case IPMI_TRANSPORT_LAN: + ihp->ih_transport = &ipmi_transport_lan; + break; + default: + *msg = "invalid transport type specified"; + return (NULL); + } ihp->ih_retries = 3; - if ((ihp->ih_tdata = ihp->ih_transport->it_open(ihp)) == NULL || + if ((ihp->ih_tdata = ihp->ih_transport->it_open(ihp, params)) == NULL || ipmi_sdr_init(ihp) != 0 || ipmi_entity_init(ihp) != 0) { *errp = ihp->ih_errno; if (msg) { |