1f08c3bdfSopenharmony_ci/* SPDX-License-Identifier: GPL-2.0
2f08c3bdfSopenharmony_ci * Copyright (C) 2011  Red Hat, Inc.
3f08c3bdfSopenharmony_ci * Copyright (C) 2021 Xie Ziyao <xieziyao@huawei.com>
4f08c3bdfSopenharmony_ci */
5f08c3bdfSopenharmony_ci
6f08c3bdfSopenharmony_ci#ifndef LTP_GETRUSAGE03_H
7f08c3bdfSopenharmony_ci#define LTP_GETRUSAGE03_H
8f08c3bdfSopenharmony_ci
9f08c3bdfSopenharmony_ci#include "tst_test.h"
10f08c3bdfSopenharmony_ci
11f08c3bdfSopenharmony_ci#define DELTA_MAX 20480
12f08c3bdfSopenharmony_ci
13f08c3bdfSopenharmony_cistatic void consume_mb(int consume_nr)
14f08c3bdfSopenharmony_ci{
15f08c3bdfSopenharmony_ci	void *ptr;
16f08c3bdfSopenharmony_ci	size_t size;
17f08c3bdfSopenharmony_ci	unsigned long vmswap_size;
18f08c3bdfSopenharmony_ci
19f08c3bdfSopenharmony_ci	mlockall(MCL_CURRENT|MCL_FUTURE);
20f08c3bdfSopenharmony_ci
21f08c3bdfSopenharmony_ci	size = consume_nr * 1024 * 1024;
22f08c3bdfSopenharmony_ci	ptr = SAFE_MALLOC(size);
23f08c3bdfSopenharmony_ci	memset(ptr, 0, size);
24f08c3bdfSopenharmony_ci
25f08c3bdfSopenharmony_ci	SAFE_FILE_LINES_SCANF("/proc/self/status", "VmSwap: %lu", &vmswap_size);
26f08c3bdfSopenharmony_ci	if (vmswap_size > 0)
27f08c3bdfSopenharmony_ci		tst_brk(TBROK, "VmSwap is not zero");
28f08c3bdfSopenharmony_ci}
29f08c3bdfSopenharmony_ci
30f08c3bdfSopenharmony_cistatic int is_in_delta(long value)
31f08c3bdfSopenharmony_ci{
32f08c3bdfSopenharmony_ci	return (value >= -DELTA_MAX && value <= DELTA_MAX);
33f08c3bdfSopenharmony_ci}
34f08c3bdfSopenharmony_ci
35f08c3bdfSopenharmony_ci#endif //LTP_GETRUSAGE03_H
36