42#ifndef _CTL_FRONTEND_H_
43#define _CTL_FRONTEND_H_
59typedef int (*
fe_ioctl_t)(
struct cdev *dev, u_long cmd, caddr_t addr,
int flag,
62#define CTL_FRONTEND_DECLARE(name, driver) \
63 static int name ## _modevent(module_t mod, int type, void *data) \
67 return (ctl_frontend_register( \
68 (struct ctl_frontend *)data)); \
71 return (ctl_frontend_deregister( \
72 (struct ctl_frontend *)data)); \
79 static moduledata_t name ## _mod = { \
84 DECLARE_MODULE(name, name ## _mod, SI_SUB_CONFIGURE, SI_ORDER_FOURTH); \
85 MODULE_DEPEND(name, ctl, 1, 1, 1); \
86 MODULE_DEPEND(name, cam, 1, 1, 1)
294 uint64_t wwnn,
int wwpn_valid, uint64_t wwpn);
#define CTL_DRIVER_NAME_LEN
@ CTL_PORT_STATUS_HA_SHARED
int ctl_port_deregister(struct ctl_port *port)
int(* port_info_func_t)(void *onoff_arg, struct sbuf *sb)
void ctl_port_offline(struct ctl_port *fe)
int(* lun_func_t)(void *arg, int lun_id)
void ctl_port_set_wwns(struct ctl_port *port, int wwnn_valid, uint64_t wwnn, int wwpn_valid, uint64_t wwpn)
int ctl_remove_initiator(struct ctl_port *port, int iid)
int ctl_frontend_deregister(struct ctl_frontend *fe)
struct ctl_frontend * ctl_frontend_find(char *frontend_name)
int ctl_add_initiator(struct ctl_port *port, int iid, uint64_t wwpn, char *name)
void ctl_port_online(struct ctl_port *fe)
void(* port_func_t)(void *onoff_arg)
int ctl_port_register(struct ctl_port *port)
int ctl_queue_sense(union ctl_io *io)
int ctl_queue(union ctl_io *io)
int(* fe_ioctl_t)(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td)
int ctl_run(union ctl_io *io)
int ctl_frontend_register(struct ctl_frontend *fe)
int(* fe_shutdown_t)(void)
char name[CTL_DRIVER_NAME_LEN]
STAILQ_ENTRY(ctl_frontend) links
STAILQ_HEAD(, ctl_port) port_list
STAILQ_ENTRY(ctl_port) links
struct ctl_frontend * frontend
port_info_func_t port_info
void(* fe_datamove)(union ctl_io *io)
struct ctl_devid * port_devid
struct ctl_io_stats stats
struct ctl_softc * ctl_softc
struct ctl_devid * init_devid
struct ctl_devid * target_devid
STAILQ_ENTRY(ctl_port) fe_links
struct ctl_wwpn_iid * wwpn_iid
void(* fe_done)(union ctl_io *io)