aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2012-09-03 08:01:12 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2012-12-06 22:20:27 -0500
commit93e9d420554ed60cb3fa9fa47d3e97b33556b276 (patch)
tree63c8a246f182ceff0c1b67f170835025a148aa8b /src
parent3445e102f16ef5ef0ae0a1c78c16a98ce3d2e5b0 (diff)
Add control page offset checksstaging
Make sure the kernel and userspace compilers have the same idea of the layout of the control page.
Diffstat (limited to 'src')
-rw-r--r--src/kernel_iface.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/kernel_iface.c b/src/kernel_iface.c
index b9c8f59..4cc1af5 100644
--- a/src/kernel_iface.c
+++ b/src/kernel_iface.c
@@ -82,7 +82,16 @@ int init_kernel_iface(void)
82 int err = 0; 82 int err = 0;
83 long page_size = sysconf(_SC_PAGESIZE); 83 long page_size = sysconf(_SC_PAGESIZE);
84 84
85 BUILD_BUG_ON(sizeof(union np_flag) != sizeof(uint32_t)); 85 BUILD_BUG_ON(sizeof(union np_flag) != sizeof(uint64_t));
86
87 BUILD_BUG_ON(offsetof(struct control_page, sched.raw)
88 != LITMUS_CP_OFFSET_SCHED);
89 BUILD_BUG_ON(offsetof(struct control_page, irq_count)
90 != LITMUS_CP_OFFSET_IRQ_COUNT);
91 BUILD_BUG_ON(offsetof(struct control_page, ts_syscall_start)
92 != LITMUS_CP_OFFSET_TS_SC_START);
93 BUILD_BUG_ON(offsetof(struct control_page, irq_syscall_start)
94 != LITMUS_CP_OFFSET_IRQ_SC_START);
86 95
87 err = map_file(LITMUS_CTRL_DEVICE, (void**) &ctrl_page, CTRL_PAGES * page_size); 96 err = map_file(LITMUS_CTRL_DEVICE, (void**) &ctrl_page, CTRL_PAGES * page_size);
88 if (err) { 97 if (err) {