summaryrefslogtreecommitdiff
path: root/usr/src/lib/libipmi/common/libipmi.c
diff options
context:
space:
mode:
authorRobert Johnston <Robert.Johnston@Sun.COM>2010-02-24 12:02:18 -0800
committerRobert Johnston <Robert.Johnston@Sun.COM>2010-02-24 12:02:18 -0800
commit81d9f076db88c1f40c85831ce1ebb444a209c5a8 (patch)
tree66b1378ee7468f6b35d6806d112698353a5ac903 /usr/src/lib/libipmi/common/libipmi.c
parent439b3dea6216344ffd0d8911f76442c317de8ca3 (diff)
downloadillumos-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.c19
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) {