Main Page | Class List | Directories | File List | Class Members | File Members

cmd_conn.c File Reference

#include <errno.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
#include <OpenIPMI/ipmiif.h>
#include <OpenIPMI/ipmi_cmdlang.h>

Go to the source code of this file.

Defines

#define CMDS_CONN_LEN   (sizeof(cmds_conn)/sizeof(ipmi_cmdlang_init_t))

Functions

static void con_list_handler (ipmi_domain_t *domain, int conn, void *cb_data)
static void con_list (ipmi_domain_t *domain, void *cb_data)
static void con_info (ipmi_domain_t *domain, int conn, void *cb_data)
static void con_activate (ipmi_domain_t *domain, int conn, void *cb_data)
int ipmi_cmdlang_con_init (os_handler_t *os_hnd)

Variables

static ipmi_cmdlang_cmd_tconn_cmds
static ipmi_cmdlang_init_t cmds_conn []


Define Documentation

#define CMDS_CONN_LEN   (sizeof(cmds_conn)/sizeof(ipmi_cmdlang_init_t))
 

Definition at line 159 of file cmd_conn.c.

Referenced by ipmi_cmdlang_con_init().


Function Documentation

static void con_activate ipmi_domain_t domain,
int  conn,
void *  cb_data
[static]
 

Definition at line 120 of file cmd_conn.c.

References cmdlang, ipmi_cmdlang_s::err, ipmi_cmdlang_s::errstr, ipmi_cmdinfo_get_cmdlang(), ipmi_cmdlang_out(), ipmi_domain_activate_connection(), ipmi_domain_get_name(), IPMI_DOMAIN_NAME_LEN, ipmi_cmdlang_s::location, ipmi_cmdlang_s::objstr, ipmi_cmdlang_s::objstr_len, and p.

00121 {
00122     ipmi_cmd_info_t *cmd_info = cb_data;
00123     ipmi_cmdlang_t *cmdlang = ipmi_cmdinfo_get_cmdlang(cmd_info);
00124     int             rv;
00125     char            conn_name[IPMI_DOMAIN_NAME_LEN+20];
00126     int             p;
00127 
00128     rv = ipmi_domain_activate_connection(domain, conn);
00129     if (rv) {
00130         cmdlang->errstr = "Unable to activate connection";
00131         cmdlang->err = rv;
00132         ipmi_domain_get_name(domain, cmdlang->objstr,
00133                              cmdlang->objstr_len);
00134         cmdlang->location = "cmd_conn.c(con_activate)";
00135     }
00136 
00137     p = ipmi_domain_get_name(domain, conn_name, sizeof(conn_name));
00138     snprintf(conn_name+p, sizeof(conn_name)-p, ".%d", conn);
00139     ipmi_cmdlang_out(cmd_info, "Connection activated", conn_name);
00140 }

static void con_info ipmi_domain_t domain,
int  conn,
void *  cb_data
[static]
 

Definition at line 76 of file cmd_conn.c.

References ipmi_cmdlang_down(), ipmi_cmdlang_out(), ipmi_cmdlang_out_bool(), ipmi_cmdlang_out_int(), ipmi_cmdlang_up(), ipmi_domain_get_name(), ipmi_domain_is_connection_active(), ipmi_domain_is_connection_port_up(), ipmi_domain_is_connection_up(), IPMI_DOMAIN_NAME_LEN, ipmi_domain_num_connection_ports(), p, and port.

Referenced by domain_new(), and domain_open().

00077 {
00078     ipmi_cmd_info_t *cmd_info = cb_data;
00079     char            conn_name[IPMI_DOMAIN_NAME_LEN+20];
00080     int             p;
00081     int             rv;
00082     unsigned int    val;
00083     unsigned int    num;
00084     unsigned int    port;
00085 
00086     rv = ipmi_domain_is_connection_active(domain, conn, &val);
00087     if (rv)
00088         return;
00089 
00090     p = ipmi_domain_get_name(domain, conn_name, sizeof(conn_name));
00091     snprintf(conn_name+p, sizeof(conn_name)-p, ".%d", conn);
00092 
00093     ipmi_cmdlang_out(cmd_info, "Connection", NULL);
00094     ipmi_cmdlang_down(cmd_info);
00095     ipmi_cmdlang_out(cmd_info, "Name", conn_name);
00096     ipmi_cmdlang_out_bool(cmd_info, "Active", val);
00097     rv = ipmi_domain_is_connection_up(domain, conn, &val);
00098     if (!rv)
00099         ipmi_cmdlang_out_bool(cmd_info, "Up", val);
00100     rv = ipmi_domain_num_connection_ports(domain, conn, &num);
00101     if (!rv) {
00102         for (port=0; port<num; port++) {
00103             rv = ipmi_domain_is_connection_port_up(domain,
00104                                                    conn,
00105                                                    port,
00106                                                    &val);
00107             if (!rv) {
00108                 ipmi_cmdlang_out(cmd_info, "Port", NULL);
00109                 ipmi_cmdlang_down(cmd_info);
00110                 ipmi_cmdlang_out_int(cmd_info, "Number", port);
00111                 ipmi_cmdlang_out_bool(cmd_info, "Up", val);
00112                 ipmi_cmdlang_up(cmd_info);
00113             }
00114         }
00115     }
00116     ipmi_cmdlang_up(cmd_info);
00117 }

