39 #if !defined(__OCS_SPORT_H__)
40 #define __OCS_SPORT_H__
43 extern ocs_sport_t *
ocs_sport_alloc(ocs_domain_t *domain, uint64_t wwpn, uint64_t wwnn, uint32_t fc_id,
44 uint8_t enable_ini, uint8_t enable_tgt);
80 extern ocs_sport_t *
ocs_sport_find(ocs_domain_t *domain, uint32_t d_id);
81 extern ocs_sport_t *
ocs_sport_find_wwn(ocs_domain_t *domain, uint64_t wwnn, uint64_t wwpn);
93 extern int32_t
ocs_sport_vport_new(ocs_domain_t *domain, uint64_t wwpn, uint64_t wwnn, uint32_t fc_id, uint8_t ini, uint8_t tgt,
void *tgt_data,
void *ini_data, uint8_t restore_vport);
94 extern int32_t
ocs_sport_vport_del(ocs_t *ocs, ocs_domain_t *domain, uint64_t wwpn, uint64_t wwnn);
96 extern int8_t
ocs_vport_create_spec(ocs_t *ocs, uint64_t wwnn, uint64_t wwpn, uint32_t fc_id, uint32_t enable_ini, uint32_t enable_tgt,
void *tgt_data,
void *ini_data);
101 extern int ocs_sparm_cmp(uint8_t *sparms1, uint8_t *sparms2);
112 #endif // __OCS_SPORT_H__
void ocs_node_group_free(ocs_node_t *node)
ocs_sport_t * ocs_sport_find(ocs_domain_t *domain, uint32_t d_id)
Find a SLI port object, given an FC_ID.
int32_t ocs_sport_vport_del(ocs_t *ocs, ocs_domain_t *domain, uint64_t wwpn, uint64_t wwnn)
Remove a previously-allocated virtual port.
void ocs_sport_free(ocs_sport_t *sport)
int32_t ocs_sport_attach(ocs_sport_t *sport, uint32_t fc_id)
Request a SLI port attach.
void ocs_remote_node_group_free(ocs_remote_node_group_t *node_group)
Free a remote node group object.
ocs_node_group_dir_t * ocs_node_group_dir_alloc(ocs_sport_t *sport, uint8_t *sparms)
Allocate a node group directory entry.
int32_t ocs_port_cb(void *arg, ocs_hal_port_event_e event, void *data)
SLI port HAL callback.
static void ocs_device_lock(ocs_t *ocs)
void ocs_sport_force_free(ocs_sport_t *sport)
Free memory resources of a SLI port object.
int ocs_ddump_sport(ocs_textbuf_t *textbuf, ocs_sli_port_t *sport)
Generate a SLI port ddump.
void ocs_vport_del_all(ocs_t *ocs)
Force free all saved vports.
void * __ocs_sport_attached(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
SLI port state machine: Attached.
void ocs_node_group_dir_free(ocs_node_group_dir_t *node_group_dir)
Free a node group directory entry.
static void ocs_sport_lock_free(ocs_sport_t *sport)
void * __ocs_sport_vport_init(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
SLI port state machine: Handle initial virtual port events.
int ocs_sparm_cmp(uint8_t *sp1, uint8_t *sp2)
Compare service parameters.
ocs_remote_node_group_t * ocs_remote_node_group_alloc(ocs_node_group_dir_t *node_group_dir)
Allocate a remote node group object.
static void ocs_device_unlock(ocs_t *ocs)
int32_t ocs_sport_vport_new(ocs_domain_t *domain, uint64_t wwpn, uint64_t wwnn, uint32_t fc_id, uint8_t ini, uint8_t tgt, void *tgt_data, void *ini_data, uint8_t restore_vport)
Allocate a new virtual SLI port.
static int32_t ocs_device_lock_try(ocs_t *ocs)
void * __ocs_sport_vport_wait_alloc(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
SLI port state machine: Wait for the HAL SLI port allocation to complete.
ocs_sport_t * ocs_sport_alloc(ocs_domain_t *domain, uint64_t wwpn, uint64_t wwnn, uint32_t fc_id, uint8_t enable_ini, uint8_t enable_tgt)
Allocate a SLI port object.
static void ocs_sport_lock(ocs_sport_t *sport)
int8_t ocs_vport_create_spec(ocs_t *ocs, uint64_t wwnn, uint64_t wwpn, uint32_t fc_id, uint32_t enable_ini, uint32_t enable_tgt, void *tgt_data, void *ini_data)
Create a saved vport entry.
void * __ocs_sport_vport_allocated(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
SLI port state machine: virtual sport allocated.
void * __ocs_sport_wait_port_free(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
SLI port state machine: Wait for the HAL's port free to complete.
static void ocs_sport_lock_init(ocs_sport_t *sport)
void * __ocs_sport_wait_shutdown(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
SLI port state machine: Wait for the node shutdowns to complete.
int32_t ocs_vport_start(ocs_domain_t *domain)
Start the vports on a domain.
static int32_t ocs_sport_lock_try(ocs_sport_t *sport)
ocs_node_group_dir_t * ocs_node_group_dir_find(ocs_sport_t *sport, uint8_t *sparms)
Find a matching node group directory entry.
void * __ocs_sport_allocated(ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *arg)
SLI port state machine: Physical sport allocated.
void ocs_sport_nodes_shutdown(ocs_t *ocs, ocs_sport_t *sport)
Shutdown all remote nodes of sport.
ocs_sport_t * ocs_sport_find_wwn(ocs_domain_t *domain, uint64_t wwnn, uint64_t wwpn)
Find a SLI port, given the WWNN and WWPN.
int ocs_node_group_init(ocs_node_t *node)
Initialize a node for high login mode.
static void ocs_sport_unlock(ocs_sport_t *sport)