1c3f4f28cSBen Widawsky /*- 2c3f4f28cSBen Widawsky * Copyright (c) 2018 Intel Corporation 3c3f4f28cSBen Widawsky * 4c3f4f28cSBen Widawsky * Redistribution and use in source and binary forms, with or without 5c3f4f28cSBen Widawsky * modification, are permitted provided that the following conditions are 6c3f4f28cSBen Widawsky * met: 7c3f4f28cSBen Widawsky * 1. Redistributions of source code must retain the above copyright 8c3f4f28cSBen Widawsky * notice, this list of conditions and the following disclaimer. 9c3f4f28cSBen Widawsky * 2. Redistributions in binary form must reproduce the above copyright 10c3f4f28cSBen Widawsky * notice, this list of conditions and the following disclaimer in 11c3f4f28cSBen Widawsky * the documentation and/or other materials provided with the 12c3f4f28cSBen Widawsky * distribution. 13c3f4f28cSBen Widawsky * 14c3f4f28cSBen Widawsky * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15c3f4f28cSBen Widawsky * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16c3f4f28cSBen Widawsky * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17c3f4f28cSBen Widawsky * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18c3f4f28cSBen Widawsky * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19c3f4f28cSBen Widawsky * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20c3f4f28cSBen Widawsky * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21c3f4f28cSBen Widawsky * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22c3f4f28cSBen Widawsky * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23c3f4f28cSBen Widawsky * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24c3f4f28cSBen Widawsky * SUCH DAMAGE. 25c3f4f28cSBen Widawsky * 26c3f4f28cSBen Widawsky * $FreeBSD$ 27c3f4f28cSBen Widawsky */ 28c3f4f28cSBen Widawsky 29c3f4f28cSBen Widawsky #ifndef _LINUX_SWAP_H_ 30c3f4f28cSBen Widawsky #define _LINUX_SWAP_H_ 31c3f4f28cSBen Widawsky 32c3f4f28cSBen Widawsky #include <vm/swap_pager.h> 33c3f4f28cSBen Widawsky #include <vm/vm_pageout.h> 34c3f4f28cSBen Widawsky 35c3f4f28cSBen Widawsky static inline long 36c3f4f28cSBen Widawsky get_nr_swap_pages(void) 37c3f4f28cSBen Widawsky { 38c3f4f28cSBen Widawsky int i, j; 39c3f4f28cSBen Widawsky 40c3f4f28cSBen Widawsky /* NB: This could be done cheaply by obtaining swap_total directly */ 41c3f4f28cSBen Widawsky swap_pager_status(&i, &j); 42c3f4f28cSBen Widawsky return i - j; 43c3f4f28cSBen Widawsky } 44c3f4f28cSBen Widawsky 45c3f4f28cSBen Widawsky static inline int 46c3f4f28cSBen Widawsky current_is_kswapd(void) 47c3f4f28cSBen Widawsky { 48*f82dd310SBen Widawsky 49*f82dd310SBen Widawsky return (curproc == pageproc); 50c3f4f28cSBen Widawsky } 51c3f4f28cSBen Widawsky 52c3f4f28cSBen Widawsky #endif 53