| 340 | } |
| 341 | |
| 342 | vm_offset_t |
| 343 | kmem_alloc_contig_domainset(struct domainset *ds, vm_size_t size, int flags, |
| 344 | vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary, |
| 345 | vm_memattr_t memattr) |
| 346 | { |
| 347 | struct vm_domainset_iter di; |
| 348 | vm_offset_t addr; |
| 349 | int domain; |
| 350 | |
| 351 | vm_domainset_iter_policy_init(&di, ds, &domain, &flags); |
| 352 | do { |
| 353 | addr = kmem_alloc_contig_domain(domain, size, flags, low, high, |
| 354 | alignment, boundary, memattr); |
| 355 | if (addr != 0) |
| 356 | break; |
| 357 | } while (vm_domainset_iter_policy(&di, &domain) == 0); |
| 358 | |
| 359 | return (addr); |
| 360 | } |
| 361 | |
| 362 | /* |
| 363 | * kmem_subinit: |
no test coverage detected