[Xenomai-git] Philippe Gerum : drivers/testing: move to new-style atomic sections
Module: xenomai-forge Branch: next Commit: 2d9042c298493a2f5b76d1edd5a67f85081cf076 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=2d9042c298493a2f5b76d1edd5a67f85081cf076 Author: Philippe Gerum Date: Thu Apr 10 11:41:22 2014 +0200 drivers/testing: move to new-style atomic sections --- kernel/drivers/testing/timerbench.c | 33 +++-- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/kernel/drivers/testing/timerbench.c b/kernel/drivers/testing/timerbench.c index 7d056d4..af75d56 100644 --- a/kernel/drivers/testing/timerbench.c +++ b/kernel/drivers/testing/timerbench.c @@ -141,22 +141,19 @@ static void eval_outer_loop(struct rt_tmbench_context *ctx) static void timer_task_proc(void *arg) { struct rt_tmbench_context *ctx = arg; - int count; + int count, err; + spl_t s; /* first event: one millisecond from now. */ ctx->date = rtdm_clock_read_monotonic() + 100; while (1) { - int err; - for (count = 0; count < ctx->samples_per_sec; count++) { - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); - err = - rtdm_task_sleep_abs(ctx->date, - RTDM_TIMERMODE_ABSOLUTE); - ); - + cobalt_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); + err = rtdm_task_sleep_abs(ctx->date, + RTDM_TIMERMODE_ABSOLUTE); + cobalt_atomic_leave(s); if (err) return; @@ -237,6 +234,7 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, struct rttst_tmbench_config __user *user_config) { int err = 0; + spl_t s; struct rttst_tmbench_config config_buf; struct rttst_tmbench_config *config = @@ -311,16 +309,15 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, if (!test_bit(RTDM_CLOSING, &context->context_flags)) { ctx->mode = RTTST_TMBENCH_HANDLER; - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); + cobalt_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); - /* first event: one millisecond from now. */ - ctx->date = ctx->start_time + 100; + /* first event: one millisecond from now. */ + ctx->date = ctx->start_time + 100; - err = - rtdm_timer_start(&ctx->timer, ctx->date, 0, -RTDM_TIMERMODE_ABSOLUTE); - ); + err = rtdm_timer_start(&ctx->timer, ctx->date, 0, + RTDM_TIMERMODE_ABSOLUTE); + cobalt_atomic_leave(s); } } ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : drivers/testing: move to new-style atomic sections
Module: xenomai-forge Branch: next Commit: c8e09bd0421ba2a143342f9436adf3d306c17c06 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=c8e09bd0421ba2a143342f9436adf3d306c17c06 Author: Philippe Gerum Date: Thu Apr 10 11:41:22 2014 +0200 drivers/testing: move to new-style atomic sections --- kernel/drivers/testing/timerbench.c | 33 +++-- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/kernel/drivers/testing/timerbench.c b/kernel/drivers/testing/timerbench.c index 7d056d4..af75d56 100644 --- a/kernel/drivers/testing/timerbench.c +++ b/kernel/drivers/testing/timerbench.c @@ -141,22 +141,19 @@ static void eval_outer_loop(struct rt_tmbench_context *ctx) static void timer_task_proc(void *arg) { struct rt_tmbench_context *ctx = arg; - int count; + int count, err; + spl_t s; /* first event: one millisecond from now. */ ctx->date = rtdm_clock_read_monotonic() + 100; while (1) { - int err; - for (count = 0; count < ctx->samples_per_sec; count++) { - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); - err = - rtdm_task_sleep_abs(ctx->date, - RTDM_TIMERMODE_ABSOLUTE); - ); - + cobalt_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); + err = rtdm_task_sleep_abs(ctx->date, + RTDM_TIMERMODE_ABSOLUTE); + cobalt_atomic_leave(s); if (err) return; @@ -237,6 +234,7 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, struct rttst_tmbench_config __user *user_config) { int err = 0; + spl_t s; struct rttst_tmbench_config config_buf; struct rttst_tmbench_config *config = @@ -311,16 +309,15 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, if (!test_bit(RTDM_CLOSING, &context->context_flags)) { ctx->mode = RTTST_TMBENCH_HANDLER; - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); + cobalt_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); - /* first event: one millisecond from now. */ - ctx->date = ctx->start_time + 100; + /* first event: one millisecond from now. */ + ctx->date = ctx->start_time + 100; - err = - rtdm_timer_start(&ctx->timer, ctx->date, 0, -RTDM_TIMERMODE_ABSOLUTE); - ); + err = rtdm_timer_start(&ctx->timer, ctx->date, 0, + RTDM_TIMERMODE_ABSOLUTE); + cobalt_atomic_leave(s); } } ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : drivers/testing: move to new-style atomic sections
Module: xenomai-forge Branch: rtdm-api-waitqueues Commit: 9e0b1d0650123e5c57320b80c1fcd2c9a4345ae1 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=9e0b1d0650123e5c57320b80c1fcd2c9a4345ae1 Author: Philippe Gerum Date: Thu Apr 10 11:41:22 2014 +0200 drivers/testing: move to new-style atomic sections --- kernel/drivers/testing/timerbench.c | 33 +++-- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/kernel/drivers/testing/timerbench.c b/kernel/drivers/testing/timerbench.c index 7d056d4..3a88cd9 100644 --- a/kernel/drivers/testing/timerbench.c +++ b/kernel/drivers/testing/timerbench.c @@ -141,22 +141,19 @@ static void eval_outer_loop(struct rt_tmbench_context *ctx) static void timer_task_proc(void *arg) { struct rt_tmbench_context *ctx = arg; - int count; + int count, err; + spl_t s; /* first event: one millisecond from now. */ ctx->date = rtdm_clock_read_monotonic() + 100; while (1) { - int err; - for (count = 0; count < ctx->samples_per_sec; count++) { - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); - err = - rtdm_task_sleep_abs(ctx->date, - RTDM_TIMERMODE_ABSOLUTE); - ); - + rtdm_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); + err = rtdm_task_sleep_abs(ctx->date, + RTDM_TIMERMODE_ABSOLUTE); + rtdm_atomic_leave(s); if (err) return; @@ -237,6 +234,7 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, struct rttst_tmbench_config __user *user_config) { int err = 0; + spl_t s; struct rttst_tmbench_config config_buf; struct rttst_tmbench_config *config = @@ -311,16 +309,15 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, if (!test_bit(RTDM_CLOSING, &context->context_flags)) { ctx->mode = RTTST_TMBENCH_HANDLER; - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); + rtdm_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); - /* first event: one millisecond from now. */ - ctx->date = ctx->start_time + 100; + /* first event: one millisecond from now. */ + ctx->date = ctx->start_time + 100; - err = - rtdm_timer_start(&ctx->timer, ctx->date, 0, -RTDM_TIMERMODE_ABSOLUTE); - ); + err = rtdm_timer_start(&ctx->timer, ctx->date, 0, + RTDM_TIMERMODE_ABSOLUTE); + rtdm_atomic_leave(s); } } ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : drivers/testing: move to new-style atomic sections
Module: xenomai-forge Branch: rtdm-api-waitqueues Commit: beffa57f594604b9e4804a154691081a784bfdd5 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=beffa57f594604b9e4804a154691081a784bfdd5 Author: Philippe Gerum Date: Thu Apr 10 11:41:22 2014 +0200 drivers/testing: move to new-style atomic sections --- kernel/drivers/testing/timerbench.c | 33 +++-- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/kernel/drivers/testing/timerbench.c b/kernel/drivers/testing/timerbench.c index efb5ca2..d6f2b64 100644 --- a/kernel/drivers/testing/timerbench.c +++ b/kernel/drivers/testing/timerbench.c @@ -141,22 +141,19 @@ static void eval_outer_loop(struct rt_tmbench_context *ctx) static void timer_task_proc(void *arg) { struct rt_tmbench_context *ctx = arg; - int count; + int count, err; + spl_t s; /* first event: one millisecond from now. */ ctx->date = rtdm_clock_read_monotonic() + 100; while (1) { - int err; - for (count = 0; count < ctx->samples_per_sec; count++) { - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); - err = - rtdm_task_sleep_abs(ctx->date, - RTDM_TIMERMODE_ABSOLUTE); - ); - + rtdm_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); + err = rtdm_task_sleep_abs(ctx->date, + RTDM_TIMERMODE_ABSOLUTE); + rtdm_atomic_leave(s); if (err) return; @@ -237,6 +234,7 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, struct rttst_tmbench_config __user *user_config) { int err = 0; + spl_t s; struct rttst_tmbench_config config_buf; struct rttst_tmbench_config *config = @@ -311,16 +309,15 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, if (!test_bit(RTDM_CLOSING, &context->context_flags)) { ctx->mode = RTTST_TMBENCH_HANDLER; - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); + rtdm_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); - /* first event: one millisecond from now. */ - ctx->date = ctx->start_time + 100; + /* first event: one millisecond from now. */ + ctx->date = ctx->start_time + 100; - err = - rtdm_timer_start(&ctx->timer, ctx->date, 0, -RTDM_TIMERMODE_ABSOLUTE); - ); + err = rtdm_timer_start(&ctx->timer, ctx->date, 0, + RTDM_TIMERMODE_ABSOLUTE); + rtdm_atomic_leave(s); } } ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : drivers/testing: move to new-style atomic sections
Module: xenomai-forge Branch: rtdm-api-rework Commit: 12ffe56eb13e35a306f6f1b004f2ddd355e03687 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=12ffe56eb13e35a306f6f1b004f2ddd355e03687 Author: Philippe Gerum Date: Thu Apr 10 11:41:22 2014 +0200 drivers/testing: move to new-style atomic sections --- kernel/drivers/testing/timerbench.c | 33 +++-- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/kernel/drivers/testing/timerbench.c b/kernel/drivers/testing/timerbench.c index efb5ca2..d6f2b64 100644 --- a/kernel/drivers/testing/timerbench.c +++ b/kernel/drivers/testing/timerbench.c @@ -141,22 +141,19 @@ static void eval_outer_loop(struct rt_tmbench_context *ctx) static void timer_task_proc(void *arg) { struct rt_tmbench_context *ctx = arg; - int count; + int count, err; + spl_t s; /* first event: one millisecond from now. */ ctx->date = rtdm_clock_read_monotonic() + 100; while (1) { - int err; - for (count = 0; count < ctx->samples_per_sec; count++) { - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); - err = - rtdm_task_sleep_abs(ctx->date, - RTDM_TIMERMODE_ABSOLUTE); - ); - + rtdm_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); + err = rtdm_task_sleep_abs(ctx->date, + RTDM_TIMERMODE_ABSOLUTE); + rtdm_atomic_leave(s); if (err) return; @@ -237,6 +234,7 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, struct rttst_tmbench_config __user *user_config) { int err = 0; + spl_t s; struct rttst_tmbench_config config_buf; struct rttst_tmbench_config *config = @@ -311,16 +309,15 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, if (!test_bit(RTDM_CLOSING, &context->context_flags)) { ctx->mode = RTTST_TMBENCH_HANDLER; - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); + rtdm_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); - /* first event: one millisecond from now. */ - ctx->date = ctx->start_time + 100; + /* first event: one millisecond from now. */ + ctx->date = ctx->start_time + 100; - err = - rtdm_timer_start(&ctx->timer, ctx->date, 0, -RTDM_TIMERMODE_ABSOLUTE); - ); + err = rtdm_timer_start(&ctx->timer, ctx->date, 0, + RTDM_TIMERMODE_ABSOLUTE); + rtdm_atomic_leave(s); } } ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : drivers/testing: move to new-style atomic sections
Module: xenomai-forge Branch: rtdm-api-rework Commit: e03859c572393265ee9aa86c4d741e55add9399f URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=e03859c572393265ee9aa86c4d741e55add9399f Author: Philippe Gerum Date: Thu Apr 10 11:41:22 2014 +0200 drivers/testing: move to new-style atomic sections --- kernel/drivers/testing/timerbench.c | 33 +++-- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/kernel/drivers/testing/timerbench.c b/kernel/drivers/testing/timerbench.c index efb5ca2..d6f2b64 100644 --- a/kernel/drivers/testing/timerbench.c +++ b/kernel/drivers/testing/timerbench.c @@ -141,22 +141,19 @@ static void eval_outer_loop(struct rt_tmbench_context *ctx) static void timer_task_proc(void *arg) { struct rt_tmbench_context *ctx = arg; - int count; + int count, err; + spl_t s; /* first event: one millisecond from now. */ ctx->date = rtdm_clock_read_monotonic() + 100; while (1) { - int err; - for (count = 0; count < ctx->samples_per_sec; count++) { - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); - err = - rtdm_task_sleep_abs(ctx->date, - RTDM_TIMERMODE_ABSOLUTE); - ); - + rtdm_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); + err = rtdm_task_sleep_abs(ctx->date, + RTDM_TIMERMODE_ABSOLUTE); + rtdm_atomic_leave(s); if (err) return; @@ -237,6 +234,7 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, struct rttst_tmbench_config __user *user_config) { int err = 0; + spl_t s; struct rttst_tmbench_config config_buf; struct rttst_tmbench_config *config = @@ -311,16 +309,15 @@ static int rt_tmbench_start(struct rtdm_dev_context *context, if (!test_bit(RTDM_CLOSING, &context->context_flags)) { ctx->mode = RTTST_TMBENCH_HANDLER; - RTDM_EXECUTE_ATOMICALLY( - ctx->start_time = rtdm_clock_read_monotonic(); + rtdm_atomic_enter(s); + ctx->start_time = rtdm_clock_read_monotonic(); - /* first event: one millisecond from now. */ - ctx->date = ctx->start_time + 100; + /* first event: one millisecond from now. */ + ctx->date = ctx->start_time + 100; - err = - rtdm_timer_start(&ctx->timer, ctx->date, 0, -RTDM_TIMERMODE_ABSOLUTE); - ); + err = rtdm_timer_start(&ctx->timer, ctx->date, 0, + RTDM_TIMERMODE_ABSOLUTE); + rtdm_atomic_leave(s); } } ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git