int _gnix_av_reverse_lookup(struct gnix_fid_av *gnix_av, struct gnix_address gnix_addr, fi_addr_t *fi_addr) { int ret = FI_SUCCESS; GNIX_TRACE(FI_LOG_AV, "\n"); if (!gnix_av) { ret = -FI_EINVAL; goto err; } switch (gnix_av->type) { case FI_AV_TABLE: ret = table_reverse_lookup(gnix_av, gnix_addr, fi_addr); break; case FI_AV_MAP: ret = map_reverse_lookup(gnix_av, gnix_addr, fi_addr); break; default: ret = -FI_EINVAL; break; } err: return ret; }
static lldpctl_atom_t* _lldpctl_atom_set_str_port(lldpctl_atom_t *atom, lldpctl_key_t key, const char *value) { struct _lldpctl_atom_port_t *p = (struct _lldpctl_atom_port_t *)atom; struct lldpd_port *port = p->port; if (!value || !strlen(value)) return NULL; if (p->local) { switch (key) { case lldpctl_k_port_status: return _lldpctl_atom_set_int_port(atom, key, map_reverse_lookup(port_status_map.map, value)); default: break; } } switch (key) { case lldpctl_k_port_id: free(port->p_id); port->p_id = strdup(value); port->p_id_len = strlen(value); break; case lldpctl_k_port_descr: free(port->p_descr); port->p_descr = strdup(value); break; default: SET_ERROR(atom->conn, LLDPCTL_ERR_NOT_EXIST); return NULL; } return _lldpctl_atom_set_atom_port(atom, key, NULL); }
int _gnix_map_reverse_lookup(struct gnix_fid_av *av_priv, struct gnix_address gnix_addr, fi_addr_t *fi_addr) { return map_reverse_lookup(av_priv, gnix_addr, fi_addr); }