phys_pager.c (a720b31c2a11d36cca4a67cdf89916eee145f3fd) | phys_pager.c (d474440ab33c683b0e3f55e8e854f055615db6ec) |
---|---|
1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 2000 Peter Wemm 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 43 unchanged lines hidden (view full) --- 52static struct mtx phys_pager_mtx; 53 54static int default_phys_pager_getpages(vm_object_t object, vm_page_t *m, 55 int count, int *rbehind, int *rahead); 56static int default_phys_pager_populate(vm_object_t object, vm_pindex_t pidx, 57 int fault_type, vm_prot_t max_prot, vm_pindex_t *first, vm_pindex_t *last); 58static boolean_t default_phys_pager_haspage(vm_object_t object, 59 vm_pindex_t pindex, int *before, int *after); | 1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 2000 Peter Wemm 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 43 unchanged lines hidden (view full) --- 52static struct mtx phys_pager_mtx; 53 54static int default_phys_pager_getpages(vm_object_t object, vm_page_t *m, 55 int count, int *rbehind, int *rahead); 56static int default_phys_pager_populate(vm_object_t object, vm_pindex_t pidx, 57 int fault_type, vm_prot_t max_prot, vm_pindex_t *first, vm_pindex_t *last); 58static boolean_t default_phys_pager_haspage(vm_object_t object, 59 vm_pindex_t pindex, int *before, int *after); |
60struct phys_pager_ops default_phys_pg_ops = { | 60const struct phys_pager_ops default_phys_pg_ops = { |
61 .phys_pg_getpages = default_phys_pager_getpages, 62 .phys_pg_populate = default_phys_pager_populate, 63 .phys_pg_haspage = default_phys_pager_haspage, 64 .phys_pg_ctor = NULL, 65 .phys_pg_dtor = NULL, 66}; 67 68static void 69phys_pager_init(void) 70{ 71 72 TAILQ_INIT(&phys_pager_object_list); 73 mtx_init(&phys_pager_mtx, "phys_pager list", NULL, MTX_DEF); 74} 75 76vm_object_t | 61 .phys_pg_getpages = default_phys_pager_getpages, 62 .phys_pg_populate = default_phys_pager_populate, 63 .phys_pg_haspage = default_phys_pager_haspage, 64 .phys_pg_ctor = NULL, 65 .phys_pg_dtor = NULL, 66}; 67 68static void 69phys_pager_init(void) 70{ 71 72 TAILQ_INIT(&phys_pager_object_list); 73 mtx_init(&phys_pager_mtx, "phys_pager list", NULL, MTX_DEF); 74} 75 76vm_object_t |
77phys_pager_allocate(void *handle, struct phys_pager_ops *ops, void *data, | 77phys_pager_allocate(void *handle, const struct phys_pager_ops *ops, void *data, |
78 vm_ooffset_t size, vm_prot_t prot, vm_ooffset_t foff, struct ucred *cred) 79{ 80 vm_object_t object, object1; 81 vm_pindex_t pindex; 82 bool init; 83 84 /* 85 * Offset should be page aligned. --- 207 unchanged lines hidden (view full) --- 293static boolean_t 294phys_pager_haspage(vm_object_t object, vm_pindex_t pindex, int *before, 295 int *after) 296{ 297 return (object->un_pager.phys.ops->phys_pg_haspage(object, pindex, 298 before, after)); 299} 300 | 78 vm_ooffset_t size, vm_prot_t prot, vm_ooffset_t foff, struct ucred *cred) 79{ 80 vm_object_t object, object1; 81 vm_pindex_t pindex; 82 bool init; 83 84 /* 85 * Offset should be page aligned. --- 207 unchanged lines hidden (view full) --- 293static boolean_t 294phys_pager_haspage(vm_object_t object, vm_pindex_t pindex, int *before, 295 int *after) 296{ 297 return (object->un_pager.phys.ops->phys_pg_haspage(object, pindex, 298 before, after)); 299} 300 |
301struct pagerops physpagerops = { | 301const struct pagerops physpagerops = { |
302 .pgo_init = phys_pager_init, 303 .pgo_alloc = phys_pager_alloc, 304 .pgo_dealloc = phys_pager_dealloc, 305 .pgo_getpages = phys_pager_getpages, 306 .pgo_putpages = phys_pager_putpages, 307 .pgo_haspage = phys_pager_haspage, 308 .pgo_populate = phys_pager_populate, 309}; | 302 .pgo_init = phys_pager_init, 303 .pgo_alloc = phys_pager_alloc, 304 .pgo_dealloc = phys_pager_dealloc, 305 .pgo_getpages = phys_pager_getpages, 306 .pgo_putpages = phys_pager_putpages, 307 .pgo_haspage = phys_pager_haspage, 308 .pgo_populate = phys_pager_populate, 309}; |