detect required context of RTSER_RTIOC_WAIT_EVENT
Hi,
again thanks to a smart student reviewing my ugly code, here is another minor fix for the serial driver.
Jan
16550A/16550A.c +8 -5
@@ -516,8 +516,8 @@ } -int rt_16550_ioctl_rt (struct rtdm_dev_context *context, -rtdm_user_info_t *user_info,int request,void *arg) +int rt_16550_ioctl (struct rtdm_dev_context *context, +rtdm_user_info_t *user_info,int request,void *arg) {struct rt_16550_context *ctx;int ret =0 ;
@@ -639,6 +639,9 @@rtdm_lockctx_t lock_ctx;rtdm_toseq_t timeout_seq; +if (!rtdm_in_rt_context ()) +return -EPERM ; +/* only one waiter allowed, stop any further attempts here */ if (test_and_set_bit (0 , &ctx->ioc_event_lock))return -EBUSY ;
@@ -980,8 +983,8 @@ close_rt: rt_16550_close, close_nrt: rt_16550_close, - ioctl_rt: rt_16550_ioctl_rt, - ioctl_nrt: rt_16550_ioctl_rt, + ioctl_rt: rt_16550_ioctl, + ioctl_nrt: rt_16550_ioctl, read_rt: rt_16550_read, read_nrt: NULL,
@@ -999,7 +1002,7 @@ device_class: RTDM_CLASS_SERIAL, device_sub_class: RTDM_SUBCLASS_16550A, driver_name: "rt_16550A", - driver_version: RTDM_DRIVER_VER(1, 1, 0), + driver_version: RTDM_DRIVER_VER(1, 1, 1), peripheral_name: "UART 16550A", provider_name: "Jan Kiszka", };
Philippe Gerum
AppliedQuoted 5 lines · Jan Kiszka
Hi,
again thanks to a smart student reviewing my ugly code, here is another minor fix for the serial driver.
Applied, thanks.
Quoted 59 lines
Jan
------------------------------------------------------------------------
Index:
drivers/16550A/16550A.c
===================================================================16550A/16550A.c +8
-6@@ -516,8 +516,8 @@ } -int rt_16550_ioctl_rt (struct rtdm_dev_context *context, -rtdm_user_info_t *user_info,int request,void *arg) +int rt_16550_ioctl (struct rtdm_dev_context *context, +rtdm_user_info_t *user_info,int request,void *arg) {struct rt_16550_context *ctx;int ret =0 ;@@ -639,6 +639,9 @@rtdm_lockctx_t lock_ctx;rtdm_toseq_t timeout_seq; +if (!rtdm_in_rt_context ()) +return -EPERM ; +/* only one waiter allowed, stop any further attempts here */ if (test_and_set_bit (0 , &ctx->ioc_event_lock))return -EBUSY ;@@ -980,8 +983,8 @@ close_rt: rt_16550_close, close_nrt: rt_16550_close, - ioctl_rt: rt_16550_ioctl_rt, - ioctl_nrt: rt_16550_ioctl_rt, + ioctl_rt: rt_16550_ioctl, + ioctl_nrt: rt_16550_ioctl, read_rt: rt_16550_read, read_nrt: NULL,@@ -999,7 +1002,7 @@ device_class: RTDM_CLASS_SERIAL, device_sub_class: RTDM_SUBCLASS_16550A, driver_name: "rt_16550A", - driver_version: RTDM_DRIVER_VER(1, 1, 0), + driver_version: RTDM_DRIVER_VER(1, 1, 1), peripheral_name: "UART 16550A", provider_name: "Jan Kiszka", }; ------------------------------------------------------------------------_______________________________________________
Xenomai-core mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-core
Signature · 1 line
Philippe.
PATCH 1/1 xeno-config --verbose
attached patch gives xeno-config a --verbose option, ie:
soekris:/usr/realtime/2.6.13-ski6-v1/bin# xeno-config --v xeno-config --verbose --version="2.0" --cc="gcc" --cross-compile="" --arch="i386" --subarch="" --prefix="/usr/realtime/2.6.13-ski6-v1" --config="/usr/realtime/2.6.13-ski6-v1/share/xenomai/config-xenomai-2.0" --kernel-cflags="-I. -I/usr/realtime/2.6.13-ski6-v1/include -D__XENO__ -ffast-math -mhard-float" aka --mod*-cflags --xeno-cflags="-I. -I/usr/realtime/2.6.13-ski6-v1/include -O2 -I/lib/modules/2.6.13-ski6-v1/build/include -D_GNU_SOURCE -D_REENTRANT -D__XENO__ -march=pentium-mmx -Wall -pipe -fstrict-aliasing -Wno-strict-aliasing" aka --fusion-cflags --xeno-ldflags="-L/usr/realtime/2.6.13-ski6-v1/lib -lpthread" aka --fusion-ldlags --posix-cflags="-I. -I/usr/realtime/2.6.13-ski6-v1/include -I/usr/realtime/2.6.13-ski6-v1/include/posix -O2 -I/lib/modules/2.6.13-ski6-v1/build/include -D_GNU_SOURCE -D_REENTRANT -D__XENO__ -march=pentium-mmx -Wall -pipe -fstrict-aliasing -Wno-strict-aliasing" --posix-ldflags="-L/usr/realtime/2.6.13-ski6-v1/lib -lpthread_rt -lpthread -lrt" --uvm-cflags="=-I. -I/usr/realtime/2.6.13-ski6-v1/include -O2 -I/lib/modules/2.6.13-ski6-v1/build/include -D_GNU_SOURCE -D_REENTRANT -D__XENO__ -march=pentium-mmx -Wall -pipe -fstrict-aliasing -Wno-strict-aliasing -D__XENO_UVM__ " --uvm-ldflags="=-u__xeno_skin_init -L/usr/realtime/2.6.13-ski6-v1/lib -luvm -lnucleus -lpthread" --mod*-dir="=/usr/realtime/2.6.13-ski6-v1/modules" --sym*-dir="/usr/realtime/2.6.13-ski6-v1/symbols" --libdir="/usr/realtime/2.6.13-ski6-v1/lib" --linux-dir="/lib/modules/2.6.13-ski6-v1/build" --linux-ver*="2.6.13"
When called w/o args, it outputs the above, then prints the (current) usage message too.
hth
jimc
xeno-config.in +36 -4
@@ -44,10 +44,10 @@ --subarch --prefix --config - --module-cflags - --module-cxxflags - --xeno-cflags - --xeno-ldflags + --module-cflags,--kernel-cflags + --module-cxxflags,--kernel-cxxflags + --xeno-cflags,--fusion-cflags + --xeno-ldflags,--fusion-ldflags --posix-cflags --posix-ldflags --uvm-cflags
@@ -61,12 +61,44 @@ exit $1 } +verbose () +{ + echo xeno-config --verbose + + echo " " --version="\"${XENO_VERSION}\"" + echo " " --cc="\"$XENO_CC\"" + echo " " --cross-compile="\"$CROSS_COMPILE\"" + echo " " --arch="\"$XENO_TARGET_ARCH\"" + echo " " --subarch="\"$XENO_TARGET_SUBARCH\"" + echo " " --prefix="\"$XENO_PREFIX\"" + echo " " --config="\"$XENO_CONFIG\"" + echo " " --kernel-cflags="\"$XENO_KERNEL_CFLAGS\"" + + echo " " --xeno-cflags="\"$XENO_BASE_CFLAGS\"" + echo " " --xeno-ldflags="\"$XENO_BASE_LDFLAGS\"" + echo " " --posix-cflags="\"$XENO_POSIX_CFLAGS\"" + echo " " --posix-ldflags="\"$XENO_POSIX_LDFLAGS\"" + echo " " --uvm-cflags="\"=$XENO_UVM_CFLAGS \"" + echo " " --uvm-ldflags="\"=$XENO_UVM_LDFLAGS\"" + + echo " " --mod*-dir="\"=$XENO_MODULE_DIR\"" + echo " " --sym*-dir="\"$XENO_SYMBOL_DIR\"" + echo " " --libdir="\"$XENO_LIBRARY_DIR\"" + echo " " --linux-dir="\"$XENO_LINUX_DIR\"" + echo " " --linux-ver*="\"$XENO_LINUX_VERSION\"" +} + if test $# -eq 0; then + verbose $* usage 1 1>&2 fi while test $# -gt 0; do case "$1" in + --v|--verbose) + verbose $* + exit 0 + ;; --version) echo ${XENO_VERSION} ;;
Re: [Xenomai-core] [patch] xeno-config --verbose
Quoted 1 line · Jim Cromie
attached patch gives xeno-config a --verbose option, ie:
Well, not really a software bug fix, but might be considered as a simple brain bug fix for users, so the patch made it even through the feature freeze. Applied, thanks.
Signature · 1 line
Philippe.