Lines Matching +full:test2 +full:. +full:good
4 * Copyright (c) 2003 Silicon Graphics International Corp.
5 * Copyright (c) 2014-2015 Alexander Motin <mav@FreeBSD.org>
6 * All rights reserved.
11 * 1. Redistributions of source code must retain the above copyright
13 * without modification.
14 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 * binary redistribution.
24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 * POSSIBILITY OF SUCH DAMAGES.
33 * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_io.h#5 $
36 * CAM Target Layer data movement structures/interface.
38 * Author: Ken Merry <ken@FreeBSD.org>
45 #include <stdbool.h>
48 #include <sys/queue.h>
49 #include <cam/scsi/scsi_all.h>
55 * and/or done stage.
63 * Uncomment this next line to enable the CTL I/O delay feature. You
64 * can delay I/O at two different points -- datamove and done. This is
66 * timeout), and for determining how long a host's timeout is.
83 * WARNING: Keep the data in/out/none flags where they are. They're used
84 * in conjunction with ctl_cmd_flags. See comment above ctl_cmd_flags
85 * definition in ctl_private.h.
153 * Number of CTL private areas.
168 #define CTL_LUN(io) ((io)->io_hdr.ctl_private[CTL_PRIV_LUN].ptrs[0])
169 #define CTL_SOFTC(io) ((io)->io_hdr.ctl_private[CTL_PRIV_LUN].ptrs[1])
170 #define CTL_BACKEND_LUN(io) ((io)->io_hdr.ctl_private[CTL_PRIV_BACKEND_LUN].ptrs[0])
172 ctl_ports[(io)->io_hdr.nexus.targ_port])
176 * ever reach backends, so we can reuse backend's private storage.
178 #define CTL_RSGL(io) ((io)->io_hdr.ctl_private[CTL_PRIV_BACKEND].ptrs[0])
179 #define CTL_LSGL(io) ((io)->io_hdr.ctl_private[CTL_PRIV_BACKEND].ptrs[1])
213 CTL_MSG_UA, /* Set/clear UA on secondary. */
214 CTL_MSG_PORT_SYNC, /* Information about port. */
215 CTL_MSG_LUN_SYNC, /* Information about LUN. */
216 CTL_MSG_IID_SYNC, /* Information about initiator. */
217 CTL_MSG_LOGIN, /* Information about HA peer. */
218 CTL_MSG_MODE_SYNC, /* Mode page current content. */
226 ctl_io_type io_type; /* task I/O, SCSI I/O, etc. */
232 uint32_t port_status; /* trans status, set by PORT, 0 = good*/
268 * SCSI passthrough I/O structure for the CAM Target Layer. Note
270 * used in the CTL implementation. e.g., timeout and retries won't be
271 * used.
274 * structure.
281 * doesn't modify or use them.
290 * by kern_data_ptr. 0 means there is no list, just a data pointer.
294 uint32_t rem_sg_entries; /* Unused. */
297 * The data pointer or a pointer to the scatter/gather list.
302 * Length of the data buffer or scatter/gather list. It's also
304 * ie. number of bytes expected to be transferred by the current
305 * invocation of frontend's datamove() callback. It's always
306 * less than or equal to kern_total_len.
312 * SCSI command, as decoded from SCSI CDB.
317 * Amount of data left after the current data transfer.
324 * datamove() invocations.
331 uint8_t seridx; /* Serialization index. */
334 ctl_tag_type tag_type; /* simple, ordered, head of queue,etc.*/
368 * Task management I/O structure. Aborts, bus resets, etc., are sent using
369 * this structure.
372 * structure.
376 ctl_task_type task_action; /* Target Reset, Abort, etc. */
378 ctl_tag_type tag_type; /* simple, ordered, etc. */
379 uint8_t task_status; /* Complete, Succeeded, etc. */
384 * HA link messages.
389 * Used for CTL_MSG_LOGIN.
412 * to the other SC which it must also act on.
415 * structure.
436 * Used for CTL_MSG_PERS_ACTION.
444 * Used for CTL_MSG_UA.
456 * structure, because we can't pass data by reference in between controllers.
458 * kern_data_ptr field. So kern_sg_entries here will always be non-zero,
459 * even if there is only one entry.
461 * Used for CTL_MSG_DATAMOVE.
483 * and CTL_MSG_DATAMOVE_DONE.
488 ctl_tag_type tag_type; /* simple, ordered, etc. */
495 0 = good*/
501 * Used for CTL_MSG_MANAGE_TASKS.
505 ctl_task_type task_action; /* Target Reset, Abort, etc. */
507 ctl_tag_type tag_type; /* simple, ordered, etc. */
511 * Used for CTL_MSG_PORT_SYNC.
528 * Used for CTL_MSG_LUN_SYNC.
547 * Used for CTL_MSG_IID_SYNC.
558 * Used for CTL_MSG_MODE_SYNC.
591 struct ctl_prio presio; /* update per. res info on other SC */