[Xenomai-git] Alexis Berlemont : Fix obvious typo mistake
Module: xenomai-abe Branch: comedi Commit: 7136d050b76e55219ee3ccb6f544e3f62031c09f URL: http://git.xenomai.org/?p=xenomai-abe.git;a=commit;h=7136d050b76e55219ee3ccb6f544e3f62031c09f Author: Alexis Berlemont alexis.berlem...@gmail.com Date: Mon Sep 21 00:11:41 2009 +0200 Fix obvious typo mistake --- ksrc/drivers/comedi/device.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/ksrc/drivers/comedi/device.c b/ksrc/drivers/comedi/device.c index 3d621d5..59b0a69 100644 --- a/ksrc/drivers/comedi/device.c +++ b/ksrc/drivers/comedi/device.c @@ -319,7 +319,7 @@ int comedi_assign_driver(comedi_cxt_t * cxt, /* Initialize the private data even if it not our role (the driver should do it), that may prevent hard to find bugs */ - memset(dev-priv, 0, drv-prvdata_size); + memset(dev-priv, 0, drv-privdata_size); } if ((ret = drv-attach(dev, link_arg)) != 0) ___ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : Do not use the 2 stages build for building non-posix applications
Module: xenomai-abe Branch: comedi Commit: 50ee47db78117e8711d4d2f5310dff262a425eb7 URL: http://git.xenomai.org/?p=xenomai-abe.git;a=commit;h=50ee47db78117e8711d4d2f5310dff262a425eb7 Author: Gilles Chanteperdrix gilles.chanteperd...@xenomai.org Date: Thu Sep 24 15:14:48 2009 +0200 Do not use the 2 stages build for building non-posix applications --- scripts/wrap-link.sh | 50 +++--- 1 files changed, 27 insertions(+), 23 deletions(-) diff --git a/scripts/wrap-link.sh b/scripts/wrap-link.sh index 0d53c7b..f4826ac 100755 --- a/scripts/wrap-link.sh +++ b/scripts/wrap-link.sh @@ -6,7 +6,7 @@ set -e usage() { cat EOF -$progname [options] command-line +$1 [options] command-line Split command-line in two parts for linking static applications with Xenomai user-space posix skin in two stages. @@ -16,21 +16,25 @@ Options: -v be verbose (print each command before running it) Example: -$progname -v gcc -o foo foo.o -Wl,@/usr/xenomai/lib/posix.wrappers -L/usr/xenomai/lib -lpthread_rt -lpthread -lrt +$1 -v gcc -o foo foo.o -Wl,@/usr/xenomai/lib/posix.wrappers -L/usr/xenomai/lib -lpthread_rt -lpthread -lrt will print and run: -+ gcc -o foo.tmp -Wl,-r -nostdlib tmp foo.o -Wl,@/usr/xenomai/lib/posix.wrappers -L/usr/xenomai/lib -+ gcc -o foo foo.tmp -lpthread_rt -lpthread -lrt ++ gcc -o foo.tmp -Wl,-Ur -nostdlib foo.o -Wl,@/usr/xenomai/lib/posix.wrappers -L/usr/xenomai/lib ++ gcc -o foo foo.tmp -L/usr/xenomai/lib -lpthread_rt -lpthread -lrt + rm foo.tmp EOF } +add_2stages() { +stage1_args=$stage1_args $@ +stage2_args=$stage2_args $@ +} + add_linker_flag() { if $next_is_wrapped_symbol; then stage1_args=$stage1_args -Wl,--wrap $@ next_is_wrapped_symbol=false else - stage1_args=$stage1_args $@ - stage2_args=$stage2_args $@ + add_2stages $@ fi } @@ -47,10 +51,10 @@ if test -n $V test $V -gt 0; then else verbose=false fi -progname=$0 +progname=$0 if test $# -eq 0; then -usage +usage $progname exit 0 fi @@ -58,11 +62,6 @@ while test $# -gt 0; do arg=$1 shift case $arg in - ) - usage - exit 0 - ;; - -v) verbose=: ;; @@ -81,7 +80,7 @@ while test $# -gt 0; do ;; *ld) - usage + usage $progname /bin/echo -e \nlinker must be gcc or g++, not ld exit 1 ;; @@ -93,6 +92,8 @@ while test $# -gt 0; do done next_is_wrapped_symbol=false + +onestage_args=$@ stage1_args= stage2_args= stage2=false @@ -100,7 +101,7 @@ while test $# -gt 0; do arg=$1 shift case $arg in - *pthread_rt*|-lpthread) + *pthread_rt*) stage2_args=$stage2_args $arg stage2=: ;; @@ -140,7 +141,7 @@ while test $# -gt 0; do ;; -o*) - output=`expr $arg : '-o\(.*\)'` + output=`expr $arg : '-o\(.*\)'` ;; -l) @@ -161,15 +162,18 @@ while test $# -gt 0; do if test -e $arg; then add_linker_obj $arg else - stage1_args=$stage1_args $arg - stage2_args=$stage2_args $arg + add_2stages $arg fi ;; esac done -$verbose set -x -tmpobj=$output.wl$$ -$cc -o $tmpobj -Wl,-Ur -nostdlib $stage1_args -$cc -o $output $tmpobj $stage2_args -rm -f $tmpobj +if $stage2; then +$verbose set -x +$cc -o $output.tmp -Wl,-Ur -nostdlib $stage1_args +$cc -o $output $output.tmp $stage2_args +rm -f $output.tmp +else +$verbose set -x +$cc -o $output $onestage_args +fi ___ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git
[Xenomai-git] Alexis Berlemont : Remove useless wrappers (comedi_copy_*_user())
Module: xenomai-abe Branch: comedi Commit: d3a4ec4ad0e7d181fc003cee13124cf77e73fe9e URL: http://git.xenomai.org/?p=xenomai-abe.git;a=commit;h=d3a4ec4ad0e7d181fc003cee13124cf77e73fe9e Author: Alexis Berlemont alexis.berlem...@gmail.com Date: Sun Sep 20 16:03:20 2009 +0200 Remove useless wrappers (comedi_copy_*_user()) --- include/comedi/buffer.h | 14 include/comedi/context.h | 10 +- include/comedi/os_facilities.h| 20 ksrc/drivers/comedi/buffer.c | 27 ++--- ksrc/drivers/comedi/command.c | 11 --- ksrc/drivers/comedi/device.c | 23 +++--- ksrc/drivers/comedi/instruction.c | 18 ++- ksrc/drivers/comedi/subdevice.c | 61 +++- 8 files changed, 85 insertions(+), 99 deletions(-) diff --git a/include/comedi/buffer.h b/include/comedi/buffer.h index 81298dd..8b3a954 100644 --- a/include/comedi/buffer.h +++ b/include/comedi/buffer.h @@ -95,9 +95,9 @@ static inline int __produce(comedi_cxt_t * cxt, if (cxt == NULL) memcpy(buf-buf + start_ptr, pin, blk_size); else - ret = comedi_copy_from_user(cxt, - buf-buf + start_ptr, - pin, blk_size); + ret = rtdm_safe_copy_from_user(cxt-user_info, + buf-buf + start_ptr, + pin, blk_size); /* Updates pointers/counts */ pin += blk_size; @@ -125,10 +125,10 @@ static inline int __consume(comedi_cxt_t * cxt, if (cxt == NULL) memcpy(pout, buf-buf + start_ptr, blk_size); else - ret = comedi_copy_to_user(cxt, - pout, - buf-buf + start_ptr, - blk_size); + ret = rtdm_safe_copy_to_user(cxt-user_info, +pout, +buf-buf + start_ptr, +blk_size); /* Updates pointers/counts */ pout += blk_size; diff --git a/include/comedi/context.h b/include/comedi/context.h index 3670d69..e9c2d08 100644 --- a/include/comedi/context.h +++ b/include/comedi/context.h @@ -35,7 +35,7 @@ struct comedi_context { setting it at the head of the structure may save useless operations */ struct comedi_device *dev; - rtdm_user_info_t *rtdm_usrinf; + rtdm_user_info_t *user_info; struct rtdm_dev_context *rtdm_cxt; }; typedef struct comedi_context comedi_cxt_t; @@ -45,16 +45,10 @@ typedef struct comedi_context comedi_cxt_t; #define comedi_init_cxt(c, u, x) \ { \ (x)-rtdm_cxt = c; \ - (x)-rtdm_usrinf = u; \ + (x)-user_info = u; \ (x)-dev = NULL;\ } -#define comedi_copy_from_user(x, d, r, s) \ -__comedi_copy_from_user(x-rtdm_usrinf, d, r, s) - -#define comedi_copy_to_user(x, d, r, s) \ -__comedi_copy_to_user(x-rtdm_usrinf, d, r, s) - #endif /* __KERNEL__ !DOXYGEN_CPP */ #endif /* __COMEDI_CONTEXT__ */ diff --git a/include/comedi/os_facilities.h b/include/comedi/os_facilities.h index e9315b7..405c9d4 100644 --- a/include/comedi/os_facilities.h +++ b/include/comedi/os_facilities.h @@ -87,26 +87,6 @@ #define comedi_dbg(level, debug, dev, fmt, args...)\ __comedi_dbg(level, debug, %s: fmt, __comedi_dev_name(dev), ##args) -/* --- Allocation / MMU section --- */ - -static inline int __comedi_copy_from_user(rtdm_user_info_t * user_info, - void *pind, void *pins, int size) -{ - if (rtdm_read_user_ok(user_info, pins, size)) - return rtdm_copy_from_user(user_info, pind, pins, size); - else - return -EFAULT; -} - -static inline int __comedi_copy_to_user(rtdm_user_info_t * user_info, - void *pind, void *pins, int size) -{ - if (rtdm_rw_user_ok(user_info, pind, size)) - return rtdm_copy_to_user(user_info, pind, pins, size); - else - return -EFAULT; -} - /* --- Spinlock section --- */ typedef rtdm_lock_t comedi_lock_t; diff --git a/ksrc/drivers/comedi/buffer.c b/ksrc/drivers/comedi/buffer.c index 27696d8..d5afc67 100644 --- a/ksrc/drivers/comedi/buffer.c +++ b/ksrc/drivers/comedi/buffer.c @@ -397,8 +397,8 @@ int comedi_ioctl_mmap(comedi_cxt_t * cxt, void
[Xenomai-git] Alexis Berlemont : Add ai / ao trigger callback
Module: xenomai-abe Branch: comedi Commit: ddc9cc1b35ac5011d99211c960fb45f6f931ba58 URL: http://git.xenomai.org/?p=xenomai-abe.git;a=commit;h=ddc9cc1b35ac5011d99211c960fb45f6f931ba58 Author: Alexis Berlemont alexis.berlem...@gmail.com Date: Sun Sep 27 16:25:43 2009 +0200 Add ai / ao trigger callback --- .../comedi/national_instruments/mio_common.c |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/ksrc/drivers/comedi/national_instruments/mio_common.c b/ksrc/drivers/comedi/national_instruments/mio_common.c index fbb4d59..8e9b5e1 100644 --- a/ksrc/drivers/comedi/national_instruments/mio_common.c +++ b/ksrc/drivers/comedi/national_instruments/mio_common.c @@ -4754,6 +4754,7 @@ int ni_E_init(comedi_dev_t *dev) subd-do_cmdtest = ni_ai_cmdtest; subd-do_cmd = ni_ai_cmd; subd-cancel = ni_ai_reset; + subd-trigger = ni_ai_inttrig; subd-munge = (boardtype.adbits 16) ? ni_ai_munge32 : ni_ai_munge16; @@ -4796,6 +4797,7 @@ int ni_E_init(comedi_dev_t *dev) subd-do_cmd = ni_ao_cmd; subd-cmd_mask = mio_ao_cmd_mask; subd-do_cmdtest = ni_ao_cmdtest; + subd-trigger = ni_ao_inttrig; if ((boardtype.reg_type ni_reg_m_series_mask) == 0) subd-munge = ni_ao_munge; } ___ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git
[Xenomai-git] Alexis Berlemont : Add a trigger instruction
Module: xenomai-abe Branch: comedi Commit: 5030433c0b26ce05933cc0f41a23a973258d201a URL: http://git.xenomai.org/?p=xenomai-abe.git;a=commit;h=5030433c0b26ce05933cc0f41a23a973258d201a Author: Alexis Berlemont alexis.berlem...@gmail.com Date: Sun Sep 27 16:26:53 2009 +0200 Add a trigger instruction --- src/utils/comedi/cmd_write.c | 29 +++-- 1 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/utils/comedi/cmd_write.c b/src/utils/comedi/cmd_write.c index ab57ee1..851b943 100644 --- a/src/utils/comedi/cmd_write.c +++ b/src/utils/comedi/cmd_write.c @@ -75,6 +75,12 @@ comedi_cmd_t cmd = { .chan_descs = chans, }; +comedi_insn_t insn = { + .type = COMEDI_INSN_INTTRIG, + .idx_subd = ID_SUBD, + .data_size = 0, +}; + struct option cmd_write_opts[] = { {verbose, no_argument, NULL, 'v'}, {real-time, no_argument, NULL, 'r'}, @@ -123,7 +129,7 @@ int main(int argc, char *argv[]) filename = optarg; break; case 's': - cmd.idx_subd = strtoul(optarg, NULL, 0); + cmd.idx_subd = insn.idx_subd = strtoul(optarg, NULL, 0); break; case 'S': cmd.stop_arg = strtoul(optarg, NULL, 0); @@ -319,8 +325,17 @@ int main(int argc, char *argv[]) ret); goto out_main; } - cnt += ret; + + if (cnt == ret cnt != 0) { + ret = comedi_snd_insn(dsc, insn); + if (ret 0) { + fprintf(stderr, + cmd_write: triggering failed (ret=%d)\n, + ret); + goto out_main; + } + } } } else { unsigned long front = 0; @@ -372,6 +387,16 @@ int main(int argc, char *argv[]) ret); goto out_main; } + + if (cnt == front cnt != 0) { + ret = comedi_snd_insn(dsc, insn); + if (ret 0) { + fprintf(stderr, + cmd_write: triggering failed (ret=%d)\n, + ret); + goto out_main; + } + } } } ___ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git
[Xenomai-git] Alexis Berlemont : Replace an info message by an error message
Module: xenomai-abe Branch: comedi Commit: 91b15184dfe0236d0caf82fec7a5ce0f52832cdd URL: http://git.xenomai.org/?p=xenomai-abe.git;a=commit;h=91b15184dfe0236d0caf82fec7a5ce0f52832cdd Author: Alexis Berlemont alexis.berlem...@gmail.com Date: Thu Oct 1 23:39:56 2009 +0200 Replace an info message by an error message --- ksrc/drivers/comedi/national_instruments/mite.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/ksrc/drivers/comedi/national_instruments/mite.c b/ksrc/drivers/comedi/national_instruments/mite.c index c776f12..e322529 100644 --- a/ksrc/drivers/comedi/national_instruments/mite.c +++ b/ksrc/drivers/comedi/national_instruments/mite.c @@ -458,7 +458,7 @@ void mite_prep_dma(struct mite_channel *mite_chan, mcr |= CR_PSIZE32; break; default: - __comedi_info(MITE: bug! + __comedi_err(MITE: bug! invalid mem bit width for dma transfer\n); break; } ___ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git
[Xenomai-git] Alexis Berlemont : Fix internal trigger via instruction ( we do not need any data in the
Module: xenomai-abe Branch: comedi Commit: bbc3c30a7eb9484f9854882089cf309c6956bb83 URL: http://git.xenomai.org/?p=xenomai-abe.git;a=commit;h=bbc3c30a7eb9484f9854882089cf309c6956bb83 Author: Alexis Berlemont alexis.berlem...@gmail.com Date: Sun Sep 27 16:24:15 2009 +0200 Fix internal trigger via instruction (we do not need any data in the instruction structure) --- ksrc/drivers/comedi/instruction.c |9 ++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ksrc/drivers/comedi/instruction.c b/ksrc/drivers/comedi/instruction.c index 62579c8..67c75d6 100644 --- a/ksrc/drivers/comedi/instruction.c +++ b/ksrc/drivers/comedi/instruction.c @@ -80,11 +80,14 @@ int comedi_do_insn_trig(comedi_cxt_t * cxt, comedi_kinsn_t * dsc) { comedi_subd_t *subd; comedi_dev_t *dev = comedi_get_dev(cxt); + lsampl_t trignum; /* Basic checkings */ - if (dsc-data_size != 1) + if (dsc-data_size 1) return -EINVAL; - + + trignum = (dsc-data_size == 1) ? dsc-data[0] : 0; + if (dsc-idx_subd = dev-transfer.nb_subd) return -EINVAL; @@ -95,7 +98,7 @@ int comedi_do_insn_trig(comedi_cxt_t * cxt, comedi_kinsn_t * dsc) return -EINVAL; /* Performs the trigger */ - return subd-trigger(subd, dsc-data[0]); + return subd-trigger(subd, trignum); } int comedi_fill_insndsc(comedi_cxt_t * cxt, comedi_kinsn_t * dsc, void *arg) ___ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git
[Xenomai-git] Alexis Berlemont : Fix a problem in the mite configuration (only for AI)
Module: xenomai-abe Branch: comedi Commit: c65c3ce37edfcf6179d4c0b43e2460e52584d9e1 URL: http://git.xenomai.org/?p=xenomai-abe.git;a=commit;h=c65c3ce37edfcf6179d4c0b43e2460e52584d9e1 Author: Alexis Berlemont alexis.berlem...@gmail.com Date: Thu Oct 1 23:41:11 2009 +0200 Fix a problem in the mite configuration (only for AI) --- .../comedi/national_instruments/mio_common.c |5 + 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/ksrc/drivers/comedi/national_instruments/mio_common.c b/ksrc/drivers/comedi/national_instruments/mio_common.c index 8e9b5e1..68e87ff 100644 --- a/ksrc/drivers/comedi/national_instruments/mio_common.c +++ b/ksrc/drivers/comedi/national_instruments/mio_common.c @@ -1367,8 +1367,13 @@ static int ni_ai_setup_MITE_dma(comedi_dev_t *dev) break; }; + /* Huge hack */ + mite_buf_change(devpriv-ai_mite_chan-ring, + dev-transfer.bufs[NI_AI_SUBDEV]); + /* start the MITE */ mite_dma_arm(devpriv-ai_mite_chan); + return 0; } ___ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git