Rev 3129 | Rev 3153 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3129 | Rev 3149 | ||
---|---|---|---|
Line 451... | Line 451... | ||
451 | * address space area. |
451 | * address space area. |
452 | */ |
452 | */ |
453 | 453 | ||
454 | cond = false; /* we are almost done */ |
454 | cond = false; /* we are almost done */ |
455 | i = (start_free - b) >> PAGE_WIDTH; |
455 | i = (start_free - b) >> PAGE_WIDTH; |
456 | if (!used_space_remove(area, start_free, |
456 | if (!used_space_remove(area, start_free, c - i)) |
457 | c - i)) |
- | |
458 | panic("Could not remove used " |
457 | panic("Could not remove used space.\n"); |
459 | "space.\n"); |
- | |
460 | } else { |
458 | } else { |
461 | /* |
459 | /* |
462 | * The interval of used space can be |
460 | * The interval of used space can be |
463 | * completely removed. |
461 | * completely removed. |
464 | */ |
462 | */ |
465 | if (!used_space_remove(area, b, c)) |
463 | if (!used_space_remove(area, b, c)) |
466 | panic("Could not remove used " |
464 | panic("Could not remove used space.\n"); |
467 | "space.\n"); |
- | |
468 | } |
465 | } |
469 | 466 | ||
470 | for (; i < c; i++) { |
467 | for (; i < c; i++) { |
471 | pte_t *pte; |
468 | pte_t *pte; |
472 | 469 | ||
Line 1628... | Line 1625... | ||
1628 | return 1; |
1625 | return 1; |
1629 | } |
1626 | } |
1630 | } |
1627 | } |
1631 | } |
1628 | } |
1632 | 1629 | ||
1633 | panic("Inconsistency detected while adding %d pages of used space at " |
1630 | panic("Inconsistency detected while adding %" PRIc " pages of used space at " |
1634 | "%p.\n", count, page); |
1631 | "%p.\n", count, page); |
1635 | } |
1632 | } |
1636 | 1633 | ||
1637 | /** Mark portion of address space area as unused. |
1634 | /** Mark portion of address space area as unused. |
1638 | * |
1635 | * |
Line 1807... | Line 1804... | ||
1807 | return 0; |
1804 | return 0; |
1808 | } |
1805 | } |
1809 | } |
1806 | } |
1810 | 1807 | ||
1811 | error: |
1808 | error: |
1812 | panic("Inconsistency detected while removing %d pages of used space " |
1809 | panic("Inconsistency detected while removing %" PRIc " pages of used space " |
1813 | "from %p.\n", count, page); |
1810 | "from %p.\n", count, page); |
1814 | } |
1811 | } |
1815 | 1812 | ||
1816 | /** Remove reference to address space area share info. |
1813 | /** Remove reference to address space area share info. |
1817 | * |
1814 | * |
Line 1906... | Line 1903... | ||
1906 | unsigned int i; |
1903 | unsigned int i; |
1907 | for (i = 0; i < node->keys; i++) { |
1904 | for (i = 0; i < node->keys; i++) { |
1908 | as_area_t *area = node->value[i]; |
1905 | as_area_t *area = node->value[i]; |
1909 | 1906 | ||
1910 | mutex_lock(&area->lock); |
1907 | mutex_lock(&area->lock); |
1911 | printf("as_area: %p, base=%p, pages=%d (%p - %p)\n", |
1908 | printf("as_area: %p, base=%p, pages=%" PRIc " (%p - %p)\n", |
1912 | area, area->base, area->pages, area->base, |
1909 | area, area->base, area->pages, area->base, |
1913 | area->base + area->pages*PAGE_SIZE); |
1910 | area->base + FRAMES2SIZE(area->pages)); |
1914 | mutex_unlock(&area->lock); |
1911 | mutex_unlock(&area->lock); |
1915 | } |
1912 | } |
1916 | } |
1913 | } |
1917 | 1914 | ||
1918 | mutex_unlock(&as->lock); |
1915 | mutex_unlock(&as->lock); |