1de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand#include <unistd.h> 2de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand#include <stdbool.h> 3de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand 4de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand#ifndef __PAGINGTEST_H__ 5de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand#define __PAGINGTEST_H__ 6de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand#define USEC_PER_SEC 1000000ULL 7de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand#define mincore_vec_len(size) (((size) + sysconf(_SC_PAGE_SIZE) - 1) / sysconf(_SC_PAGE_SIZE)) 8de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand#define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a))) 9de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand 10de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand//Helpers 11de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchandint create_tmp_file(char *filename, off_t size); 12de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchandunsigned char *alloc_mincore_vec(size_t size); 13de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchandbool check_caching(void *buf, unsigned char *vec, size_t size, bool is_cached); 14de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand 15de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand//Tests 16de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchandint mmap_test(int test_runs, unsigned long long alloc_size); 17f63f1206023881a8b14e5e14ea51c08b561dae78Rom Lemarchandint pageinout_test(int test_runs, bool cache, unsigned long long file_size); 18f63f1206023881a8b14e5e14ea51c08b561dae78Rom Lemarchandint thrashing_test(int test_runs, bool cache); 19de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand 20de3942afaa4a84529f7c110fe302bb2b346fbe23Rom Lemarchand#endif //__PAGINGTEST_H__ 21