• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/ocs_fc/

Lines Matching defs:ocs

43 #include "ocs.h"
50 if (OCS_LOG_ENABLE_DOMAIN_SM_TRACE(domain->ocs)) \
51 ocs_log_info(domain->ocs, "[domain] %-20s %-20s\n", __func__, ocs_sm_event_name(evt)); \
56 if (OCS_LOG_ENABLE_DOMAIN_SM_TRACE(domain ? domain->ocs : NULL)) \
57 ocs_log_info(domain ? domain->ocs : NULL, fmt, ##__VA_ARGS__); \
62 ocs_log_info(domain ? domain->ocs : NULL, fmt, ##__VA_ARGS__); \
96 ocs_t *ocs = arg;
116 domain = ocs_domain_find(ocs, fcf_wwn);
118 domain = ocs_domain_alloc(ocs, fcf_wwn);
120 ocs_log_err(ocs, "ocs_domain_alloc() failed\n");
169 ocs_log_warn(ocs, "unsupported event %#x\n", event);
181 * @param ocs Pointer to the OCS device.
188 ocs_domain_find(ocs_t *ocs, uint64_t fcf_wwn)
193 ocs_device_lock(ocs);
194 ocs_list_foreach(&ocs->domain_list, domain) {
199 ocs_device_unlock(ocs);
208 * \c ocs argument.
210 * @param ocs Pointer to the OCS device.
217 ocs_domain_alloc(ocs_t *ocs, uint64_t fcf_wwn)
221 ocs_assert(ocs, NULL);
223 domain = ocs_malloc(ocs, sizeof(*domain), OCS_M_NOWAIT | OCS_M_ZERO);
225 domain->ocs = ocs;
226 domain->instance_index = ocs->domain_instance_count++;
229 ocs_lock_init(ocs, &domain->lookup_lock, "Domain lookup[%d]", domain->instance_index);
232 domain->lookup = spv_new(ocs);
234 ocs_log_err(ocs, "spv_new() failed\n");
235 ocs_free(ocs, domain, sizeof(*domain));
241 ocs_log_debug(ocs, "Domain allocated: wwn %016" PRIX64 "\n", domain->fcf_wwn);
242 domain->femul_enable = (ocs->ctrlmask & OCS_CTRLMASK_ENABLE_FABRIC_EMULATION) != 0;
244 ocs_device_lock(ocs);
246 if (ocs_list_empty(&ocs->domain_list)) {
247 ocs->domain = domain;
249 ocs_list_add_tail(&ocs->domain_list, domain);
250 ocs_device_unlock(ocs);
254 ocs_log_err(ocs, "domain allocation failed\n");
274 ocs_t *ocs;
277 ocs_assert(domain->ocs);
282 ocs = domain->ocs;
284 ocs_log_debug(ocs, "Domain free: wwn %016" PRIX64 "\n", domain->fcf_wwn);
289 ocs_device_lock(ocs);
290 ocs_list_remove(&ocs->domain_list, domain);
291 if (domain == ocs->domain) {
293 ocs->domain = ocs_list_get_head(&ocs->domain_list);
294 if (ocs->domain) {
295 ocs_log_debug(ocs, "setting new domain, old=%p new=%p\n",
296 domain, ocs->domain);
300 if (ocs_list_empty(&ocs->domain_list) && ocs->domain_list_empty_cb ) {
301 (*ocs->domain_list_empty_cb)(ocs, ocs->domain_list_empty_cb_arg);
303 ocs_device_unlock(ocs);
307 ocs_free(ocs, domain, sizeof(*domain));
337 ocs_hw_domain_force_free(&domain->ocs->hw, domain);
347 * @param ocs Pointer to a device object.
355 ocs_register_domain_list_empty_cb(ocs_t *ocs, void (*callback)(ocs_t *ocs, void *arg), void *arg)
357 ocs_device_lock(ocs);
358 ocs->domain_list_empty_cb = callback;
359 ocs->domain_list_empty_cb_arg = arg;
360 if (ocs_list_empty(&ocs->domain_list) && callback) {
361 (*callback)(ocs, arg);
363 ocs_device_unlock(ocs);
372 * @param ocs Pointer to the driver instance context.
379 ocs_domain_get_instance(ocs_t *ocs, uint32_t index)
384 ocs_log_err(ocs, "invalid index: %d\n", index);
387 ocs_device_lock(ocs);
388 ocs_list_foreach(&ocs->domain_list, domain) {
393 ocs_device_unlock(ocs);
425 ocs_log_warn(domain->ocs, "%-20s %-20s not handled\n", funcname, ocs_sm_event_name(evt));
470 ocs_log_warn(domain->ocs, "%-20s %-20s not handled\n", funcname, ocs_sm_event_name(evt));
479 ocs_t *ocs = NULL; \
484 ocs_assert(domain->ocs, NULL); \
485 ocs = domain->ocs; \
486 ocs_assert(ocs->xport, NULL);
521 uint64_t my_wwnn = ocs->xport->req_wwnn;
522 uint64_t my_wwpn = ocs->xport->req_wwpn;
530 ocs_log_debug(ocs, "using default hardware WWN configuration \n");
531 my_wwpn = ocs_get_wwn(&ocs->hw, OCS_HW_WWN_PORT);
532 my_wwnn = ocs_get_wwn(&ocs->hw, OCS_HW_WWN_NODE);
535 ocs_log_debug(ocs, "Creating base sport using WWPN %016" PRIx64 " WWNN %016" PRIx64 "\n",
539 sport = ocs_sport_alloc(domain, my_wwpn, my_wwnn, UINT32_MAX, ocs->enable_ini, ocs->enable_tgt);
542 ocs_log_err(ocs, "ocs_sport_alloc() failed\n");
551 ocs_log_err(ocs, "no VLAN id available (FCF=%d)\n",
562 if (ocs_hw_port_alloc(&ocs->hw, sport, NULL, (uint8_t *)&be_wwpn)) {
563 ocs_log_err(ocs, "Can't allocate port\n");
580 ocs_log_debug(ocs, "%s fc_id=%#x speed=%d\n",
588 if (ocs->enable_ini) {
590 ocs_log_debug(ocs, "%d position map entries\n", count);
595 ocs_log_debug(ocs, "%#x -> %#x\n",
599 ocs_log_err(ocs, "ocs_node_alloc() failed\n");
609 if (ocs_hw_domain_alloc(&ocs->hw, domain, drec->index, vlan)) {
610 ocs_log_err(ocs, "Failed to initiate HW domain allocation\n");
684 ocs_log_info(ocs, "Overriding WWN\n");
705 ocs_log_err(ocs, "Hmmmm ... Fabric Controller node already exists\n");
710 ocs_log_err(ocs, "Error: ocs_node_alloc() failed\n");
712 if (ocs->nodedb_mask & OCS_NODEDB_PAUSE_FABRIC_LOGIN) {
728 ocs_log_err(ocs, "%s recv'd waiting for DOMAIN_ALLOC_OK; shutting down domain\n",
739 ocs_log_debug(ocs, "%s received while waiting for ocs_hw_domain_alloc() to complete\n", ocs_sm_event_name(evt));
782 ocs_log_debug(ocs, "Requesting hw domain attach fc_id x%x\n", fc_id);
792 rc = ocs_hw_domain_attach(&ocs->hw, domain, fc_id);
794 ocs_log_err(ocs, "ocs_hw_domain_attach failed: %d\n", rc);
809 ocs_log_debug(ocs, "%s received while waiting for OCS_EVT_DOMAIN_REQ_ATTACH\n",
826 rc = ocs_hw_domain_free(&ocs->hw, domain);
828 ocs_log_err(ocs, "ocs_hw_domain_free() failed: %d\n", rc);
877 if (ocs->enable_tgt)
879 if (ocs->enable_ini)
909 ocs_log_debug(ocs, "%s received while waiting for hw attach to complete\n", ocs_sm_event_name(evt));
962 ocs_log_debug(domain->ocs, "ocs_vport_start() did not start all vports\n");
983 rc = ocs_hw_domain_free(&ocs->hw, domain);
985 ocs_log_err(ocs, "ocs_hw_domain_free() failed: %d\n", rc);
1049 rc = ocs_hw_domain_free(&ocs->hw, domain);
1051 ocs_log_err(ocs, "ocs_hw_domain_free() failed: %d\n", rc);
1086 if (ocs->enable_ini)
1088 if (ocs->enable_tgt)
1100 ocs_log_debug(ocs, "Reallocating domain\n");
1102 domain = ocs_domain_alloc(ocs, fcf_wwn);
1105 ocs_log_err(ocs, "ocs_domain_alloc() failed\n");
1172 rc = ocs_hw_domain_free(&ocs->hw, domain);
1174 ocs_log_err(ocs, "ocs_hw_domain_free() failed: %d\n", rc);
1182 ocs_log_err(ocs, "[domain] %-20s: failed\n", ocs_sm_event_name(evt));