Lines Matching full:ctl
33 * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_frontend.h#2 $
44 #include <cam/ctl/ctl_ioctl.h>
84 MODULE_DEPEND(name, ctl, 1, 1, 1); \
96 * (Front End Target Driver) and the CTL layer. Here is a description of
99 * port_type: This field tells CTL what kind of front end it is
101 * The first is to let CTL know whether the frontend
102 * in question is inside the main CTL module (i.e.
105 * CTL ioctl front end should continue to use the
107 * the main CTL module. The second is to let CTL
115 * transactions that the FETD can handle. The CTL
132 * argument, by the CTL layer when it wants the FETD
137 * argument, by the CTL layer when it wants the FETD
146 * ID and a LUN ID as its arguments, by CTL when it
154 * ID and LUN ID as its arguments, by CTL when it
166 * by the CTL layer to tell the FETD to initiate a
170 * fe_done(): This function is called by the CTL layer when a
177 * back to the CTL layer via ctl_queue_sense().
179 * fe_dump(): This function, if it exists, is called by CTL
183 * targ_port: The CTL layer assigns a "port number" to every
186 * the CTL layer. This enables us to determine
209 * status: Used by CTL to keep track of per-FETD state.
211 * links: Linked list pointers, used by CTL. The FETD
216 struct ctl_frontend *frontend; /* passed to CTL */
217 ctl_port_type port_type; /* passed to CTL */
218 int num_requested_ctl_io; /* passed to CTL */
219 char *port_name; /* passed to CTL */
220 int physical_port; /* passed to CTL */
221 int virtual_port; /* passed to CTL */
222 port_func_t port_online; /* passed to CTL */
223 port_func_t port_offline; /* passed to CTL */
224 port_info_func_t port_info; /* passed to CTL */
225 void *onoff_arg; /* passed to CTL */
226 lun_func_t lun_enable; /* passed to CTL */
227 lun_func_t lun_disable; /* passed to CTL */
228 int lun_map_size; /* passed to CTL */
229 uint32_t *lun_map; /* passed to CTL */
230 void *targ_lun_arg; /* passed to CTL */
231 void (*fe_datamove)(union ctl_io *io); /* passed to CTL */
232 void (*fe_done)(union ctl_io *io); /* passed to CTL */
236 struct ctl_wwpn_iid *wwpn_iid; /* used by CTL */
237 uint64_t wwnn; /* set by CTL before online */
238 uint64_t wwpn; /* set by CTL before online */
239 ctl_port_status status; /* used by CTL */
240 nvlist_t *options; /* passed to CTL */
241 struct ctl_devid *port_devid; /* passed to CTL */
242 struct ctl_devid *target_devid; /* passed to CTL */
243 struct ctl_devid *init_devid; /* passed to CTL */
244 struct ctl_io_stats stats; /* used by CTL */
245 struct mtx port_lock; /* used by CTL */
246 STAILQ_ENTRY(ctl_port) fe_links; /* used by CTL */
247 STAILQ_ENTRY(ctl_port) links; /* used by CTL */
251 char name[CTL_DRIVER_NAME_LEN]; /* passed to CTL */
252 fe_init_t init; /* passed to CTL */
253 fe_ioctl_t ioctl; /* passed to CTL */
254 void (*fe_dump)(void); /* passed to CTL */
255 fe_shutdown_t shutdown; /* passed to CTL */
256 STAILQ_HEAD(, ctl_port) port_list; /* used by CTL */
257 STAILQ_ENTRY(ctl_frontend) links; /* used by CTL */
307 * CTL layer. Returns immediately. Returns 0 for success, non-zero for
314 * the FETD to the CTL layer. May sleep. Returns 0 for success, non-zero
323 * called BEFORE any request sense can get queued to the CTL layer -- I
325 * structure passed in here will be freed by the CTL layer when sense is
331 * This routine adds an initiator to CTL's port database.
339 * This routine will remove an initiator from CTL's port database.