* Mapping function for valid or dirty bits in a page. * * Inputs are required to range within a page. */
| 4862 | * Inputs are required to range within a page. |
| 4863 | */ |
| 4864 | vm_page_bits_t |
| 4865 | vm_page_bits(int base, int size) |
| 4866 | { |
| 4867 | int first_bit; |
| 4868 | int last_bit; |
| 4869 | |
| 4870 | KASSERT( |
| 4871 | base + size <= PAGE_SIZE, |
| 4872 | ("vm_page_bits: illegal base/size %d/%d", base, size) |
| 4873 | ); |
| 4874 | |
| 4875 | if (size == 0) /* handle degenerate case */ |
| 4876 | return (0); |
| 4877 | |
| 4878 | first_bit = base >> DEV_BSHIFT; |
| 4879 | last_bit = (base + size - 1) >> DEV_BSHIFT; |
| 4880 | |
| 4881 | return (((vm_page_bits_t)2 << last_bit) - |
| 4882 | ((vm_page_bits_t)1 << first_bit)); |
| 4883 | } |
| 4884 | |
| 4885 | void |
| 4886 | vm_page_bits_set(vm_page_t m, vm_page_bits_t *bits, vm_page_bits_t set) |
no outgoing calls
no test coverage detected