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