static void con_list ipmi_domain_t domain,
void *  cb_data
[static]
 

Definition at line 59 of file cmd_conn.c.

References con_list_handler(), ipmi_cmdlang_down(), ipmi_cmdlang_out(), ipmi_cmdlang_up(), ipmi_domain_get_name(), ipmi_domain_iterate_connections(), and IPMI_DOMAIN_NAME_LEN.

00060 {
00061     ipmi_cmd_info_t *cmd_info = cb_data;
00062     char             domain_name[IPMI_DOMAIN_NAME_LEN];
00063 
00064     ipmi_domain_get_name(domain, domain_name, sizeof(domain_name));
00065     ipmi_cmdlang_out(cmd_info, "Domain", NULL);
00066     ipmi_cmdlang_down(cmd_info);
00067     ipmi_cmdlang_out(cmd_info, "Name", domain_name);
00068     ipmi_cmdlang_out(cmd_info, "Connections", NULL);
00069     ipmi_cmdlang_down(cmd_info);
00070     ipmi_domain_iterate_connections(domain, con_list_handler, cb_data);
00071     ipmi_cmdlang_up(cmd_info);
00072     ipmi_cmdlang_up(cmd_info);
00073 }

static void con_list_handler ipmi_domain_t domain,
int  conn,
void *  cb_data
[static]
 

Definition at line 43 of file cmd_conn.c.

References cmdlang, ipmi_cmdlang_s::err, ipmi_cmdinfo_get_cmdlang(), ipmi_cmdlang_out(), ipmi_domain_get_name(), IPMI_DOMAIN_NAME_LEN, and p.

Referenced by con_list().

00044 {
00045     ipmi_cmd_info_t *cmd_info = cb_data;
00046     ipmi_cmdlang_t  *cmdlang = ipmi_cmdinfo_get_cmdlang(cmd_info);
00047     char            conn_name[IPMI_DOMAIN_NAME_LEN+20];
00048     int             p;
00049 
00050     if (cmdlang->err)
00051         return;
00052 
00053     p = ipmi_domain_get_name(domain, conn_name, sizeof(conn_name));
00054     snprintf(conn_name+p, sizeof(conn_name)-p, ".%d", conn);
00055     ipmi_cmdlang_out(cmd_info, "Name", conn_name);
00056 }

int ipmi_cmdlang_con_init os_handler_t os_hnd  ) 
 

Definition at line 162 of file cmd_conn.c.

References CMDS_CONN_LEN, and ipmi_cmdlang_reg_table().

Referenced by ipmi_cmdlang_init().

00163 {
00164     return ipmi_cmdlang_reg_table(cmds_conn, CMDS_CONN_LEN);
00165 }


Variable Documentation

ipmi_cmdlang_init_t cmds_conn[] [static]
 

Initial value:

{
    { "con", NULL,
      "- Commands dealing with connections",
      NULL, NULL, &conn_cmds},
    { "list", &conn_cmds,
      "<domain> - List all the connection in the domain",
      ipmi_cmdlang_domain_handler, con_list,  NULL },
    { "info", &conn_cmds,
      "<connection> - Dump information about a connection",
      ipmi_cmdlang_connection_handler, con_info, NULL },
    { "activate", &conn_cmds,
      "<connection> - Dump information about a connection",
      ipmi_cmdlang_connection_handler, con_activate, NULL },
}

Definition at line 144 of file cmd_conn.c.

ipmi_cmdlang_cmd_t* conn_cmds [static]
 

Definition at line 142 of file cmd_conn.c.


© sourcejam.com 2005-2008