Module: xenomai-gch Branch: for-forge Commit: 79b17874a404156581a4b093decc20eaeb41be94 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=79b17874a404156581a4b093decc20eaeb41be94
Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org> Date: Sat Feb 1 20:29:54 2014 +0100 drivers/testing: adapt switchtest after RTDM changes --- kernel/drivers/testing/switchtest.c | 111 ++++++++++++++--------------------- 1 file changed, 45 insertions(+), 66 deletions(-) diff --git a/kernel/drivers/testing/switchtest.c b/kernel/drivers/testing/switchtest.c index 4523917..668ee17 100644 --- a/kernel/drivers/testing/switchtest.c +++ b/kernel/drivers/testing/switchtest.c @@ -511,11 +511,9 @@ static void rtswitch_utask_waker(rtdm_nrtsig_t sig, void *arg) up(&ctx->utask->nrt_synch); } -static int rtswitch_open(struct rtdm_dev_context *context, - rtdm_user_info_t *user_info, - int oflags) +static int rtswitch_open(struct xnfd *context, int oflags) { - rtswitch_context_t *ctx = (rtswitch_context_t *) context->dev_private; + rtswitch_context_t *ctx = rtdm_context_to_private(context); int err; ctx->tasks = NULL; @@ -534,10 +532,9 @@ static int rtswitch_open(struct rtdm_dev_context *context, return 0; } -static int rtswitch_close(struct rtdm_dev_context *context, - rtdm_user_info_t *user_info) +static void rtswitch_close(struct xnfd *context) { - rtswitch_context_t *ctx = (rtswitch_context_t *) context->dev_private; + rtswitch_context_t *ctx = rtdm_context_to_private(context); unsigned i; if (ctx->tasks) { @@ -556,16 +553,13 @@ static int rtswitch_close(struct rtdm_dev_context *context, } rtdm_timer_destroy(&ctx->wake_up_delay); rtdm_nrtsig_destroy(&ctx->wake_utask); - - return 0; } -static int rtswitch_ioctl_nrt(struct rtdm_dev_context *context, - rtdm_user_info_t *user_info, +static int rtswitch_ioctl_nrt(struct xnfd *context, unsigned int request, void *arg) { - rtswitch_context_t *ctx = (rtswitch_context_t *) context->dev_private; + rtswitch_context_t *ctx = rtdm_context_to_private(context); struct rttst_swtest_task task; struct rttst_swtest_dir fromto; unsigned long count; @@ -588,15 +582,15 @@ static int rtswitch_ioctl_nrt(struct rtdm_dev_context *context, return 0; case RTTST_RTIOC_SWTEST_REGISTER_UTASK: - if (!rtdm_rw_user_ok(user_info, arg, sizeof(task))) + if (!rtdm_rw_user_ok(context, arg, sizeof(task))) return -EFAULT; - rtdm_copy_from_user(user_info, &task, arg, sizeof(task)); + rtdm_copy_from_user(context, &task, arg, sizeof(task)); err = rtswitch_register_task(ctx, &task); if (!err) - rtdm_copy_to_user(user_info, + rtdm_copy_to_user(context, arg, &task, sizeof(task)); @@ -604,15 +598,15 @@ static int rtswitch_ioctl_nrt(struct rtdm_dev_context *context, return err; case RTTST_RTIOC_SWTEST_CREATE_KTASK: - if (!rtdm_rw_user_ok(user_info, arg, sizeof(task))) + if (!rtdm_rw_user_ok(context, arg, sizeof(task))) return -EFAULT; - rtdm_copy_from_user(user_info, &task, arg, sizeof(task)); + rtdm_copy_from_user(context, &task, arg, sizeof(task)); err = rtswitch_create_ktask(ctx, &task); if (!err) - rtdm_copy_to_user(user_info, + rtdm_copy_to_user(context, arg, &task, sizeof(task)); @@ -620,18 +614,18 @@ static int rtswitch_ioctl_nrt(struct rtdm_dev_context *context, return err; case RTTST_RTIOC_SWTEST_PEND: - if (!rtdm_read_user_ok(user_info, arg, sizeof(task))) + if (!rtdm_read_user_ok(context, arg, sizeof(task))) return -EFAULT; - rtdm_copy_from_user(user_info, &task, arg, sizeof(task)); + rtdm_copy_from_user(context, &task, arg, sizeof(task)); return rtswitch_pend_nrt(ctx, task.index); case RTTST_RTIOC_SWTEST_SWITCH_TO: - if (!rtdm_read_user_ok(user_info, arg, sizeof(fromto))) + if (!rtdm_read_user_ok(context, arg, sizeof(fromto))) return -EFAULT; - rtdm_copy_from_user(user_info, + rtdm_copy_from_user(context, &fromto, arg, sizeof(fromto)); @@ -639,20 +633,20 @@ static int rtswitch_ioctl_nrt(struct rtdm_dev_context *context, return rtswitch_to_nrt(ctx, fromto.from, fromto.to); case RTTST_RTIOC_SWTEST_GET_SWITCHES_COUNT: - if (!rtdm_rw_user_ok(user_info, arg, sizeof(count))) + if (!rtdm_rw_user_ok(context, arg, sizeof(count))) return -EFAULT; count = ctx->switches_count; - rtdm_copy_to_user(user_info, arg, &count, sizeof(count)); + rtdm_copy_to_user(context, arg, &count, sizeof(count)); return 0; case RTTST_RTIOC_SWTEST_GET_LAST_ERROR: - if (!rtdm_rw_user_ok(user_info, arg, sizeof(ctx->error))) + if (!rtdm_rw_user_ok(context, arg, sizeof(ctx->error))) return -EFAULT; - rtdm_copy_to_user(user_info, + rtdm_copy_to_user(context, arg, &ctx->error, sizeof(ctx->error)); @@ -664,12 +658,11 @@ static int rtswitch_ioctl_nrt(struct rtdm_dev_context *context, } } -static int rtswitch_ioctl_rt(struct rtdm_dev_context *context, - rtdm_user_info_t *user_info, +static int rtswitch_ioctl_rt(struct xnfd *context, unsigned int request, void *arg) { - rtswitch_context_t *ctx = (rtswitch_context_t *) context->dev_private; + rtswitch_context_t *ctx = rtdm_context_to_private(context); struct rttst_swtest_task task; struct rttst_swtest_dir fromto; @@ -680,18 +673,18 @@ static int rtswitch_ioctl_rt(struct rtdm_dev_context *context, return -ENOSYS; case RTTST_RTIOC_SWTEST_PEND: - if (!rtdm_read_user_ok(user_info, arg, sizeof(task))) + if (!rtdm_read_user_ok(context, arg, sizeof(task))) return -EFAULT; - rtdm_copy_from_user(user_info, &task, arg, sizeof(task)); + rtdm_copy_from_user(context, &task, arg, sizeof(task)); return rtswitch_pend_rt(ctx, task.index); case RTTST_RTIOC_SWTEST_SWITCH_TO: - if (!rtdm_read_user_ok(user_info, arg, sizeof(fromto))) + if (!rtdm_read_user_ok(context, arg, sizeof(fromto))) return -EFAULT; - rtdm_copy_from_user(user_info, + rtdm_copy_from_user(context, &fromto, arg, sizeof(fromto)); @@ -699,10 +692,10 @@ static int rtswitch_ioctl_rt(struct rtdm_dev_context *context, return rtswitch_to_rt(ctx, fromto.from, fromto.to); case RTTST_RTIOC_SWTEST_GET_LAST_ERROR: - if (!rtdm_rw_user_ok(user_info, arg, sizeof(ctx->error))) + if (!rtdm_rw_user_ok(context, arg, sizeof(ctx->error))) return -EFAULT; - rtdm_copy_to_user(user_info, + rtdm_copy_to_user(context, arg, &ctx->error, sizeof(ctx->error)); @@ -715,43 +708,29 @@ static int rtswitch_ioctl_rt(struct rtdm_dev_context *context, } static struct rtdm_device device = { - struct_version: RTDM_DEVICE_STRUCT_VER, - - device_flags: RTDM_NAMED_DEVICE, - context_size: sizeof(rtswitch_context_t), - device_name: "", - - open_rt: NULL, - open_nrt: rtswitch_open, - - ops: { - close_rt: NULL, - close_nrt: rtswitch_close, - - ioctl_rt: rtswitch_ioctl_rt, - ioctl_nrt: rtswitch_ioctl_nrt, + .struct_version = RTDM_DEVICE_STRUCT_VER, - read_rt: NULL, - read_nrt: NULL, + .device_flags = RTDM_NAMED_DEVICE, + .context_size = sizeof(rtswitch_context_t), + .device_name = "", - write_rt: NULL, - write_nrt: NULL, + .open = rtswitch_open, - recvmsg_rt: NULL, - recvmsg_nrt: NULL, + .ops = { + .close = rtswitch_close, - sendmsg_rt: NULL, - sendmsg_nrt: NULL, + .ioctl_rt = rtswitch_ioctl_rt, + .ioctl_nrt = rtswitch_ioctl_nrt, }, - device_class: RTDM_CLASS_TESTING, - device_sub_class: RTDM_SUBCLASS_SWITCHTEST, - profile_version: RTTST_PROFILE_VER, - driver_name: "xeno_switchtest", - driver_version: RTDM_DRIVER_VER(0, 1, 1), - peripheral_name: "Context Switch Test", - provider_name: "Gilles Chanteperdrix", - proc_name: device.device_name, + .device_class = RTDM_CLASS_TESTING, + .device_sub_class = RTDM_SUBCLASS_SWITCHTEST, + .profile_version = RTTST_PROFILE_VER, + .driver_name = "xeno_switchtest", + .driver_version = RTDM_DRIVER_VER(0, 1, 1), + .peripheral_name = "Context Switch Test", + .provider_name = "Gilles Chanteperdrix", + .proc_name = device.device_name, }; int __init __switchtest_init(void) _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git