• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/ofed/opensm/libvendor/

Lines Matching refs:p_vend

82 	osm_vendor_t *p_vend;
97 osm_vendor_t *p_vend;
101 static void osm_vendor_close_port(osm_vendor_t * const p_vend);
103 static void log_send_error(osm_vendor_t * const p_vend, osm_madw_t *p_madw)
107 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5410: "
121 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5411: "
128 osm_dump_smp_dr_path(p_vend->p_log, p_smp, OSM_LOG_ERROR);
132 static void clear_madw(osm_vendor_t * p_vend)
138 OSM_LOG_ENTER(p_vend->p_log);
139 pthread_mutex_lock(&p_vend->match_tbl_mutex);
140 for (m = p_vend->mtbl.tbl, e = m + p_vend->mtbl.max; m < e; m++) {
149 pthread_mutex_unlock(&p_vend->match_tbl_mutex);
150 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5401: "
157 pthread_mutex_unlock(&p_vend->match_tbl_mutex);
160 OSM_LOG_EXIT(p_vend->p_log);
163 static osm_madw_t *get_madw(osm_vendor_t * p_vend, ib_net64_t * tid,
177 pthread_mutex_lock(&p_vend->match_tbl_mutex);
178 for (m = p_vend->mtbl.tbl, e = m + p_vend->mtbl.max; m < e; m++) {
184 pthread_mutex_unlock(&p_vend->match_tbl_mutex);
189 pthread_mutex_unlock(&p_vend->match_tbl_mutex);
200 put_madw(osm_vendor_t * p_vend, osm_madw_t * p_madw, ib_net64_t tid,
210 pthread_mutex_lock(&p_vend->match_tbl_mutex);
211 for (m = p_vend->mtbl.tbl, e = m + p_vend->mtbl.max; m < e; m++) {
217 cl_atomic_inc((atomic32_t *) & p_vend->mtbl.
219 pthread_mutex_unlock(&p_vend->match_tbl_mutex);
249 log_send_error(p_vend, p_req_madw);
250 pthread_mutex_lock(&p_vend->cb_mutex);
252 pthread_mutex_unlock(&p_vend->cb_mutex);
259 cl_atomic_inc((atomic32_t *) & p_vend->mtbl.last_version);
265 cl_atomic_inc((atomic32_t *) & p_vend->mtbl.last_version);
267 pthread_mutex_unlock(&p_vend->match_tbl_mutex);
268 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5402: "
325 osm_vendor_t *p_vend = p_ur->p_vend;
344 if ((mad_agent = umad_recv(p_vend->umad_port_id, umad,
362 if ((mad_agent = umad_recv(p_vend->umad_port_id,
375 !(p_bind = p_vend->agents[mad_agent])) {
391 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5408: "
408 if (!(p_req_madw = get_madw(p_vend, &p_mad->trans_id,
410 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR,
419 log_send_error(p_vend, p_req_madw);
421 pthread_mutex_lock(&p_vend->cb_mutex);
423 &p_vend->cb_mutex);
436 p_req_madw = get_madw(p_vend, &p_mad->trans_id,
439 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR,
470 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR,
493 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5414: "
506 pthread_mutex_lock(&p_vend->cb_mutex);
507 pthread_cleanup_push(unlock_mutex, &p_vend->cb_mutex);
513 OSM_LOG_EXIT(p_vend->p_log);
517 static int umad_receiver_start(osm_vendor_t * p_vend)
519 umad_receiver_t *p_ur = p_vend->receiver;
521 p_ur->p_vend = p_vend;
522 p_ur->p_log = p_vend->p_log;
535 p_ur->p_vend = NULL;
540 osm_vendor_init(IN osm_vendor_t * const p_vend,
548 p_vend->p_log = p_log;
549 p_vend->timeout = timeout;
550 p_vend->max_retries = OSM_DEFAULT_RETRY_COUNT;
551 pthread_mutex_init(&p_vend->cb_mutex, NULL);
552 pthread_mutex_init(&p_vend->match_tbl_mutex, NULL);
553 p_vend->umad_port_id = -1;
554 p_vend->issmfd = -1;
560 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR,
564 if ((n_cas = umad_get_cas_names(p_vend->ca_names,
566 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR,
572 p_vend->ca_count = n_cas;
573 p_vend->mtbl.max = DEFAULT_OSM_UMAD_MAX_PENDING;
578 p_vend->mtbl.max = tmp;
580 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "Error:"
585 OSM_LOG(p_vend->p_log, OSM_LOG_INFO, "%d pending umads specified\n",
586 p_vend->mtbl.max);
588 p_vend->mtbl.tbl = calloc(p_vend->mtbl.max, sizeof(*(p_vend->mtbl.tbl)));
589 if (!p_vend->mtbl.tbl) {
590 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "Error:"
604 osm_vendor_t *p_vend = NULL;
614 p_vend = malloc(sizeof(*p_vend));
615 if (p_vend == NULL) {
621 memset(p_vend, 0, sizeof(*p_vend));
623 if (osm_vendor_init(p_vend, p_log, timeout) != IB_SUCCESS) {
624 free(p_vend);
625 p_vend = NULL;
630 return (p_vend);
649 osm_vendor_get_all_port_attr(IN osm_vendor_t * const p_vend,
658 OSM_LOG_ENTER(p_vend->p_log);
660 CL_ASSERT(p_vend && p_num_ports);
664 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5418: "
675 for (i = 0; i < p_vend->ca_count && !done; i++) {
677 if (umad_get_ca(p_vend->ca_names[i], &ca) == 0) {
715 OSM_LOG_EXIT(p_vend->p_log);
720 osm_vendor_open_port(IN osm_vendor_t * const p_vend,
729 CL_ASSERT(p_vend);
731 OSM_LOG_ENTER(p_vend->p_log);
733 if (p_vend->umad_port_id >= 0) {
734 umad_port_id = p_vend->umad_port_id;
744 for (ca = 0; ca < p_vend->ca_count; ca++) {
745 if ((r = umad_get_ca_portguids(p_vend->ca_names[ca], portguids,
748 OSM_LOG(p_vend->p_log, OSM_LOG_VERBOSE,
750 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5421: "
753 p_vend->ca_names[ca], strerror(r));
758 name = p_vend->ca_names[ca];
766 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5422: "
774 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 542A: "
780 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 542D: "
792 if (umad_get_port(name, i, &p_vend->umad_port) < 0) {
793 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 542B: "
798 if ((umad_port_id = umad_open_port(p_vend->umad_port.ca_name,
799 p_vend->umad_port.portnum)) < 0) {
800 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 542C: "
805 p_vend->umad_port_id = umad_port_id;
808 if (!(p_vend->receiver = calloc(1, sizeof(umad_receiver_t)))) {
809 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5423: "
812 umad_release_port(&p_vend->umad_port);
813 p_vend->umad_port.port_guid = 0;
814 p_vend->umad_port_id = umad_port_id = -1;
817 if (umad_receiver_start(p_vend) != 0) {
818 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5420: "
821 umad_release_port(&p_vend->umad_port);
822 p_vend->umad_port.port_guid = 0;
823 p_vend->umad_port_id = umad_port_id = -1;
827 OSM_LOG_EXIT(p_vend->p_log);
831 static void osm_vendor_close_port(osm_vendor_t * const p_vend)
836 p_ur = p_vend->receiver;
837 p_vend->receiver = NULL;
843 if (p_vend->umad_port_id >= 0) {
845 if (p_vend->agents[i])
846 umad_unregister(p_vend->umad_port_id, i);
847 umad_close_port(p_vend->umad_port_id);
848 umad_release_port(&p_vend->umad_port);
849 p_vend->umad_port.port_guid = 0;
850 p_vend->umad_port_id = -1;
867 osm_vendor_bind(IN osm_vendor_t * const p_vend,
880 OSM_LOG_ENTER(p_vend->p_log);
889 OSM_LOG(p_vend->p_log, OSM_LOG_INFO,
893 if ((umad_port_id = osm_vendor_open_port(p_vend, port_guid)) < 0) {
894 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5424: "
900 if (umad_get_issm_path(p_vend->umad_port.ca_name,
901 p_vend->umad_port.portnum,
902 p_vend->issm_path,
903 sizeof(p_vend->issm_path)) < 0) {
904 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 542E: "
906 p_vend->umad_port.ca_name, p_vend->umad_port.portnum);
911 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5425: "
917 p_bind->p_vend = p_vend;
925 p_vend->timeout;
927 p_vend->max_retries;
959 if ((p_bind->agent_id = umad_register(p_vend->umad_port_id,
963 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5426: "
972 p_vend->agents[p_bind->agent_id]) {
973 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5427: "
982 p_vend->agents[p_bind->agent_id] = p_bind;
986 if ((p_bind->agent_id1 = umad_register(p_vend->umad_port_id,
991 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5428: "
1000 p_vend->agents[p_bind->agent_id1]) {
1001 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5429: "
1009 p_vend->agents[p_bind->agent_id1] = p_bind;
1013 OSM_LOG_EXIT(p_vend->p_log);
1040 osm_vendor_t *p_vend = p_bind->p_vend;
1042 OSM_LOG_ENTER(p_vend->p_log);
1044 pthread_mutex_lock(&p_vend->cb_mutex);
1047 pthread_mutex_unlock(&p_vend->cb_mutex);
1049 OSM_LOG_EXIT(p_vend->p_log);
1057 osm_vendor_t *p_vend = p_bind->p_vend;
1059 OSM_LOG_ENTER(p_vend->p_log);
1061 OSM_LOG(p_vend->p_log, OSM_LOG_DEBUG,
1070 OSM_LOG(p_vend->p_log, OSM_LOG_DEBUG,
1073 OSM_LOG_EXIT(p_vend->p_log);
1081 osm_vendor_t *p_vend = p_bind->p_vend;
1084 OSM_LOG_ENTER(p_vend->p_log);
1088 OSM_LOG(p_vend->p_log, OSM_LOG_DEBUG, "Retiring UMAD %p\n", p_vw->umad);
1101 OSM_LOG_EXIT(p_vend->p_log);
1109 osm_vendor_t *const p_vend = p_bind->p_vend;
1123 OSM_LOG_ENTER(p_vend->p_log);
1166 OSM_LOG(p_vend->p_log, OSM_LOG_DEBUG, "RMPP %d length %d\n",
1185 put_madw(p_vend, p_madw, p_mad->trans_id, p_mad->mgmt_class);
1198 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5430: "
1204 get_madw(p_vend, &p_mad->trans_id,
1207 pthread_mutex_lock(&p_vend->cb_mutex);
1209 pthread_mutex_unlock(&p_vend->cb_mutex);
1218 OSM_LOG(p_vend->p_log, OSM_LOG_DEBUG, "Completed sending %s TID 0x%" PRIx64 "\n",
1221 OSM_LOG_EXIT(p_vend->p_log);
1228 osm_vendor_t *p_vend = p_bind->p_vend;
1230 OSM_LOG_ENTER(p_vend->p_log);
1232 OSM_LOG_EXIT(p_vend->p_log);
1239 osm_vendor_t *p_vend = p_bind->p_vend;
1241 OSM_LOG_ENTER(p_vend->p_log);
1243 p_vend->issmfd = open(p_vend->issm_path, O_NONBLOCK);
1244 if (p_vend->issmfd < 0) {
1245 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5431: "
1248 p_vend->issm_path, strerror(errno));
1249 p_vend->issmfd = -1;
1251 } else if (p_vend->issmfd != -1) {
1252 if (0 != close(p_vend->issmfd))
1253 OSM_LOG(p_vend->p_log, OSM_LOG_ERROR, "ERR 5432: "
1256 p_vend->issmfd = -1;
1258 OSM_LOG_EXIT(p_vend->p_log);
1261 void osm_vendor_set_debug(IN osm_vendor_t * const p_vend, IN int32_t level)