80 ocs_sli_port_t *sport;
84 uint32_t num_connections;
88 if (connections == NULL) {
89 ocs_log_test(ocs,
"Error: copy from user failed\n");
94 num_connections = ocs->hal.domain->node_instance_count;
105 OCS_M_NOWAIT | OCS_M_ZERO);
106 if (connection_info == NULL) {
107 ocs_ioctl_free(ocs, connections,
sizeof(*connections));
108 ocs_log_err(ocs,
"alloc for connection_info failed\n");
125 ocs_memcpy(connection_info[i].source_ip, cxn->
source_ip, 16);
128 ocs_memcpy(connection_info[i].dest_ip, cxn->
dest_ip, 16);
129 connection_info[i].
dest_port = cxn->dest_port;
137 if (ocs_copy_to_user(connections->
connections, connection_info,
139 ocs_free(ocs, connection_info,
sizeof(*connection_info));
140 ocs_ioctl_free(ocs, connections,
sizeof(*connections));
141 ocs_log_test(ocs,
"ocs_copy_to_user(1) failed\n");
146 if (ocs_ioctl_postprocess(ocs, (
void *)arg, connections,
sizeof(*connections))) {
147 ocs_free(ocs, connection_info,
sizeof(*connection_info));
148 ocs_log_test(ocs,
"copy_to_user(2) failed\n");
152 ocs_free(ocs, connection_info,
sizeof(*connection_info));
#define OCS_IOCTL_CMD_CONNECTION_INFO
connection info ioctl structure
void ocs_info_get_xport_address(ocs_t *ocs, ocs_ioctl_driver_info_t *info)
Retrieve transport port address.
int32_t ocs_device_ioctl_xport(ocs_t *ocs, unsigned int cmd, unsigned long arg)
Perform transport specific ioctl operation.
uint32_t connection_handle
struct ocs_ioctl_driver_info_t::@2::@4 iscsi
ocs_ioctl_connection_info_t * connections
DRIVER_INFO ioctl structure.
void * ocs_hal_get_ptr(ocs_hal_t *hal, ocs_hal_property_e prop)
union ocs_ioctl_driver_info_t::@2 hw_addr
#define ocs_list_foreach(list, item)
Iterate a linked list.