Lines Matching defs:range
116 /* need to insert our range */
164 * 2. If cannot allocate out of PFMem range, allocate from Mem ranges. PFmemFromMem
294 * assign a -1 and then update once the range
336 * range actually appears...
361 * This function adds a range into a sorted list of ranges per bus for a particular
362 * range type, it then calls another routine to update the range numbers on the
365 * Input: type of the resource, range to add, current bus
366 * Output: 0 or -1, bus and range ptrs
368 static int add_bus_range(int type, struct range_node *range, struct bus_node *bus_cur)
392 if (range->start < range_cur->start)
399 /* our range will go at the beginning of the list */
402 bus_cur->rangeMem = range;
405 bus_cur->rangePFMem = range;
408 bus_cur->rangeIO = range;
411 range->next = range_cur;
412 range->rangeno = 1;
415 /* our range will go at the end of the list */
416 range->next = NULL;
417 range_prev->next = range;
418 range->rangeno = range_prev->rangeno + 1;
421 /* the range is in the middle */
422 range_prev->next = range;
423 range->next = range_cur;
424 range->rangeno = range_cur->rangeno;
439 * the range numbers that they correspond to. It was called from add_bus_range fnc
478 /* found the range */
487 static void fix_me(struct resource_node *res, struct bus_node *bus_cur, struct range_node *range)
504 while (range) {
505 if ((res->start >= range->start) && (res->end <= range->end)) {
506 res->rangeno = range->rangeno;
521 range = range->next;
533 * This routine reassigns the range numbers to the resources that had a -1
536 * know the range, we assign -1, and this routine is called after a new range
537 * is assigned to see the resources with unknown range belong to the added range
544 struct range_node *range;
551 range = bus_cur->rangeIO;
552 fix_me(res, bus_cur, range);
556 range = bus_cur->rangeMem;
557 fix_me(res, bus_cur, range);
561 range = bus_cur->rangePFMem;
562 fix_me(res, bus_cur, range);
644 debug("The range is %d\n", res->rangeno);
683 /* in the same range */
691 /* the last resource in this range */
697 /* at the beginning or middle of the range */
719 /* this is the case where it is 1st occurrence of the range */
919 struct range_node *range = NULL;
923 range = bus_cur->rangeIO;
926 range = bus_cur->rangeMem;
929 range = bus_cur->rangePFMem;
935 while (range) {
936 if (res->rangeno == range->rangeno)
938 range = range->next;
940 return range;
955 struct range_node *range = NULL;
1011 range = find_range(bus_cur, res_cur);
1014 if (!range) {
1015 err("no range for the device exists... bailing out...\n");
1019 /* found our range */
1022 len_tmp = res_cur->start - 1 - range->start;
1024 if ((res_cur->start != range->start) && (len_tmp >= res->len)) {
1029 if ((range->start % tmp_divide) == 0) {
1033 start_cur = range->start;
1036 tmp_start = range->start;
1063 /* last device on the range */
1064 len_tmp = range->end - (res_cur->end + 1);
1066 if ((range->end != res_cur->end) && (len_tmp >= res->len)) {
1080 while ((len_tmp = range->end - tmp_start) >= res->len) {
1088 if (tmp_start >= range->end)
1104 /* 1st device on this range */
1105 len_tmp = res_cur->start - 1 - range->start;
1107 if ((res_cur->start != range->start) && (len_tmp >= res->len)) {
1109 if ((range->start % tmp_divide) == 0) {
1113 start_cur = range->start;
1116 tmp_start = range->start;
1141 /* in the same range */
1190 /* need to find appropriate range */
1193 range = bus_cur->rangeIO;
1196 range = bus_cur->rangeMem;
1199 range = bus_cur->rangePFMem;
1202 while (range) {
1203 len_tmp = range->end - range->start;
1207 if ((range->start % tmp_divide) == 0) {
1211 start_cur = range->start;
1214 tmp_start = range->start;
1217 while ((len_tmp = range->end - tmp_start) >= res->len) {
1225 if (tmp_start >= range->end)
1238 range = range->next;
1241 if ((!range) && (len_cur == 0)) {
1243 err("no appropriate range.. bailing out...\n");
1259 range = bus_cur->rangeIO;
1262 range = bus_cur->rangeMem;
1265 range = bus_cur->rangePFMem;
1268 while (range) {
1269 len_tmp = range->end - range->start;
1273 if ((range->start % tmp_divide) == 0) {
1277 start_cur = range->start;
1280 tmp_start = range->start;
1283 while ((len_tmp = range->end - tmp_start) >= res->len) {
1291 if (tmp_start >= range->end)
1304 range = range->next;
1307 if ((!range) && (len_cur == 0)) {
1309 err("no appropriate range.. bailing out...\n");
1326 err("no appropriate range.. bailing out...\n");
1657 * pfmem out of memory buckets of the bus. If so, it will change the range numbers
1757 struct range_node *range;
1774 range = bus_cur->rangeIO;
1776 debug_pci("rangeno is %d\n", range->rangeno);
1777 debug_pci("[%x - %x]\n", range->start, range->end);
1778 range = range->next;
1784 range = bus_cur->rangeMem;
1786 debug_pci("rangeno is %d\n", range->rangeno);
1787 debug_pci("[%x - %x]\n", range->start, range->end);
1788 range = range->next;
1795 range = bus_cur->rangePFMem;
1797 debug_pci("rangeno is %d\n", range->rangeno);
1798 debug_pci("[%x - %x]\n", range->start, range->end);
1799 range = range->next;
1809 debug_pci("The range # is %d\n", res->rangeno);
1824 debug_pci("The range # is %d\n", res->rangeno);
1839 debug_pci("The range # is %d\n", res->rangeno);
1855 debug_pci("The range # is %d\n", res->rangeno);
1865 static int range_exists_already(struct range_node *range, struct bus_node *bus_cur, u8 type)
1879 err("wrong type passed to find out if range already exists\n");
1884 if ((range_cur->start == range->start) && (range_cur->end == range->end))
1893 * range info for the secondary bus, and will also input this info into
1916 struct range_node *range;
1972 range = kzalloc(sizeof(struct range_node), GFP_KERNEL);
1973 if (!range)
1976 range->start = start_address;
1977 range->end = end_address + 0xfff;
1980 if (!range_exists_already(range, bus_sec, IO)) {
1981 add_bus_range(IO, range, bus_sec);
1984 kfree(range);
1985 range = NULL;
1989 range->rangeno = 1;
1990 bus_sec->rangeIO = range;
1998 kfree(range);
2019 range = kzalloc(sizeof(struct range_node), GFP_KERNEL);
2020 if (!range)
2023 range->start = start_address;
2024 range->end = end_address + 0xfffff;
2027 if (!range_exists_already(range, bus_sec, MEM)) {
2028 add_bus_range(MEM, range, bus_sec);
2031 kfree(range);
2032 range = NULL;
2036 range->rangeno = 1;
2037 bus_sec->rangeMem = range;
2046 kfree(range);
2071 range = kzalloc(sizeof(struct range_node), GFP_KERNEL);
2072 if (!range)
2075 range->start = start_address;
2076 range->end = end_address + 0xfffff;
2079 if (!range_exists_already(range, bus_sec, PFMEM)) {
2080 add_bus_range(PFMEM, range, bus_sec);
2083 kfree(range);
2084 range = NULL;
2088 range->rangeno = 1;
2089 bus_sec->rangePFMem = range;
2097 kfree(range);