Lines Matching refs:par
100 * par The parameter.
104 register_event(iscsi_register_event_parameters_t *par)
112 par->status = ISCSI_STATUS_NO_RESOURCES;
123 par->event_id = handler->evh_id = handler_id;
131 par->status = ISCSI_STATUS_SUCCESS;
132 DEB(5, ("Register Event OK, ID %d\n", par->event_id));
141 * par The parameter.
145 deregister_event(iscsi_register_event_parameters_t *par)
151 handler = find_handler(par->event_id);
154 DEB(1, ("Deregister Event ID %d not found\n", par->event_id));
155 par->status = ISCSI_STATUS_INVALID_EVENT_ID;
172 par->status = ISCSI_STATUS_SUCCESS;
173 DEB(5, ("Deregister Event ID %d complete\n", par->event_id));
182 * par The parameter.
187 check_event(iscsi_wait_event_parameters_t *par, bool wait)
194 handler = find_handler(par->event_id);
197 DEBOUT(("Wait Event ID %d not found\n", par->event_id));
198 par->status = ISCSI_STATUS_INVALID_EVENT_ID;
203 DEBOUT(("Wait Event ID %d already waiting\n", par->event_id));
204 par->status = ISCSI_STATUS_EVENT_WAITING;
207 par->status = ISCSI_STATUS_SUCCESS;
208 DEB(99, ("Wait Event ID %d\n", par->event_id));
216 par->status = ISCSI_STATUS_LIST_EMPTY;
219 if (par->status != ISCSI_STATUS_SUCCESS) {
222 handler->evh_waiter = par;
226 par->status = ISCSI_STATUS_LIST_EMPTY;
233 par->connection_id = evt->ev_connection_id;
234 par->session_id = evt->ev_session_id;
235 par->event_kind = evt->ev_event_kind;
236 par->reason = evt->ev_reason;
707 * par IN/OUT: The login parameters
717 create_connection(iscsi_login_parameters_t *par, session_t *sess,
730 fd_close(par->socket);
732 par->status = ISCSI_STATUS_MAXED_CONNECTIONS;
741 fd_close(par->socket);
743 par->status = ISCSI_STATUS_NO_RESOURCES;
747 rc = get_socket(par->socket, &conn->c_sock);
749 fd_close(par->socket);
752 DEBOUT(("Invalid socket %d\n", par->socket));
754 par->status = ISCSI_STATUS_INVALID_SOCKET;
759 par->socket, conn->c_sock));
767 par->connection_id = conn->c_id = sess->s_conn_id;
792 conn->c_login_par = par;
809 par->status = ISCSI_STATUS_NO_RESOURCES;
842 par->status = ISCSI_STATUS_NO_RESOURCES;
856 par->status = rc;
865 par->status = sess->s_terminating;
886 * par IN/OUT: The login parameters
896 recreate_connection(iscsi_login_parameters_t *par, session_t *sess,
916 if (fd_getfile(par->socket) != NULL)
917 rc = fd_close(par->socket);
919 par->status = ISCSI_STATUS_MAXED_CONNECTIONS;
928 rc = get_socket(par->socket, &conn->c_sock);
931 fd_close(par->socket);
934 DEBOUT(("Invalid socket %d\n", par->socket));
935 par->status = ISCSI_STATUS_INVALID_SOCKET;
940 par->socket, conn->c_sock));
943 conn->c_login_par = par;
972 par->status = rc;
977 par->status = ISCSI_STATUS_SUCCESS;
1019 par->status));
1032 * par The login parameters
1038 check_login_pars(iscsi_login_parameters_t *par)
1042 if (par->is_present.auth_info) {
1045 if (par->auth_info.auth_number > ISCSI_AUTH_OPTIONS) {
1046 DEBOUT(("Auth number invalid: %d\n", par->auth_info.auth_number));
1050 if (par->auth_info.auth_number > 2) {
1051 DEBOUT(("Auth number invalid: %d\n", par->auth_info.auth_number));
1055 for (i = 0, n = 0; i < par->auth_info.auth_number; i++) {
1057 if (par->auth_info.auth_type[i] < ISCSI_AUTH_None) {
1059 par->auth_info.auth_type[i]));
1063 if (par->auth_info.auth_type[i] > ISCSI_AUTH_CHAP) {
1065 par->auth_info.auth_type[i]));
1068 n = max(n, par->auth_info.auth_type[i]);
1071 if (!par->is_present.password ||
1072 (par->auth_info.mutual_auth &&
1073 !par->is_present.target_password)) {
1080 if (par->login_type != ISCSI_LOGINTYPE_DISCOVERY &&
1081 !par->is_present.TargetName) {
1082 DEBOUT(("Target name missing, login type %d\n", par->login_type));
1085 if (par->is_present.MaxRecvDataSegmentLength) {
1086 if (par->MaxRecvDataSegmentLength < 512 ||
1087 par->MaxRecvDataSegmentLength > 0xffffff) {
1089 par->MaxRecvDataSegmentLength));
1105 * par IN/OUT: The login parameters
1110 login(iscsi_login_parameters_t *par, struct lwp *l, device_t dev)
1119 par->status = ISCSI_STATUS_NO_INITIATOR_NAME;
1123 if ((par->status = check_login_pars(par)) != 0)
1130 par->status = ISCSI_STATUS_NO_RESOURCES;
1145 par->session_id = sess->s_id = current_id;
1149 sess->s_login_type = par->login_type;
1152 if ((rc = create_connection(par, sess, l)) != 0) {
1168 if (par->login_type == ISCSI_LOGINTYPE_MAP) {
1169 copyinstr(par->TargetName, sess->s_tgtname,
1174 kill_session(par->session_id, ISCSI_STATUS_MAP_FAILED,
1176 par->status = ISCSI_STATUS_MAP_FAILED;
1188 * par IN/OUT: The login parameters
1192 logout(iscsi_logout_parameters_t *par)
1196 DEB(5, ("ISCSI: logout session %d\n", par->session_id));
1199 if ((session = find_session(par->session_id)) == NULL) {
1201 DEBOUT(("Session %d not found\n", par->session_id));
1202 par->status = ISCSI_STATUS_INVALID_SESSION_ID;
1207 par->status = ISCSI_STATUS_SUCCESS;
1209 kill_session(par->session_id,
1220 * par IN/OUT: The login parameters
1225 add_connection(iscsi_login_parameters_t *par, struct lwp *l)
1229 DEB(5, ("ISCSI: add_connection to session %d\n", par->session_id));
1232 if ((session = find_session(par->session_id)) == NULL) {
1234 DEBOUT(("Session %d not found\n", par->session_id));
1235 par->status = ISCSI_STATUS_INVALID_SESSION_ID;
1240 par->status = check_login_pars(par);
1241 if (par->status)
1244 return create_connection(par, session, l);
1253 * par IN/OUT: The remove parameters
1257 remove_connection(iscsi_remove_parameters_t *par)
1263 par->connection_id, par->session_id));
1266 if ((session = find_session(par->session_id)) == NULL) {
1268 DEBOUT(("Session %d not found\n", par->session_id));
1269 par->status = ISCSI_STATUS_INVALID_SESSION_ID;
1273 if ((conn = find_connection(session, par->connection_id)) == NULL) {
1276 par->connection_id, par->session_id));
1278 par->status = ISCSI_STATUS_INVALID_CONNECTION_ID;
1283 par->status = ISCSI_STATUS_SUCCESS;
1293 * par IN/OUT: The login parameters
1298 restore_connection(iscsi_login_parameters_t *par, struct lwp *l)
1304 par->connection_id, par->session_id));
1307 if ((sess = find_session(par->session_id)) == NULL) {
1309 DEBOUT(("Session %d not found\n", par->session_id));
1310 par->status = ISCSI_STATUS_INVALID_SESSION_ID;
1313 if ((conn = find_connection(sess, par->connection_id)) == NULL) {
1316 par->connection_id, par->session_id));
1317 par->status = ISCSI_STATUS_INVALID_CONNECTION_ID;
1323 par->status = ISCSI_STATUS_SUCCESS;
1328 if ((par->status = check_login_pars(par)) == 0) {
1329 recreate_connection(par, sess, conn, l);
1341 * par IN/OUT: The iocommand parameters
1346 io_command(iscsi_iocommand_parameters_t *par, struct lwp *l)
1348 uint32_t datalen = par->req.datalen;
1353 DEB(9, ("ISCSI: io_command, SID=%d, lun=%" PRIu64 "\n", par->session_id, par->lun));
1355 if ((session = find_session(par->session_id)) == NULL) {
1357 DEBOUT(("Session %d not found\n", par->session_id));
1358 par->status = ISCSI_STATUS_INVALID_SESSION_ID;
1363 par->req.senselen_used = 0;
1364 par->req.datalen_used = 0;
1365 par->req.error = 0;
1366 par->req.status = 0;
1367 par->req.retsts = SCCMD_UNKNOWN; /* init to failure code */
1369 if (par->req.cmdlen > 16 || par->req.senselen > sizeof(par->req.sense)) {
1370 par->status = ISCSI_STATUS_PARAMETER_INVALID;
1377 par->status = ISCSI_STATUS_PARAMETER_INVALID;
1381 if ((par->req.flags & SCCMD_WRITE) != 0) {
1382 error = copyin(par->req.databuf, kbuf, datalen);
1385 par->status = ISCSI_STATUS_PARAMETER_INVALID;
1390 par->status = send_io_command(session, par->lun, &par->req,
1391 par->options.immediate, par->connection_id);
1394 if ((par->req.flags & SCCMD_READ) != 0) {
1395 (void) copyout(kbuf, par->req.databuf, datalen);
1399 switch (par->status) {
1401 par->req.retsts = SCCMD_OK;
1405 par->req.retsts = SCCMD_BUSY;
1410 par->req.retsts = SCCMD_TIMEOUT;
1414 par->req.retsts = (par->req.senselen_used) ? SCCMD_SENSE
1431 * par IN/OUT: The send_targets parameters
1435 send_targets(iscsi_send_targets_parameters_t *par)
1442 if ((sess = find_session(par->session_id)) == NULL) {
1444 DEBOUT(("Session %d not found\n", par->session_id));
1445 par->status = ISCSI_STATUS_INVALID_SESSION_ID;
1451 par->response_size, sess->s_target_list));
1454 rc = send_send_targets(sess, par->key);
1456 par->status = rc;
1461 par->response_total = rlen;
1462 cplen = min(par->response_size, rlen);
1464 copyout(sess->s_target_list, par->response_buffer, cplen);
1466 par->response_used = cplen;
1469 if (rlen && par->response_used == rlen) {
1474 par->status = ISCSI_STATUS_SUCCESS;
1483 * par IN/OUT: The set_node_name parameters
1487 set_node_name(iscsi_set_node_name_parameters_t *par)
1490 if (strlen(par->InitiatorName) >= ISCSI_STRING_LENGTH ||
1491 strlen(par->InitiatorAlias) >= ISCSI_STRING_LENGTH) {
1493 par->status = ISCSI_STATUS_PARAMETER_INVALID;
1496 strlcpy(iscsi_InitiatorName, par->InitiatorName, sizeof(iscsi_InitiatorName));
1497 strlcpy(iscsi_InitiatorAlias, par->InitiatorAlias, sizeof(iscsi_InitiatorAlias));
1498 memcpy(&iscsi_InitiatorISID, par->ISID, 6);
1511 par->status = ISCSI_STATUS_SUCCESS;
1520 * par IN/OUT: The status parameters
1524 connection_status(iscsi_conn_status_parameters_t *par)
1530 if ((sess = find_session(par->session_id)) == NULL) {
1532 par->status = ISCSI_STATUS_INVALID_SESSION_ID;
1536 if (par->connection_id) {
1537 conn = find_connection(sess, par->connection_id);
1541 par->status = (conn == NULL) ? ISCSI_STATUS_INVALID_CONNECTION_ID :
1545 par->session_id, par->connection_id, par->status));
1554 * par IN/OUT: The version parameters
1558 get_version(iscsi_get_version_parameters_t *par)
1560 par->status = ISCSI_STATUS_SUCCESS;
1561 par->interface_version = INTERFACE_VERSION;
1562 par->major = VERSION_MAJOR;
1563 par->minor = VERSION_MINOR;
1564 strlcpy(par->version_string, VERSION_STRING,
1565 sizeof(par->version_string));
1650 connection_timeout_co(void *par)
1652 connection_t *conn = par;
1690 ccb_timeout_co(void *par)
1692 ccb_t *ccb = par;
1735 iscsi_cleanup_thread(void *par)