#ifndef SPLIT_H #define SPLIT_H #include #include #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