The Pedigree Project
0.1
src
user
applications
remap-file-pages-contract-test
remap-file-pages-contract-test/contract.h
1
#ifndef REMAP_FILE_PAGES_CONTRACT_H
2
#define REMAP_FILE_PAGES_CONTRACT_H
3
4
#include <errno.h>
5
#include <stdint.h>
6
#include <stdio.h>
7
8
#include <sys/types.h>
9
10
#define CHECK(condition) \
11
do { \
12
if (!(condition)) { \
13
fprintf(stderr, "%s:%d: %s (errno=%d)\n", __FILE__, __LINE__, #condition, errno); \
14
failed = 1; \
15
goto out; \
16
} \
17
} while (0)
18
19
enum
{ RP_MEMFD, RP_RAMFS, RP_EXT2 };
20
struct
rp_file
{
21
int
fd;
22
int
backend;
23
char
path[128];
24
};
25
26
extern
size_t
rp_page;
27
int
rp_create(
struct
rp_file
* file,
int
backend);
28
int
rp_open_alias(
const
struct
rp_file
* file);
29
void
rp_close(
struct
rp_file
* file);
30
unsigned
char
rp_pattern(
size_t
offset);
31
int
rp_matches(
const
volatile
unsigned
char
* bytes,
size_t
offset,
size_t
length,
int
zero);
32
int
rp_contents(
int
fd,
size_t
offset,
size_t
length,
int
zero);
33
int
rp_size(
int
fd,
size_t
size);
34
int
rp_resident(
void
* address,
size_t
pages,
unsigned
bits,
const
char
* stage);
35
int
rp_reap(pid_t child,
int
milliseconds);
36
int
rp_send(
int
fd,
char
byte
);
37
int
rp_receive(
int
fd,
char
byte
);
38
int
rp_fault(
void
* address,
int
signal,
int
write_access);
39
int
rp_limit(
size_t
bytes);
40
int
rp_unprivileged(
void
);
41
int
rp_offsets(
void
);
42
int
rp_admission(
void
);
43
int
rp_lifetime(
void
);
44
int
rp_locks(
void
);
45
int
rp_resize(
void
);
46
47
#endif
rp_file
Definition
remap-file-pages-contract-test/contract.h:20
Generated on Tue Sep 29 2026 04:30:13 for The Pedigree Project by
1.9.8