Lines Matching defs:node

209 	 * rcm_register_interest() for each node before we free it, the
258 link_cache_t *node;
264 node = cache_head.pc_next;
265 while (node != &cache_tail) {
266 if (rcm_unregister_interest(hd, node->pc_resource, 0)
270 node->pc_resource);
274 cache_remove(node);
275 node_free(node);
276 node = cache_head.pc_next;
301 * ibpart_offline() - Offline IBPARTs on a specific node.
307 link_cache_t *node;
313 node = cache_lookup(hd, rsrc, CACHE_REFRESH);
314 if (node == NULL) {
316 ibpart_log_err(node->pc_linkid, errorp,
325 if (ibpart_consumer_offline(hd, node, errorp, flags, info) ==
330 ibpart_log_err(node->pc_linkid, errorp,
344 if (ibpart_offline_ibpart(node, IBPART_OFFLINED, CACHE_NODE_OFFLINED) !=
346 ibpart_online_ibpart(node);
347 ibpart_log_err(node->pc_linkid, errorp, "offline failed");
358 * ibpart_undo_offline() - Undo offline of a previously offlined node.
365 link_cache_t *node;
370 node = cache_lookup(hd, rsrc, CACHE_NO_REFRESH);
371 if (node == NULL) {
379 if (!(node->pc_state & CACHE_NODE_OFFLINED)) {
380 ibpart_log_err(node->pc_linkid, errorp, "link not offlined");
386 ibpart_online_ibpart(node);
391 ibpart_consumer_online(hd, node, errorp, flags, info);
393 node->pc_state &= ~CACHE_NODE_OFFLINED;
400 ibpart_online_ibpart(link_cache_t *node)
409 for (ibpart = node->pc_ibpart; ibpart != NULL;
433 ibpart_offline_ibpart(link_cache_t *node, uint32_t flags,
441 "(%s %u %u)\n", node->pc_resource, flags, state);
446 for (ibpart = node->pc_ibpart; ibpart != NULL;
466 node->pc_state |= state;
478 link_cache_t *node;
483 node = cache_lookup(hd, rsrc, CACHE_REFRESH);
484 if (node == NULL) {
492 *usagep = ibpart_usage(node);
541 ibpart_consumer_remove(rcm_handle_t *hd, link_cache_t *node, uint_t flags,
549 node->pc_resource);
551 for (ibpart = node->pc_ibpart; ibpart != NULL;
584 link_cache_t *node;
590 node = cache_lookup(hd, rsrc, CACHE_NO_REFRESH);
591 if (node == NULL) {
600 cache_remove(node);
603 rv = ibpart_consumer_remove(hd, node, flags, info);
604 node_free(node);
683 ibpart_usage(link_cache_t *node)
695 rcm_log_message(RCM_TRACE2, "IBPART: usage(%s)\n", node->pc_resource);
698 if ((status = dladm_datalink_id2info(dld_handle, node->pc_linkid, NULL,
702 node->pc_resource, dladm_status2str(status, errmsg));
706 if (node->pc_state & CACHE_NODE_OFFLINED)
715 for (ibpart = node->pc_ibpart; ibpart != NULL;
725 node->pc_resource, strerror(errno));
730 if (node->pc_state & CACHE_NODE_OFFLINED) {
733 node->pc_resource, buf);
737 for (ibpart = node->pc_ibpart; ibpart != NULL;
747 "failure(%s)\n"), node->pc_resource,
760 node->pc_resource, buf);
771 * cache_lookup() - Get a cache node for a resource.
780 link_cache_t *node;
792 node = cache_head.pc_next;
793 for (; node != &cache_tail; node = node->pc_next) {
794 if (strcmp(rsrc, node->pc_resource) == 0) {
797 return (node);
804 * node_free - Free a node from the cache
807 node_free(link_cache_t *node)
811 if (node != NULL) {
812 free(node->pc_resource);
815 for (ibpart = node->pc_ibpart; ibpart != NULL; ibpart = next) {
819 free(node);
824 * cache_insert - Insert a resource node in cache
827 cache_insert(link_cache_t *node)
832 node->pc_next = cache_head.pc_next;
833 node->pc_prev = &cache_head;
835 node->pc_next->pc_prev = node;
836 node->pc_prev->pc_next = node;
840 * cache_remove() - Remove a resource node from cache.
843 cache_remove(link_cache_t *node)
846 node->pc_next->pc_prev = node->pc_prev;
847 node->pc_prev->pc_next = node->pc_next;
848 node->pc_next = NULL;
849 node->pc_prev = NULL;
865 link_cache_t *node;
906 node = cache_lookup(hd, rsrc, CACHE_NO_REFRESH);
907 if (node != NULL) {
916 if ((node = calloc(1, sizeof (link_cache_t))) == NULL) {
923 node->pc_resource = rsrc;
924 node->pc_ibpart = NULL;
925 node->pc_linkid = ibpart_attr.dia_physlinkid;
926 node->pc_state |= CACHE_NODE_NEW;
930 for (ibpart = node->pc_ibpart; ibpart != NULL;
944 free(node);
949 ibpart->dlib_next = node->pc_ibpart;
951 if (node->pc_ibpart != NULL)
952 node->pc_ibpart->dlib_prev = ibpart;
953 node->pc_ibpart = ibpart;
956 node->pc_state &= ~CACHE_NODE_STALE;
959 cache_insert(node);
992 link_cache_t *node, *nnode;
1001 node = cache_head.pc_next;
1002 for (; node != &cache_tail; node = node->pc_next) {
1003 node->pc_state |= CACHE_NODE_STALE;
1004 for (ibpart = node->pc_ibpart; ibpart != NULL;
1016 for (node = cache_head.pc_next; node != &cache_tail; node = nnode) {
1019 for (ibpart = node->pc_ibpart; ibpart != NULL; ibpart = next) {
1027 node->pc_ibpart = next;
1035 nnode = node->pc_next;
1036 if (node->pc_state & CACHE_NODE_STALE) {
1037 (void) rcm_unregister_interest(hd, node->pc_resource,
1040 node->pc_resource);
1041 assert(node->pc_ibpart == NULL);
1042 cache_remove(node);
1043 node_free(node);
1047 if (!(node->pc_state & CACHE_NODE_NEW))
1050 if (rcm_register_interest(hd, node->pc_resource, 0, NULL) !=
1054 node->pc_resource);
1058 node->pc_resource);
1059 node->pc_state &= ~CACHE_NODE_NEW;
1073 link_cache_t *node;
1078 node = cache_head.pc_next;
1079 while (node != &cache_tail) {
1080 cache_remove(node);
1081 node_free(node);
1082 node = cache_head.pc_next;
1138 ibpart_consumer_online(rcm_handle_t *hd, link_cache_t *node, char **errorp,
1145 node->pc_resource);
1147 for (ibpart = node->pc_ibpart; ibpart != NULL;
1168 ibpart_consumer_offline(rcm_handle_t *hd, link_cache_t *node, char **errorp,
1176 node->pc_resource);
1178 for (ibpart = node->pc_ibpart; ibpart != NULL;
1191 ibpart_consumer_online(hd, node, errorp, flags, info);
1204 link_cache_t *node;
1214 if ((node = cache_lookup(hd, rsrc, CACHE_REFRESH)) == NULL) {
1226 for (ibpart = node->pc_ibpart; ibpart != NULL;
1245 RCM_RESOURCE_LINK_NEW, node->pc_resource);
1263 link_cache_t *node;
1277 if ((node = cache_lookup(hd, rsrc, CACHE_NO_REFRESH)) != NULL) {
1278 (void) ibpart_offline_ibpart(node, IBPART_STALE,
1339 link_cache_t *node;
1349 if (((node = cache_lookup(hd, rsrc, CACHE_REFRESH)) != NULL) &&
1350 (!(node->pc_state & CACHE_NODE_OFFLINED))) {