FreeBSD kernel CAM code
|
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/types.h>
#include <sys/malloc.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/condvar.h>
#include <sys/endian.h>
#include <sys/queue.h>
#include <sys/sysctl.h>
#include <sys/nv.h>
#include <sys/dnv.h>
#include <cam/scsi/scsi_all.h>
#include <cam/scsi/scsi_da.h>
#include <cam/ctl/ctl_io.h>
#include <cam/ctl/ctl.h>
#include <cam/ctl/ctl_frontend.h>
#include <cam/ctl/ctl_backend.h>
#include <cam/ctl/ctl_ioctl.h>
#include <cam/ctl/ctl_ha.h>
#include <cam/ctl/ctl_private.h>
#include <cam/ctl/ctl_debug.h>
Go to the source code of this file.
Functions | |
__FBSDID ("$FreeBSD$") | |
int | ctl_frontend_register (struct ctl_frontend *fe) |
int | ctl_frontend_deregister (struct ctl_frontend *fe) |
struct ctl_frontend * | ctl_frontend_find (char *frontend_name) |
int | ctl_port_register (struct ctl_port *port) |
int | ctl_port_deregister (struct ctl_port *port) |
void | ctl_port_set_wwns (struct ctl_port *port, int wwnn_valid, uint64_t wwnn, int wwpn_valid, uint64_t wwpn) |
void | ctl_port_online (struct ctl_port *port) |
void | ctl_port_offline (struct ctl_port *port) |
Variables | |
struct ctl_softc * | control_softc |
__FBSDID | ( | "$FreeBSD$" | ) |
int ctl_frontend_deregister | ( | struct ctl_frontend * | fe | ) |
Definition at line 109 of file ctl_frontend.c.
References control_softc, ctl_softc::ctl_lock, ctl_frontend::name, ctl_softc::num_frontends, and ctl_frontend::shutdown.
Referenced by ctl_shutdown().
struct ctl_frontend * ctl_frontend_find | ( | char * | frontend_name | ) |
Definition at line 131 of file ctl_frontend.c.
References control_softc, ctl_softc::ctl_lock, and ctl_frontend::name.
Referenced by ctl_ioctl().
int ctl_frontend_register | ( | struct ctl_frontend * | fe | ) |
Definition at line 73 of file ctl_frontend.c.
References control_softc, ctl_softc::ctl_lock, ctl_frontend::init, ctl_frontend::name, and ctl_softc::num_frontends.
Referenced by ctl_init().
int ctl_port_deregister | ( | struct ctl_port * | port | ) |
Definition at line 227 of file ctl_frontend.c.
References ctl_clear_mask(), ctl_softc::ctl_lock, ctl_lun_map_deinit(), ctl_pool_free(), ctl_port::ctl_pool_ref, ctl_softc::ctl_port_mask, ctl_softc::ctl_ports, ctl_port::ctl_softc, ctl_port::frontend, ctl_port::init_devid, ctl_port::max_initiators, ctl_wwpn_iid::name, ctl_softc::num_ports, ctl_port::options, ctl_port::port_devid, ctl_port::port_lock, ctl_port::targ_port, ctl_port::target_devid, and ctl_port::wwpn_iid.
Referenced by cfcs_shutdown(), cfi_ioctl_port_create(), cfi_ioctl_port_remove(), cfi_shutdown(), cfiscsi_target_release(), ctl_ha_shutdown(), ctlfeasync(), and tpcl_shutdown().
void ctl_port_offline | ( | struct ctl_port * | port | ) |
Definition at line 357 of file ctl_frontend.c.
References ctl_est_ua_all(), ctl_isc_announce_port(), ctl_softc::ctl_lock, ctl_lun_map_from_port(), ctl_lun_map_to_port(), ctl_port::ctl_softc, CTL_UA_INQ_CHANGE, ctl_lun::lun, ctl_port::lun_disable, ctl_port::lun_map, ctl_port::lun_map_size, ctl_port::onoff_arg, ctl_port::port_offline, ctl_port::status, and ctl_port::targ_lun_arg.
Referenced by cfcs_shutdown(), cfi_ioctl_port_create(), cfi_ioctl_port_remove(), cfi_shutdown(), cfiscsi_ioctl_port_remove(), ctl_ioctl(), and tpcl_shutdown().
void ctl_port_online | ( | struct ctl_port * | port | ) |
Definition at line 314 of file ctl_frontend.c.
References ctl_est_ua_all(), ctl_isc_announce_port(), ctl_softc::ctl_lock, ctl_lun_map_from_port(), ctl_lun_map_to_port(), CTL_PORT_STATUS_HA_SHARED, CTL_PORT_STATUS_ONLINE, ctl_port::ctl_softc, CTL_UA_INQ_CHANGE, ctl_softc::is_single, ctl_lun::lun, ctl_port::lun_enable, ctl_port::lun_map, ctl_port::lun_map_size, ctl_port::onoff_arg, ctl_port::options, ctl_port::port_online, ctl_port::status, and ctl_port::targ_lun_arg.
Referenced by cfi_init(), cfi_ioctl_port_create(), ctl_ioctl(), and tpcl_init().
int ctl_port_register | ( | struct ctl_port * | port | ) |
Definition at line 148 of file ctl_frontend.c.
References control_softc, ctl_clear_mask(), ctl_ffz(), ctl_softc::ctl_lock, CTL_MAX_INIT_PER_PORT, ctl_pool_create(), ctl_port::ctl_pool_ref, ctl_softc::ctl_port_mask, ctl_softc::ctl_ports, ctl_set_mask(), ctl_port::ctl_softc, ctl_port::frontend, ctl_io_stats::item, ctl_port::max_initiators, ctl_softc::num_ports, ctl_port::num_requested_ctl_io, ctl_port::options, ctl_port::port_lock, ctl_softc::port_max, ctl_softc::port_min, ctl_port::port_name, ctl_port::stats, ctl_port::targ_port, and ctl_port::wwpn_iid.
Referenced by cfcs_init(), cfi_init(), cfi_ioctl_port_create(), cfiscsi_ioctl_port_create(), ctl_isc_port_sync(), ctlfeasync(), and tpcl_init().
void ctl_port_set_wwns | ( | struct ctl_port * | port, |
int | wwnn_valid, | ||
uint64_t | wwnn, | ||
int | wwpn_valid, | ||
uint64_t | wwpn | ||
) |
Definition at line 263 of file ctl_frontend.c.
References CTL_PORT_FC, CTL_PORT_ISCSI, CTL_PORT_SAS, CTL_WWPN_LEN, ctl_devid::data, scsi_vpd_id_descriptor::id_type, scsi_vpd_id_descriptor::identifier, ctl_devid::len, scsi_vpd_id_descriptor::length, ctl_port::port_devid, ctl_port::port_type, scsi_vpd_id_descriptor::proto_codeset, SCSI_PROTO_FC, SCSI_PROTO_ISCSI, SCSI_PROTO_SAS, SCSI_PROTO_SPI, scsi_u64to8b(), SVPD_ID_ASSOC_PORT, SVPD_ID_ASSOC_TARGET, SVPD_ID_CODESET_BINARY, SVPD_ID_PIV, SVPD_ID_TYPE_NAA, ctl_port::target_devid, ctl_port::wwnn, and ctl_port::wwpn.
Referenced by cfcs_init(), ctl_ioctl(), and ctlfe_onoffline().
|
extern |
Definition at line 92 of file ctl.c.
Referenced by ctl_add_lun(), ctl_frontend_deregister(), ctl_frontend_find(), ctl_frontend_register(), ctl_ha_init(), ctl_ha_shutdown(), ctl_init(), ctl_isc_event_handler(), ctl_port_register(), and ctl_shutdown().