1 /*- 2 * Copyright (c) 2000, 2020 Oracle and/or its affiliates. All rights reserved. 3 * 4 * See the file LICENSE for license information. 5 * 6 * $Id$ 7 */ 8 9 #include "db_config.h" 10 11 #include "db_int.h" 12 13 /* 14 * __db_util_cache -- 15 * Compute if we have enough cache. 16 * 17 * PUBLIC: int __db_util_cache __P((DB *, u_int32_t *, int *)); 18 */ 19 int __db_util_cache(dbp,cachep,resizep)20__db_util_cache(dbp, cachep, resizep) 21 DB *dbp; 22 u_int32_t *cachep; 23 int *resizep; 24 { 25 u_int32_t pgsize; 26 int ret; 27 28 /* Get the current page size. */ 29 if ((ret = dbp->get_pagesize(dbp, &pgsize)) != 0) 30 return (ret); 31 32 /* 33 * The current cache size is in cachep. If it's insufficient, set the 34 * the memory referenced by resizep to 1 and set cachep to the minimum 35 * size needed. 36 * 37 * Make sure our current cache is big enough. We want at least 38 * DB_MINPAGECACHE pages in the cache. 39 */ 40 if ((*cachep / pgsize) < DB_MINPAGECACHE) { 41 *resizep = 1; 42 *cachep = pgsize * DB_MINPAGECACHE; 43 } else 44 *resizep = 0; 45 46 return (0); 47 } 48