feat(pager): resolve write faults and recycle scrubbed frames
This commit is contained in:
7 files changed
+523
No files matched your search
@@ -0,0 +1,43 @@
|
||||
#ifndef SPLIT_H
|
||||
#define SPLIT_H
|
||||
#include <microkit.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define PAGES 4u
|
||||
#define CLIENTS 2u
|
||||
#define SLOTS (PAGES * CLIENTS)
|
||||
#define FRAMES (PAGES + SLOTS)
|
||||
#define BYTES 4096u
|
||||
#define BASE 0x40000000ul
|
||||
#define BACKING 0x60000000ul
|
||||
#define TASK 0x50000000ul
|
||||
#define LIMIT 255u
|
||||
|
||||
struct job {
|
||||
unsigned page, length;
|
||||
char text[LIMIT + 1];
|
||||
};
|
||||
|
||||
static inline void number(unsigned long n) {
|
||||
char s[24];
|
||||
unsigned i = sizeof(s) - 1;
|
||||
s[i] = 0;
|
||||
do {
|
||||
s[--i] = '0' + n % 10;
|
||||
n /= 10;
|
||||
} while (n);
|
||||
microkit_dbg_puts(s + i);
|
||||
}
|
||||
|
||||
static inline unsigned char seed(unsigned page, unsigned offset) {
|
||||
return (page * 17u + offset) % 256u;
|
||||
}
|
||||
|
||||
static inline void require(int ok, const char *message) {
|
||||
if (ok) return;
|
||||
microkit_dbg_puts("@error ");
|
||||
microkit_dbg_puts(message);
|
||||
microkit_dbg_puts("\n");
|
||||
for (;;) seL4_Yield();
|
||||
}
|
||||
#endif
|
||||
Reference in new issue
Block a user