aboutsummaryrefslogtreecommitdiffstats
path: root/src/kernel_iface.c
diff options
context:
space:
mode:
authorNamhoon Kim <namhoonk@cs.unc.edu>2017-05-01 16:02:05 -0400
committerNamhoon Kim <namhoonk@cs.unc.edu>2017-05-01 16:02:05 -0400
commit11765fcf37057053065abd3715cf9cb46f2fa4db (patch)
tree8403d716bbcbd96493c481a82e7e02b5da9231e8 /src/kernel_iface.c
parentbfee87a910560e022b04c81a026b1f88522cd62f (diff)
RTSS17 submitwip-modechange
Diffstat (limited to 'src/kernel_iface.c')
-rw-r--r--src/kernel_iface.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/kernel_iface.c b/src/kernel_iface.c
index 5460594..273ecb2 100644
--- a/src/kernel_iface.c
+++ b/src/kernel_iface.c
@@ -98,6 +98,8 @@ int init_kernel_iface(void)
98 != LITMUS_CP_OFFSET_TS_SC_START); 98 != LITMUS_CP_OFFSET_TS_SC_START);
99 BUILD_BUG_ON(offsetof(struct control_page, irq_syscall_start) 99 BUILD_BUG_ON(offsetof(struct control_page, irq_syscall_start)
100 != LITMUS_CP_OFFSET_IRQ_SC_START); 100 != LITMUS_CP_OFFSET_IRQ_SC_START);
101 BUILD_BUG_ON(offsetof(struct control_page, mode_poll_task)
102 != LITMUS_CP_OFFSET_MODE_POLL_TASK);
101 103
102 err = map_file(LITMUS_CTRL_DEVICE, &mapped_at, CTRL_PAGES * page_size); 104 err = map_file(LITMUS_CTRL_DEVICE, &mapped_at, CTRL_PAGES * page_size);
103 105
@@ -110,7 +112,7 @@ int init_kernel_iface(void)
110 fprintf(stderr, "%s: cannot open LITMUS^RT control page (%m)\n", 112 fprintf(stderr, "%s: cannot open LITMUS^RT control page (%m)\n",
111 __FUNCTION__); 113 __FUNCTION__);
112 } 114 }
113 115 ctrl_page->mode_poll_task = 0;
114 return err; 116 return err;
115} 117}
116 118
@@ -140,6 +142,7 @@ int requested_to_preempt(void)
140 return (likely(ctrl_page != NULL) && ctrl_page->sched.np.preempt); 142 return (likely(ctrl_page != NULL) && ctrl_page->sched.np.preempt);
141} 143}
142 144
145#ifdef CONFIG_PGMRT_SUPPORT
143void enter_pgm_wait(void) 146void enter_pgm_wait(void)
144{ 147{
145 if (likely(ctrl_page != NULL) || init_kernel_iface() == 0) { 148 if (likely(ctrl_page != NULL) || init_kernel_iface() == 0) {
@@ -195,6 +198,7 @@ void exit_pgm_send(void)
195 fprintf(stderr, "exit_pgm_send: control page not mapped!\n"); 198 fprintf(stderr, "exit_pgm_send: control page not mapped!\n");
196 } 199 }
197} 200}
201#endif
198/* init and return a ptr to the control page for 202/* init and return a ptr to the control page for
199 * preemption and migration overhead analysis 203 * preemption and migration overhead analysis
200 * 204 *