Lines Matching defs:res

445 	struct resource_node *res = NULL;
451 res = bus_cur->firstMem;
455 res = bus_cur->firstPFMem;
459 res = bus_cur->firstIO;
463 if (res) {
464 while (res) {
465 if (res->rangeno == rangeno)
467 if (res->next)
468 res = res->next;
469 else if (res->nextRange)
470 res = res->nextRange;
479 while (res) {
480 ++res->rangeno;
481 res = res->next;
487 static void fix_me(struct resource_node *res, struct bus_node *bus_cur, struct range_node *range)
490 switch (res->type) {
502 while (res) {
503 if (res->rangeno == -1) {
505 if ((res->start >= range->start) && (res->end <= range->end)) {
506 res->rangeno = range->rangeno;
507 debug("%s->rangeno in fix_resources is %d\n", str, res->rangeno);
508 switch (res->type) {
524 if (res->next)
525 res = res->next;
527 res = res->nextRange;
545 struct resource_node *res;
550 res = bus_cur->firstIO;
552 fix_me(res, bus_cur, range);
555 res = bus_cur->firstMem;
557 fix_me(res, bus_cur, range);
560 res = bus_cur->firstPFMem;
562 fix_me(res, bus_cur, range);
575 int ibmphp_add_resource(struct resource_node *res)
585 if (!res) {
590 bus_cur = find_bus_wprev(res->busno, NULL, 0);
599 switch (res->type) {
617 if ((res->start >= range_cur->start) && (res->end <= range_cur->end)) {
618 res->rangeno = range_cur->rangeno;
630 switch (res->type) {
641 res->rangeno = -1;
644 debug("The range is %d\n", res->rangeno);
647 switch (res->type) {
649 bus_cur->firstIO = res;
652 bus_cur->firstMem = res;
655 bus_cur->firstPFMem = res;
658 res->next = NULL;
659 res->nextRange = NULL;
667 if (res_cur->rangeno >= res->rangeno)
678 debug("i should be here, [%x - %x]\n", res->start, res->end);
679 res_prev->nextRange = res;
680 res->next = NULL;
681 res->nextRange = NULL;
682 } else if (res_cur->rangeno == res->rangeno) {
685 if (res->start < res_cur->start)
692 res_prev->next = res;
693 res->next = NULL;
694 res->nextRange = res_prev->nextRange;
696 } else if (res->start < res_cur->start) {
699 switch (res->type) {
701 bus_cur->firstIO = res;
704 bus_cur->firstMem = res;
707 bus_cur->firstPFMem = res;
711 res_prev->next = res;
713 res_prev->nextRange = res;
715 res->next = res_cur;
716 res->nextRange = NULL;
722 res->next = NULL;
723 switch (res->type) {
725 res->nextRange = bus_cur->firstIO;
726 bus_cur->firstIO = res;
729 res->nextRange = bus_cur->firstMem;
730 bus_cur->firstMem = res;
733 res->nextRange = bus_cur->firstPFMem;
734 bus_cur->firstPFMem = res;
737 } else if (res_cur->rangeno > res->rangeno) {
739 res_prev->nextRange = res;
740 res->next = NULL;
741 res->nextRange = res_cur;
757 int ibmphp_remove_resource(struct resource_node *res)
765 if (!res) {
770 bus_cur = find_bus_wprev(res->busno, NULL, 0);
777 switch (res->type) {
797 if ((res_cur->start == res->start) && (res_cur->end == res->end))
807 if (res->type == PFMEM) {
817 if ((res_cur->start == res->start) && (res_cur->end == res->end)) {
859 switch (res->type) {
871 switch (res->type) {
883 switch (res->type) {
917 static struct range_node *find_range(struct bus_node *bus_cur, struct resource_node *res)
921 switch (res->type) {
936 if (res->rangeno == range->rangeno)
952 int ibmphp_check_resource(struct resource_node *res, u8 bridge)
964 if (!res)
969 if (res->type == IO)
974 tmp_divide = res->len;
976 bus_cur = find_bus_wprev(res->busno, NULL, 0);
989 res->len -= 1;
991 switch (res->type) {
1024 if ((res_cur->start != range->start) && (len_tmp >= res->len)) {
1039 while ((len_tmp = res_cur->start - 1 - tmp_start) >= res->len) {
1052 if (flag && len_cur == res->len) {
1054 res->start = start_cur;
1055 res->len += 1; /* To restore the balance */
1056 res->end = res->start + res->len - 1;
1066 if ((range->end != res_cur->end) && (len_tmp >= res->len)) {
1080 while ((len_tmp = range->end - tmp_start) >= res->len) {
1092 if (flag && len_cur == res->len) {
1093 res->start = start_cur;
1094 res->len += 1; /* To restore the balance */
1095 res->end = res->start + res->len - 1;
1107 if ((res_cur->start != range->start) && (len_tmp >= res->len)) {
1119 while ((len_tmp = res_cur->start - 1 - tmp_start) >= res->len) {
1132 if (flag && len_cur == res->len) {
1133 res->start = start_cur;
1134 res->len += 1; /* To restore the balance */
1135 res->end = res->start + res->len - 1;
1144 if (len_tmp >= res->len) {
1156 while ((len_tmp = res_cur->start - 1 - tmp_start) >= res->len) {
1169 if (flag && len_cur == res->len) {
1170 res->start = start_cur;
1171 res->len += 1; /* To restore the balance */
1172 res->end = res->start + res->len - 1;
1191 switch (res->type) {
1205 if (len_tmp >= res->len) {
1217 while ((len_tmp = range->end - tmp_start) >= res->len) {
1230 if (flag && len_cur == res->len) {
1231 res->start = start_cur;
1232 res->len += 1; /* To restore the balance */
1233 res->end = res->start + res->len - 1;
1246 res->start = start_cur;
1247 res->len += 1; /* To restore the balance */
1248 res->end = res->start + res->len - 1;
1257 switch (res->type) {
1271 if (len_tmp >= res->len) {
1283 while ((len_tmp = range->end - tmp_start) >= res->len) {
1296 if (flag && len_cur == res->len) {
1297 res->start = start_cur;
1298 res->len += 1; /* To restore the balance */
1299 res->end = res->start + res->len - 1;
1312 res->start = start_cur;
1313 res->len += 1; /* To restore the balance */
1314 res->end = res->start + res->len - 1;
1320 res->start = start_cur;
1321 res->len += 1; /* To restore the balance */
1322 res->end = res->start + res->len - 1;
1428 struct resource_node *res = NULL;
1433 if (ibmphp_find_resource(bus_prev, range_cur->start, &res, IO) < 0)
1435 ibmphp_remove_resource(res);
1447 if (ibmphp_find_resource(bus_prev, range_cur->start, &res, MEM) < 0)
1450 ibmphp_remove_resource(res);
1461 if (ibmphp_find_resource(bus_prev, range_cur->start, &res, PFMEM) < 0)
1464 ibmphp_remove_resource(res);
1479 int ibmphp_find_resource(struct bus_node *bus, u32 start_address, struct resource_node **res, int flag)
1509 *res = res_cur;
1523 *res = res_cur;
1538 if (*res)
1539 debug("*res->start = %x\n", (*res)->start);
1758 struct resource_node *res;
1807 res = bus_cur->firstIO;
1808 while (res) {
1809 debug_pci("The range # is %d\n", res->rangeno);
1810 debug_pci("The bus, devfnc is %d, %x\n", res->busno, res->devfunc);
1811 debug_pci("[%x - %x], len=%x\n", res->start, res->end, res->len);
1812 if (res->next)
1813 res = res->next;
1814 else if (res->nextRange)
1815 res = res->nextRange;
1822 res = bus_cur->firstMem;
1823 while (res) {
1824 debug_pci("The range # is %d\n", res->rangeno);
1825 debug_pci("The bus, devfnc is %d, %x\n", res->busno, res->devfunc);
1826 debug_pci("[%x - %x], len=%x\n", res->start, res->end, res->len);
1827 if (res->next)
1828 res = res->next;
1829 else if (res->nextRange)
1830 res = res->nextRange;
1837 res = bus_cur->firstPFMem;
1838 while (res) {
1839 debug_pci("The range # is %d\n", res->rangeno);
1840 debug_pci("The bus, devfnc is %d, %x\n", res->busno, res->devfunc);
1841 debug_pci("[%x - %x], len=%x\n", res->start, res->end, res->len);
1842 if (res->next)
1843 res = res->next;
1844 else if (res->nextRange)
1845 res = res->nextRange;
1853 res = bus_cur->firstPFMemFromMem;
1854 while (res) {
1855 debug_pci("The range # is %d\n", res->rangeno);
1856 debug_pci("The bus, devfnc is %d, %x\n", res->busno, res->devfunc);
1857 debug_pci("[%x - %x], len=%x\n", res->start, res->end, res->len);
1858 res = res->next;