Lines Matching refs:fabric_cache

222 static int _load_header_info(int fd, ibnd_fabric_cache_t * fabric_cache,  in _load_header_info()  argument
251 offset += _unmarshall64(buf + offset, &fabric_cache->from_node_guid); in _load_header_info()
253 fabric_cache->f_int->fabric.maxhops_discovered = tmp32; in _load_header_info()
266 static void _destroy_ibnd_fabric_cache(ibnd_fabric_cache_t * fabric_cache) in _destroy_ibnd_fabric_cache() argument
273 if (!fabric_cache) in _destroy_ibnd_fabric_cache()
276 node_cache = fabric_cache->nodes_cache; in _destroy_ibnd_fabric_cache()
285 port_cache = fabric_cache->ports_cache; in _destroy_ibnd_fabric_cache()
296 free(fabric_cache); in _destroy_ibnd_fabric_cache()
300 ibnd_fabric_cache_t * fabric_cache) in store_node_cache() argument
304 node_cache->next = fabric_cache->nodes_cache; in store_node_cache()
305 fabric_cache->nodes_cache = node_cache; in store_node_cache()
307 node_cache->htnext = fabric_cache->nodescachetbl[hash_indx]; in store_node_cache()
308 fabric_cache->nodescachetbl[hash_indx] = node_cache; in store_node_cache()
311 static int _load_node(int fd, ibnd_fabric_cache_t * fabric_cache) in _load_node() argument
391 store_node_cache(node_cache, fabric_cache); in _load_node()
401 ibnd_fabric_cache_t * fabric_cache) in store_port_cache() argument
405 port_cache->next = fabric_cache->ports_cache; in store_port_cache()
406 fabric_cache->ports_cache = port_cache; in store_port_cache()
408 port_cache->htnext = fabric_cache->portscachetbl[hash_indx]; in store_port_cache()
409 fabric_cache->portscachetbl[hash_indx] = port_cache; in store_port_cache()
412 static int _load_port(int fd, ibnd_fabric_cache_t * fabric_cache) in _load_port() argument
456 store_port_cache(port_cache, fabric_cache); in _load_port()
466 static ibnd_port_cache_t *_find_port(ibnd_fabric_cache_t * fabric_cache, in _find_port() argument
472 for (port_cache = fabric_cache->portscachetbl[hash_indx]; in _find_port()
482 static ibnd_node_cache_t *_find_node(ibnd_fabric_cache_t * fabric_cache, in _find_node() argument
488 for (node_cache = fabric_cache->nodescachetbl[hash_indx]; in _find_node()
497 static int _fill_port(ibnd_fabric_cache_t * fabric_cache, ibnd_node_t * node, in _fill_port() argument
502 if (!(port_cache = _find_port(fabric_cache, port_cache_key))) { in _fill_port()
519 fabric_cache->f_int->fabric.portstbl); in _fill_port()
528 static int _rebuild_nodes(ibnd_fabric_cache_t * fabric_cache) in _rebuild_nodes() argument
533 node_cache = fabric_cache->nodes_cache; in _rebuild_nodes()
544 node->next = fabric_cache->f_int->fabric.nodes; in _rebuild_nodes()
545 fabric_cache->f_int->fabric.nodes = node; in _rebuild_nodes()
548 fabric_cache-> in _rebuild_nodes()
557 add_to_type_list(node_cache->node, fabric_cache->f_int); in _rebuild_nodes()
570 if (_fill_port(fabric_cache, node, in _rebuild_nodes()
581 static int _rebuild_ports(ibnd_fabric_cache_t * fabric_cache) in _rebuild_ports() argument
586 port_cache = fabric_cache->ports_cache; in _rebuild_ports()
597 _find_node(fabric_cache, port_cache->node_guid))) { in _rebuild_ports()
605 if (!(remoteport_cache = _find_port(fabric_cache, in _rebuild_ports()
617 add_to_portlid_hash(port, fabric_cache->f_int->lid2guid); in _rebuild_ports()
628 ibnd_fabric_cache_t *fabric_cache = NULL; in ibnd_load_fabric() local
644 fabric_cache = in ibnd_load_fabric()
646 if (!fabric_cache) { in ibnd_load_fabric()
650 memset(fabric_cache, '\0', sizeof(ibnd_fabric_cache_t)); in ibnd_load_fabric()
658 fabric_cache->f_int = f_int; in ibnd_load_fabric()
660 if (_load_header_info(fd, fabric_cache, &node_count, &port_count) < 0) in ibnd_load_fabric()
664 if (_load_node(fd, fabric_cache) < 0) in ibnd_load_fabric()
669 if (_load_port(fd, fabric_cache) < 0) in ibnd_load_fabric()
675 _find_node(fabric_cache, fabric_cache->from_node_guid))) { in ibnd_load_fabric()
681 if (_rebuild_nodes(fabric_cache) < 0) in ibnd_load_fabric()
684 if (_rebuild_ports(fabric_cache) < 0) in ibnd_load_fabric()
690 _destroy_ibnd_fabric_cache(fabric_cache); in ibnd_load_fabric()
696 _destroy_ibnd_fabric_cache(fabric_cache); in ibnd_load_fabric()