diff options
author | Namhoon Kim <namhoonk@cs.unc.edu> | 2017-05-01 16:02:05 -0400 |
---|---|---|
committer | Namhoon Kim <namhoonk@cs.unc.edu> | 2017-05-01 16:02:05 -0400 |
commit | 11765fcf37057053065abd3715cf9cb46f2fa4db (patch) | |
tree | 8403d716bbcbd96493c481a82e7e02b5da9231e8 /src/kernel_iface.c | |
parent | bfee87a910560e022b04c81a026b1f88522cd62f (diff) |
RTSS17 submitwip-modechange
Diffstat (limited to 'src/kernel_iface.c')
-rw-r--r-- | src/kernel_iface.c | 6 |
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 | ||
143 | void enter_pgm_wait(void) | 146 | void 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 | * |