Lines Matching refs:cmd

21 static void iscsit_dump_seq_list(struct iscsit_cmd *cmd)  in iscsit_dump_seq_list()  argument
27 cmd->init_task_tag); in iscsit_dump_seq_list()
29 for (i = 0; i < cmd->seq_count; i++) { in iscsit_dump_seq_list()
30 seq = &cmd->seq_list[i]; in iscsit_dump_seq_list()
39 static void iscsit_dump_pdu_list(struct iscsit_cmd *cmd) in iscsit_dump_pdu_list() argument
45 cmd->init_task_tag); in iscsit_dump_pdu_list()
47 for (i = 0; i < cmd->pdu_count; i++) { in iscsit_dump_pdu_list()
48 pdu = &cmd->pdu_list[i]; in iscsit_dump_pdu_list()
55 static void iscsit_dump_seq_list(struct iscsit_cmd *cmd) {} in iscsit_dump_seq_list() argument
56 static void iscsit_dump_pdu_list(struct iscsit_cmd *cmd) {} in iscsit_dump_pdu_list() argument
60 struct iscsit_cmd *cmd, in iscsit_ordered_seq_lists() argument
65 for (i = 0; i < cmd->seq_count; i++) { in iscsit_ordered_seq_lists()
66 if (cmd->seq_list[i].type != SEQTYPE_NORMAL) in iscsit_ordered_seq_lists()
68 cmd->seq_list[i].seq_send_order = seq_count++; in iscsit_ordered_seq_lists()
73 struct iscsit_cmd *cmd, in iscsit_ordered_pdu_lists() argument
78 for (i = 0; i < cmd->pdu_count; i++) { in iscsit_ordered_pdu_lists()
80 if (cmd->pdu_list[i].seq_no == seq_no) { in iscsit_ordered_pdu_lists()
81 cmd->pdu_list[i].pdu_send_order = pdu_send_order++; in iscsit_ordered_pdu_lists()
120 struct iscsit_cmd *cmd, in iscsit_randomize_pdu_lists() argument
126 for (pdu_count = 0; pdu_count < cmd->pdu_count; pdu_count++) { in iscsit_randomize_pdu_lists()
128 if (cmd->pdu_list[pdu_count].seq_no == seq_no) { in iscsit_randomize_pdu_lists()
141 cmd->pdu_list[seq_offset+i].pdu_send_order = array[i]; in iscsit_randomize_pdu_lists()
161 cmd->pdu_list[seq_offset+i].pdu_send_order = array[i]; in iscsit_randomize_pdu_lists()
170 struct iscsit_cmd *cmd, in iscsit_randomize_seq_lists() argument
174 u32 *array, seq_count = cmd->seq_count; in iscsit_randomize_seq_lists()
191 for (i = 0; i < cmd->seq_count; i++) { in iscsit_randomize_seq_lists()
192 if (cmd->seq_list[i].type != SEQTYPE_NORMAL) in iscsit_randomize_seq_lists()
194 cmd->seq_list[i].seq_send_order = array[j++]; in iscsit_randomize_seq_lists()
202 struct iscsit_cmd *cmd, in iscsit_determine_counts_for_list() argument
211 struct iscsit_conn *conn = cmd->conn; in iscsit_determine_counts_for_list()
213 if (cmd->se_cmd.data_direction == DMA_TO_DEVICE) in iscsit_determine_counts_for_list()
214 mdsl = cmd->conn->conn_ops->MaxXmitDataSegmentLength; in iscsit_determine_counts_for_list()
216 mdsl = cmd->conn->conn_ops->MaxRecvDataSegmentLength; in iscsit_determine_counts_for_list()
224 unsolicited_data_length = min(cmd->se_cmd.data_length, in iscsit_determine_counts_for_list()
227 while (offset < cmd->se_cmd.data_length) { in iscsit_determine_counts_for_list()
240 if ((offset + mdsl) >= cmd->se_cmd.data_length) { in iscsit_determine_counts_for_list()
242 (cmd->se_cmd.data_length - offset); in iscsit_determine_counts_for_list()
243 offset += (cmd->se_cmd.data_length - offset); in iscsit_determine_counts_for_list()
262 if ((offset + mdsl) >= cmd->se_cmd.data_length) { in iscsit_determine_counts_for_list()
263 offset += (cmd->se_cmd.data_length - offset); in iscsit_determine_counts_for_list()
286 struct iscsit_cmd *cmd, in iscsit_do_build_pdu_and_seq_lists() argument
292 struct iscsit_conn *conn = cmd->conn; in iscsit_do_build_pdu_and_seq_lists()
293 struct iscsi_pdu *pdu = cmd->pdu_list; in iscsit_do_build_pdu_and_seq_lists()
294 struct iscsi_seq *seq = cmd->seq_list; in iscsit_do_build_pdu_and_seq_lists()
296 if (cmd->se_cmd.data_direction == DMA_TO_DEVICE) in iscsit_do_build_pdu_and_seq_lists()
297 mdsl = cmd->conn->conn_ops->MaxXmitDataSegmentLength; in iscsit_do_build_pdu_and_seq_lists()
299 mdsl = cmd->conn->conn_ops->MaxRecvDataSegmentLength; in iscsit_do_build_pdu_and_seq_lists()
310 unsolicited_data_length = min(cmd->se_cmd.data_length, in iscsit_do_build_pdu_and_seq_lists()
313 while (offset < cmd->se_cmd.data_length) { in iscsit_do_build_pdu_and_seq_lists()
347 if ((offset + mdsl) >= cmd->se_cmd.data_length) { in iscsit_do_build_pdu_and_seq_lists()
351 (cmd->se_cmd.data_length - offset); in iscsit_do_build_pdu_and_seq_lists()
357 (cmd->se_cmd.data_length - offset)); in iscsit_do_build_pdu_and_seq_lists()
360 (cmd->se_cmd.data_length - offset); in iscsit_do_build_pdu_and_seq_lists()
361 offset += (cmd->se_cmd.data_length - offset); in iscsit_do_build_pdu_and_seq_lists()
399 if ((offset + mdsl) >= cmd->se_cmd.data_length) { in iscsit_do_build_pdu_and_seq_lists()
402 pdu[i].length = (cmd->se_cmd.data_length - offset); in iscsit_do_build_pdu_and_seq_lists()
408 (cmd->se_cmd.data_length - offset)); in iscsit_do_build_pdu_and_seq_lists()
410 offset += (cmd->se_cmd.data_length - offset); in iscsit_do_build_pdu_and_seq_lists()
447 if (iscsit_randomize_seq_lists(cmd, bl->type) in iscsit_do_build_pdu_and_seq_lists()
451 iscsit_ordered_seq_lists(cmd, bl->type); in iscsit_do_build_pdu_and_seq_lists()
454 if (iscsit_randomize_seq_lists(cmd, bl->type) in iscsit_do_build_pdu_and_seq_lists()
458 iscsit_ordered_seq_lists(cmd, bl->type); in iscsit_do_build_pdu_and_seq_lists()
461 iscsit_dump_seq_list(cmd); in iscsit_do_build_pdu_and_seq_lists()
466 if (iscsit_randomize_pdu_lists(cmd, bl->type) in iscsit_do_build_pdu_and_seq_lists()
470 iscsit_ordered_pdu_lists(cmd, bl->type); in iscsit_do_build_pdu_and_seq_lists()
473 if (iscsit_randomize_pdu_lists(cmd, bl->type) in iscsit_do_build_pdu_and_seq_lists()
477 iscsit_ordered_pdu_lists(cmd, bl->type); in iscsit_do_build_pdu_and_seq_lists()
480 iscsit_dump_pdu_list(cmd); in iscsit_do_build_pdu_and_seq_lists()
487 struct iscsit_cmd *cmd, in iscsit_build_pdu_and_seq_lists() argument
492 struct iscsit_conn *conn = cmd->conn; in iscsit_build_pdu_and_seq_lists()
506 if (cmd->data_direction == DMA_NONE) in iscsit_build_pdu_and_seq_lists()
512 if (cmd->data_direction == DMA_FROM_DEVICE) { in iscsit_build_pdu_and_seq_lists()
525 if (!cmd->immediate_data && !cmd->unsolicited_data) in iscsit_build_pdu_and_seq_lists()
527 else if (cmd->immediate_data && !cmd->unsolicited_data) in iscsit_build_pdu_and_seq_lists()
529 else if (!cmd->immediate_data && cmd->unsolicited_data) in iscsit_build_pdu_and_seq_lists()
531 else if (cmd->immediate_data && cmd->unsolicited_data) in iscsit_build_pdu_and_seq_lists()
535 iscsit_determine_counts_for_list(cmd, &bl, &seq_count, &pdu_count); in iscsit_build_pdu_and_seq_lists()
543 cmd->seq_list = seq; in iscsit_build_pdu_and_seq_lists()
544 cmd->seq_count = seq_count; in iscsit_build_pdu_and_seq_lists()
554 cmd->pdu_list = pdu; in iscsit_build_pdu_and_seq_lists()
555 cmd->pdu_count = pdu_count; in iscsit_build_pdu_and_seq_lists()
558 return iscsit_do_build_pdu_and_seq_lists(cmd, &bl); in iscsit_build_pdu_and_seq_lists()
562 struct iscsit_cmd *cmd, in iscsit_get_pdu_holder() argument
569 if (!cmd->pdu_list) { in iscsit_get_pdu_holder()
574 pdu = &cmd->pdu_list[0]; in iscsit_get_pdu_holder()
576 for (i = 0; i < cmd->pdu_count; i++) in iscsit_get_pdu_holder()
581 " %u, Length: %u\n", cmd->init_task_tag, offset, length); in iscsit_get_pdu_holder()
586 struct iscsit_cmd *cmd, in iscsit_get_pdu_holder_for_seq() argument
590 struct iscsit_conn *conn = cmd->conn; in iscsit_get_pdu_holder_for_seq()
593 if (!cmd->pdu_list) { in iscsit_get_pdu_holder_for_seq()
600 pdu = &cmd->pdu_list[cmd->pdu_start]; in iscsit_get_pdu_holder_for_seq()
602 for (i = 0; pdu[i].seq_no != cmd->seq_no; i++) { in iscsit_get_pdu_holder_for_seq()
609 if (pdu[i].pdu_send_order == cmd->pdu_send_order) { in iscsit_get_pdu_holder_for_seq()
610 cmd->pdu_send_order++; in iscsit_get_pdu_holder_for_seq()
615 cmd->pdu_start += cmd->pdu_send_order; in iscsit_get_pdu_holder_for_seq()
616 cmd->pdu_send_order = 0; in iscsit_get_pdu_holder_for_seq()
617 cmd->seq_no++; in iscsit_get_pdu_holder_for_seq()
619 if (cmd->pdu_start < cmd->pdu_count) in iscsit_get_pdu_holder_for_seq()
624 cmd->init_task_tag, cmd->pdu_send_order); in iscsit_get_pdu_holder_for_seq()
636 pdu = &cmd->pdu_list[seq->pdu_start]; in iscsit_get_pdu_holder_for_seq()
641 cmd->init_task_tag, seq->pdu_send_order, in iscsit_get_pdu_holder_for_seq()
655 cmd->init_task_tag, seq->pdu_send_order); in iscsit_get_pdu_holder_for_seq()
663 struct iscsit_cmd *cmd, in iscsit_get_seq_holder() argument
669 if (!cmd->seq_list) { in iscsit_get_seq_holder()
674 for (i = 0; i < cmd->seq_count; i++) { in iscsit_get_seq_holder()
677 cmd->seq_list[i].orig_offset, cmd->seq_list[i].xfer_len, in iscsit_get_seq_holder()
678 cmd->seq_list[i].seq_no); in iscsit_get_seq_holder()
680 if ((cmd->seq_list[i].orig_offset + in iscsit_get_seq_holder()
681 cmd->seq_list[i].xfer_len) >= in iscsit_get_seq_holder()
683 return &cmd->seq_list[i]; in iscsit_get_seq_holder()
687 " Offset: %u, Length: %u\n", cmd->init_task_tag, offset, in iscsit_get_seq_holder()