[Xenomai-git] Gilles Chanteperdrix : rtnet: adapt to RTDM task management changes

2015-10-06 Thread git repository hosting
Module: xenomai-3
Branch: master
Commit: bd971c3a9624987d76662b5c67a4ab10bdc51cd8
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=bd971c3a9624987d76662b5c67a4ab10bdc51cd8

Author: Gilles Chanteperdrix 
Date:   Thu Oct  1 02:10:29 2015 +0200

rtnet: adapt to RTDM task management changes

Replace rtcfg timer tasks with timers, polled in the rtcfg rx task.
Remove useless calls to rtdm_task_join_nrt.

---

 kernel/drivers/net/addons/proxy.c  |7 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_event.h  |   12 ++-
 .../drivers/net/stack/include/rtcfg/rtcfg_frame.h  |6 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_timer.h  |5 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |1 -
 .../drivers/net/stack/rtcfg/rtcfg_client_event.c   |   70 +++---
 kernel/drivers/net/stack/rtcfg/rtcfg_conn_event.c  |   14 +--
 kernel/drivers/net/stack/rtcfg/rtcfg_event.c   |   48 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |   23 +++--
 kernel/drivers/net/stack/rtcfg/rtcfg_proc.c|2 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_timer.c   |   96 
 kernel/drivers/net/stack/rtmac/nomac/nomac_proto.c |8 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_module.c  |4 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c  |2 +-
 kernel/drivers/net/stack/rtnet_rtpc.c  |   13 +--
 kernel/drivers/net/stack/stack_mgr.c   |6 +-
 16 files changed, 187 insertions(+), 130 deletions(-)

diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 9b459eb..4887f77 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -103,7 +103,10 @@ static void rtnetproxy_tx_loop(void *arg)
 struct rtnet_device *rtdev;
 struct rtskb *rtskb;
 
-while (rtdm_event_wait(_tx_event) == 0) {
+while (!rtdm_task_should_stop()) {
+   if (rtdm_event_wait(_tx_event) < 0)
+   break;
+
while ((rtskb = rtskb_dequeue(_queue)) != NULL) {
rtdev = rtskb->rtdev;
rtdev_xmit_proxy(rtskb);
@@ -415,8 +418,8 @@ static void __exit rtnetproxy_cleanup_module(void)
 unregister_netdev(dev_rtnetproxy);
 free_netdev(dev_rtnetproxy);
 
+rtdm_task_destroy(_tx_task);
 rtdm_event_destroy(_tx_event);
-rtdm_task_join_nrt(_tx_task, 100);
 
 /* free the non-real-time signal */
 rtdm_nrtsig_destroy(_rx_signal);
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
index 44c9bbb..a4b7955 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
@@ -34,9 +34,13 @@
 #include 
 
 
-#define FLAG_TIMER_STARTED  0x0001
-#define FLAG_TIMER_SHUTDOWN 0x0002
+#define FLAG_TIMER_STARTED  16
+#define FLAG_TIMER_SHUTDOWN 17
+#define FLAG_TIMER_PENDING  18
 
+#define _FLAG_TIMER_STARTED (1 << FLAG_TIMER_STARTED)
+#define _FLAG_TIMER_SHUTDOWN(1 << FLAG_TIMER_SHUTDOWN)
+#define _FLAG_TIMER_PENDING (1 << FLAG_TIMER_PENDING)
 
 typedef enum {
 RTCFG_MAIN_OFF,
@@ -63,8 +67,8 @@ struct rtcfg_device {
 rtdm_mutex_tdev_mutex;
 struct list_headevent_calls;
 rtdm_lock_t event_calls_lock;
-rtdm_task_t timer_task;
-unsigned intflags;
+rtdm_timer_ttimer;
+unsigned long   flags;
 unsigned intburstrate;
 #ifdef CONFIG_XENO_OPT_VFILE
 struct xnvfile_directoryproc_entry;
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
index ac9f78b..2a6a415 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
@@ -51,9 +51,11 @@
 #define RTCFG_ADDRSIZE_IP   4
 #define RTCFG_MAX_ADDRSIZE  RTCFG_ADDRSIZE_IP
 
-#define RTCFG_FLAG_STAGE_2_DATA 1
-#define RTCFG_FLAG_READY2
+#define RTCFG_FLAG_STAGE_2_DATA 0
+#define RTCFG_FLAG_READY1
 
+#define _RTCFG_FLAG_STAGE_2_DATA (1 << RTCFG_FLAG_STAGE_2_DATA)
+#define _RTCFG_FLAG_READY(1 << RTCFG_FLAG_READY)
 
 struct rtcfg_frm_head {
 #if defined(__LITTLE_ENDIAN_BITFIELD)
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
index e9f6e27..2da6d50 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
@@ -25,7 +25,10 @@
 #ifndef __RTCFG_TIMER_H_
 #define __RTCFG_TIMER_H_
 
+void rtcfg_timer(rtdm_timer_t *t);
 
-void rtcfg_timer(void *arg);
+void rtcfg_timer_run(void);
+
+void rtcfg_thread_signal(void);
 
 #endif /* __RTCFG_TIMER_H_ */
diff --git 

[Xenomai-git] Gilles Chanteperdrix : rtnet: adapt to RTDM task management changes

2015-10-03 Thread git repository hosting
Module: xenomai-3
Branch: arm64
Commit: bd971c3a9624987d76662b5c67a4ab10bdc51cd8
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=bd971c3a9624987d76662b5c67a4ab10bdc51cd8

Author: Gilles Chanteperdrix 
Date:   Thu Oct  1 02:10:29 2015 +0200

rtnet: adapt to RTDM task management changes

Replace rtcfg timer tasks with timers, polled in the rtcfg rx task.
Remove useless calls to rtdm_task_join_nrt.

---

 kernel/drivers/net/addons/proxy.c  |7 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_event.h  |   12 ++-
 .../drivers/net/stack/include/rtcfg/rtcfg_frame.h  |6 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_timer.h  |5 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |1 -
 .../drivers/net/stack/rtcfg/rtcfg_client_event.c   |   70 +++---
 kernel/drivers/net/stack/rtcfg/rtcfg_conn_event.c  |   14 +--
 kernel/drivers/net/stack/rtcfg/rtcfg_event.c   |   48 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |   23 +++--
 kernel/drivers/net/stack/rtcfg/rtcfg_proc.c|2 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_timer.c   |   96 
 kernel/drivers/net/stack/rtmac/nomac/nomac_proto.c |8 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_module.c  |4 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c  |2 +-
 kernel/drivers/net/stack/rtnet_rtpc.c  |   13 +--
 kernel/drivers/net/stack/stack_mgr.c   |6 +-
 16 files changed, 187 insertions(+), 130 deletions(-)

diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 9b459eb..4887f77 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -103,7 +103,10 @@ static void rtnetproxy_tx_loop(void *arg)
 struct rtnet_device *rtdev;
 struct rtskb *rtskb;
 
-while (rtdm_event_wait(_tx_event) == 0) {
+while (!rtdm_task_should_stop()) {
+   if (rtdm_event_wait(_tx_event) < 0)
+   break;
+
while ((rtskb = rtskb_dequeue(_queue)) != NULL) {
rtdev = rtskb->rtdev;
rtdev_xmit_proxy(rtskb);
@@ -415,8 +418,8 @@ static void __exit rtnetproxy_cleanup_module(void)
 unregister_netdev(dev_rtnetproxy);
 free_netdev(dev_rtnetproxy);
 
+rtdm_task_destroy(_tx_task);
 rtdm_event_destroy(_tx_event);
-rtdm_task_join_nrt(_tx_task, 100);
 
 /* free the non-real-time signal */
 rtdm_nrtsig_destroy(_rx_signal);
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
index 44c9bbb..a4b7955 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
@@ -34,9 +34,13 @@
 #include 
 
 
-#define FLAG_TIMER_STARTED  0x0001
-#define FLAG_TIMER_SHUTDOWN 0x0002
+#define FLAG_TIMER_STARTED  16
+#define FLAG_TIMER_SHUTDOWN 17
+#define FLAG_TIMER_PENDING  18
 
+#define _FLAG_TIMER_STARTED (1 << FLAG_TIMER_STARTED)
+#define _FLAG_TIMER_SHUTDOWN(1 << FLAG_TIMER_SHUTDOWN)
+#define _FLAG_TIMER_PENDING (1 << FLAG_TIMER_PENDING)
 
 typedef enum {
 RTCFG_MAIN_OFF,
@@ -63,8 +67,8 @@ struct rtcfg_device {
 rtdm_mutex_tdev_mutex;
 struct list_headevent_calls;
 rtdm_lock_t event_calls_lock;
-rtdm_task_t timer_task;
-unsigned intflags;
+rtdm_timer_ttimer;
+unsigned long   flags;
 unsigned intburstrate;
 #ifdef CONFIG_XENO_OPT_VFILE
 struct xnvfile_directoryproc_entry;
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
index ac9f78b..2a6a415 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
@@ -51,9 +51,11 @@
 #define RTCFG_ADDRSIZE_IP   4
 #define RTCFG_MAX_ADDRSIZE  RTCFG_ADDRSIZE_IP
 
-#define RTCFG_FLAG_STAGE_2_DATA 1
-#define RTCFG_FLAG_READY2
+#define RTCFG_FLAG_STAGE_2_DATA 0
+#define RTCFG_FLAG_READY1
 
+#define _RTCFG_FLAG_STAGE_2_DATA (1 << RTCFG_FLAG_STAGE_2_DATA)
+#define _RTCFG_FLAG_READY(1 << RTCFG_FLAG_READY)
 
 struct rtcfg_frm_head {
 #if defined(__LITTLE_ENDIAN_BITFIELD)
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
index e9f6e27..2da6d50 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
@@ -25,7 +25,10 @@
 #ifndef __RTCFG_TIMER_H_
 #define __RTCFG_TIMER_H_
 
+void rtcfg_timer(rtdm_timer_t *t);
 
-void rtcfg_timer(void *arg);
+void rtcfg_timer_run(void);
+
+void rtcfg_thread_signal(void);
 
 #endif /* __RTCFG_TIMER_H_ */
diff --git 

[Xenomai-git] Gilles Chanteperdrix : rtnet: adapt to RTDM task management changes

2015-10-01 Thread git repository hosting
Module: xenomai-gch
Branch: for-forge
Commit: c1ad65644a3ddabc375177be9e490bd66ef2d394
URL:
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=c1ad65644a3ddabc375177be9e490bd66ef2d394

Author: Gilles Chanteperdrix 
Date:   Thu Oct  1 02:10:29 2015 +0200

rtnet: adapt to RTDM task management changes

Replace rtcfg timer tasks with timers, polled in the rtcfg rx task.
Remove useless calls to rtdm_task_join_nrt.

---

 kernel/drivers/net/addons/proxy.c  |7 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_event.h  |   12 ++-
 .../drivers/net/stack/include/rtcfg/rtcfg_frame.h  |6 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_timer.h  |5 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |1 -
 .../drivers/net/stack/rtcfg/rtcfg_client_event.c   |   70 +++---
 kernel/drivers/net/stack/rtcfg/rtcfg_conn_event.c  |   14 +--
 kernel/drivers/net/stack/rtcfg/rtcfg_event.c   |   48 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |   23 +++--
 kernel/drivers/net/stack/rtcfg/rtcfg_proc.c|2 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_timer.c   |   96 
 kernel/drivers/net/stack/rtmac/nomac/nomac_proto.c |7 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_module.c  |4 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c  |2 +-
 kernel/drivers/net/stack/rtnet_rtpc.c  |   13 +--
 kernel/drivers/net/stack/stack_mgr.c   |6 +-
 16 files changed, 186 insertions(+), 130 deletions(-)

diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 9b459eb..4887f77 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -103,7 +103,10 @@ static void rtnetproxy_tx_loop(void *arg)
 struct rtnet_device *rtdev;
 struct rtskb *rtskb;
 
-while (rtdm_event_wait(_tx_event) == 0) {
+while (!rtdm_task_should_stop()) {
+   if (rtdm_event_wait(_tx_event) < 0)
+   break;
+
while ((rtskb = rtskb_dequeue(_queue)) != NULL) {
rtdev = rtskb->rtdev;
rtdev_xmit_proxy(rtskb);
@@ -415,8 +418,8 @@ static void __exit rtnetproxy_cleanup_module(void)
 unregister_netdev(dev_rtnetproxy);
 free_netdev(dev_rtnetproxy);
 
+rtdm_task_destroy(_tx_task);
 rtdm_event_destroy(_tx_event);
-rtdm_task_join_nrt(_tx_task, 100);
 
 /* free the non-real-time signal */
 rtdm_nrtsig_destroy(_rx_signal);
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
index 44c9bbb..a4b7955 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
@@ -34,9 +34,13 @@
 #include 
 
 
-#define FLAG_TIMER_STARTED  0x0001
-#define FLAG_TIMER_SHUTDOWN 0x0002
+#define FLAG_TIMER_STARTED  16
+#define FLAG_TIMER_SHUTDOWN 17
+#define FLAG_TIMER_PENDING  18
 
+#define _FLAG_TIMER_STARTED (1 << FLAG_TIMER_STARTED)
+#define _FLAG_TIMER_SHUTDOWN(1 << FLAG_TIMER_SHUTDOWN)
+#define _FLAG_TIMER_PENDING (1 << FLAG_TIMER_PENDING)
 
 typedef enum {
 RTCFG_MAIN_OFF,
@@ -63,8 +67,8 @@ struct rtcfg_device {
 rtdm_mutex_tdev_mutex;
 struct list_headevent_calls;
 rtdm_lock_t event_calls_lock;
-rtdm_task_t timer_task;
-unsigned intflags;
+rtdm_timer_ttimer;
+unsigned long   flags;
 unsigned intburstrate;
 #ifdef CONFIG_XENO_OPT_VFILE
 struct xnvfile_directoryproc_entry;
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
index ac9f78b..2a6a415 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
@@ -51,9 +51,11 @@
 #define RTCFG_ADDRSIZE_IP   4
 #define RTCFG_MAX_ADDRSIZE  RTCFG_ADDRSIZE_IP
 
-#define RTCFG_FLAG_STAGE_2_DATA 1
-#define RTCFG_FLAG_READY2
+#define RTCFG_FLAG_STAGE_2_DATA 0
+#define RTCFG_FLAG_READY1
 
+#define _RTCFG_FLAG_STAGE_2_DATA (1 << RTCFG_FLAG_STAGE_2_DATA)
+#define _RTCFG_FLAG_READY(1 << RTCFG_FLAG_READY)
 
 struct rtcfg_frm_head {
 #if defined(__LITTLE_ENDIAN_BITFIELD)
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
index e9f6e27..2da6d50 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
@@ -25,7 +25,10 @@
 #ifndef __RTCFG_TIMER_H_
 #define __RTCFG_TIMER_H_
 
+void rtcfg_timer(rtdm_timer_t *t);
 
-void rtcfg_timer(void *arg);
+void rtcfg_timer_run(void);
+
+void rtcfg_thread_signal(void);
 
 #endif /* __RTCFG_TIMER_H_ */
diff --git 

[Xenomai-git] Gilles Chanteperdrix : rtnet: adapt to RTDM task management changes

2015-10-01 Thread git repository hosting
Module: xenomai-gch
Branch: for-forge
Commit: cb91bcdea9bfcfe57904c4e9272c9fb8adc57480
URL:
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=cb91bcdea9bfcfe57904c4e9272c9fb8adc57480

Author: Gilles Chanteperdrix 
Date:   Thu Oct  1 02:10:29 2015 +0200

rtnet: adapt to RTDM task management changes

Replace rtcfg timer tasks with timers, polled in the rtcfg rx task.
Remove useless calls to rtdm_task_join_nrt.

---

 kernel/drivers/net/addons/proxy.c  |7 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_event.h  |   12 ++-
 .../drivers/net/stack/include/rtcfg/rtcfg_frame.h  |6 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_timer.h  |5 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |1 -
 .../drivers/net/stack/rtcfg/rtcfg_client_event.c   |   70 +++---
 kernel/drivers/net/stack/rtcfg/rtcfg_conn_event.c  |   14 +--
 kernel/drivers/net/stack/rtcfg/rtcfg_event.c   |   48 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |   23 +++--
 kernel/drivers/net/stack/rtcfg/rtcfg_proc.c|2 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_timer.c   |   96 
 kernel/drivers/net/stack/rtmac/nomac/nomac_proto.c |8 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_module.c  |4 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c  |2 +-
 kernel/drivers/net/stack/rtnet_rtpc.c  |   13 +--
 kernel/drivers/net/stack/stack_mgr.c   |6 +-
 16 files changed, 187 insertions(+), 130 deletions(-)

diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 9b459eb..4887f77 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -103,7 +103,10 @@ static void rtnetproxy_tx_loop(void *arg)
 struct rtnet_device *rtdev;
 struct rtskb *rtskb;
 
-while (rtdm_event_wait(_tx_event) == 0) {
+while (!rtdm_task_should_stop()) {
+   if (rtdm_event_wait(_tx_event) < 0)
+   break;
+
while ((rtskb = rtskb_dequeue(_queue)) != NULL) {
rtdev = rtskb->rtdev;
rtdev_xmit_proxy(rtskb);
@@ -415,8 +418,8 @@ static void __exit rtnetproxy_cleanup_module(void)
 unregister_netdev(dev_rtnetproxy);
 free_netdev(dev_rtnetproxy);
 
+rtdm_task_destroy(_tx_task);
 rtdm_event_destroy(_tx_event);
-rtdm_task_join_nrt(_tx_task, 100);
 
 /* free the non-real-time signal */
 rtdm_nrtsig_destroy(_rx_signal);
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
index 44c9bbb..a4b7955 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
@@ -34,9 +34,13 @@
 #include 
 
 
-#define FLAG_TIMER_STARTED  0x0001
-#define FLAG_TIMER_SHUTDOWN 0x0002
+#define FLAG_TIMER_STARTED  16
+#define FLAG_TIMER_SHUTDOWN 17
+#define FLAG_TIMER_PENDING  18
 
+#define _FLAG_TIMER_STARTED (1 << FLAG_TIMER_STARTED)
+#define _FLAG_TIMER_SHUTDOWN(1 << FLAG_TIMER_SHUTDOWN)
+#define _FLAG_TIMER_PENDING (1 << FLAG_TIMER_PENDING)
 
 typedef enum {
 RTCFG_MAIN_OFF,
@@ -63,8 +67,8 @@ struct rtcfg_device {
 rtdm_mutex_tdev_mutex;
 struct list_headevent_calls;
 rtdm_lock_t event_calls_lock;
-rtdm_task_t timer_task;
-unsigned intflags;
+rtdm_timer_ttimer;
+unsigned long   flags;
 unsigned intburstrate;
 #ifdef CONFIG_XENO_OPT_VFILE
 struct xnvfile_directoryproc_entry;
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
index ac9f78b..2a6a415 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
@@ -51,9 +51,11 @@
 #define RTCFG_ADDRSIZE_IP   4
 #define RTCFG_MAX_ADDRSIZE  RTCFG_ADDRSIZE_IP
 
-#define RTCFG_FLAG_STAGE_2_DATA 1
-#define RTCFG_FLAG_READY2
+#define RTCFG_FLAG_STAGE_2_DATA 0
+#define RTCFG_FLAG_READY1
 
+#define _RTCFG_FLAG_STAGE_2_DATA (1 << RTCFG_FLAG_STAGE_2_DATA)
+#define _RTCFG_FLAG_READY(1 << RTCFG_FLAG_READY)
 
 struct rtcfg_frm_head {
 #if defined(__LITTLE_ENDIAN_BITFIELD)
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
index e9f6e27..2da6d50 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
@@ -25,7 +25,10 @@
 #ifndef __RTCFG_TIMER_H_
 #define __RTCFG_TIMER_H_
 
+void rtcfg_timer(rtdm_timer_t *t);
 
-void rtcfg_timer(void *arg);
+void rtcfg_timer_run(void);
+
+void rtcfg_thread_signal(void);
 
 #endif /* __RTCFG_TIMER_H_ */
diff --git 

[Xenomai-git] Gilles Chanteperdrix : rtnet: adapt to RTDM task management changes

2015-10-01 Thread git repository hosting
Module: xenomai-gch
Branch: for-forge
Commit: ee84316ab4d606a9336fb7ddbc6106b177bd0b82
URL:
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=ee84316ab4d606a9336fb7ddbc6106b177bd0b82

Author: Gilles Chanteperdrix 
Date:   Thu Oct  1 02:10:29 2015 +0200

rtnet: adapt to RTDM task management changes

Replace rtcfg timer tasks with timers, polled in the rtcfg rx task.
Remove useless calls to rtdm_task_join_nrt.

---

 kernel/drivers/net/addons/proxy.c  |7 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_event.h  |   12 ++-
 .../drivers/net/stack/include/rtcfg/rtcfg_frame.h  |6 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_timer.h  |5 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |1 -
 .../drivers/net/stack/rtcfg/rtcfg_client_event.c   |   70 +++---
 kernel/drivers/net/stack/rtcfg/rtcfg_conn_event.c  |   14 +--
 kernel/drivers/net/stack/rtcfg/rtcfg_event.c   |   48 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |   23 +++--
 kernel/drivers/net/stack/rtcfg/rtcfg_proc.c|2 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_timer.c   |   96 
 kernel/drivers/net/stack/rtmac/nomac/nomac_proto.c |7 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_module.c  |4 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c  |2 +-
 kernel/drivers/net/stack/rtnet_rtpc.c  |8 +-
 kernel/drivers/net/stack/stack_mgr.c   |6 +-
 16 files changed, 185 insertions(+), 126 deletions(-)

diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 9b459eb..4887f77 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -103,7 +103,10 @@ static void rtnetproxy_tx_loop(void *arg)
 struct rtnet_device *rtdev;
 struct rtskb *rtskb;
 
-while (rtdm_event_wait(_tx_event) == 0) {
+while (!rtdm_task_should_stop()) {
+   if (rtdm_event_wait(_tx_event) < 0)
+   break;
+
while ((rtskb = rtskb_dequeue(_queue)) != NULL) {
rtdev = rtskb->rtdev;
rtdev_xmit_proxy(rtskb);
@@ -415,8 +418,8 @@ static void __exit rtnetproxy_cleanup_module(void)
 unregister_netdev(dev_rtnetproxy);
 free_netdev(dev_rtnetproxy);
 
+rtdm_task_destroy(_tx_task);
 rtdm_event_destroy(_tx_event);
-rtdm_task_join_nrt(_tx_task, 100);
 
 /* free the non-real-time signal */
 rtdm_nrtsig_destroy(_rx_signal);
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
index 44c9bbb..a4b7955 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
@@ -34,9 +34,13 @@
 #include 
 
 
-#define FLAG_TIMER_STARTED  0x0001
-#define FLAG_TIMER_SHUTDOWN 0x0002
+#define FLAG_TIMER_STARTED  16
+#define FLAG_TIMER_SHUTDOWN 17
+#define FLAG_TIMER_PENDING  18
 
+#define _FLAG_TIMER_STARTED (1 << FLAG_TIMER_STARTED)
+#define _FLAG_TIMER_SHUTDOWN(1 << FLAG_TIMER_SHUTDOWN)
+#define _FLAG_TIMER_PENDING (1 << FLAG_TIMER_PENDING)
 
 typedef enum {
 RTCFG_MAIN_OFF,
@@ -63,8 +67,8 @@ struct rtcfg_device {
 rtdm_mutex_tdev_mutex;
 struct list_headevent_calls;
 rtdm_lock_t event_calls_lock;
-rtdm_task_t timer_task;
-unsigned intflags;
+rtdm_timer_ttimer;
+unsigned long   flags;
 unsigned intburstrate;
 #ifdef CONFIG_XENO_OPT_VFILE
 struct xnvfile_directoryproc_entry;
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
index ac9f78b..2a6a415 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
@@ -51,9 +51,11 @@
 #define RTCFG_ADDRSIZE_IP   4
 #define RTCFG_MAX_ADDRSIZE  RTCFG_ADDRSIZE_IP
 
-#define RTCFG_FLAG_STAGE_2_DATA 1
-#define RTCFG_FLAG_READY2
+#define RTCFG_FLAG_STAGE_2_DATA 0
+#define RTCFG_FLAG_READY1
 
+#define _RTCFG_FLAG_STAGE_2_DATA (1 << RTCFG_FLAG_STAGE_2_DATA)
+#define _RTCFG_FLAG_READY(1 << RTCFG_FLAG_READY)
 
 struct rtcfg_frm_head {
 #if defined(__LITTLE_ENDIAN_BITFIELD)
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
index e9f6e27..2da6d50 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
@@ -25,7 +25,10 @@
 #ifndef __RTCFG_TIMER_H_
 #define __RTCFG_TIMER_H_
 
+void rtcfg_timer(rtdm_timer_t *t);
 
-void rtcfg_timer(void *arg);
+void rtcfg_timer_run(void);
+
+void rtcfg_thread_signal(void);
 
 #endif /* __RTCFG_TIMER_H_ */
diff --git 

[Xenomai-git] Gilles Chanteperdrix : rtnet: adapt to RTDM task management changes

2015-10-01 Thread git repository hosting
Module: xenomai-gch
Branch: for-forge
Commit: a5aa6fc59312f9ae1000c0168494fccecd2d9a31
URL:
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=a5aa6fc59312f9ae1000c0168494fccecd2d9a31

Author: Gilles Chanteperdrix 
Date:   Thu Oct  1 02:10:29 2015 +0200

rtnet: adapt to RTDM task management changes

Replace rtcfg timer tasks with timers, polled in the rtcfg rx task.
Remove useless calls to rtdm_task_join_nrt.

---

 kernel/drivers/net/addons/proxy.c  |7 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_event.h  |   12 ++-
 .../drivers/net/stack/include/rtcfg/rtcfg_frame.h  |6 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_timer.h  |5 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |1 -
 .../drivers/net/stack/rtcfg/rtcfg_client_event.c   |   70 +++---
 kernel/drivers/net/stack/rtcfg/rtcfg_conn_event.c  |   14 +--
 kernel/drivers/net/stack/rtcfg/rtcfg_event.c   |   48 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |   23 +++--
 kernel/drivers/net/stack/rtcfg/rtcfg_proc.c|2 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_timer.c   |   96 
 kernel/drivers/net/stack/rtmac/nomac/nomac_proto.c |7 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_module.c  |4 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c  |2 +-
 kernel/drivers/net/stack/rtnet_rtpc.c  |   13 +--
 kernel/drivers/net/stack/stack_mgr.c   |6 +-
 16 files changed, 186 insertions(+), 130 deletions(-)

diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 9b459eb..4887f77 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -103,7 +103,10 @@ static void rtnetproxy_tx_loop(void *arg)
 struct rtnet_device *rtdev;
 struct rtskb *rtskb;
 
-while (rtdm_event_wait(_tx_event) == 0) {
+while (!rtdm_task_should_stop()) {
+   if (rtdm_event_wait(_tx_event) < 0)
+   break;
+
while ((rtskb = rtskb_dequeue(_queue)) != NULL) {
rtdev = rtskb->rtdev;
rtdev_xmit_proxy(rtskb);
@@ -415,8 +418,8 @@ static void __exit rtnetproxy_cleanup_module(void)
 unregister_netdev(dev_rtnetproxy);
 free_netdev(dev_rtnetproxy);
 
+rtdm_task_destroy(_tx_task);
 rtdm_event_destroy(_tx_event);
-rtdm_task_join_nrt(_tx_task, 100);
 
 /* free the non-real-time signal */
 rtdm_nrtsig_destroy(_rx_signal);
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
index 44c9bbb..a4b7955 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
@@ -34,9 +34,13 @@
 #include 
 
 
-#define FLAG_TIMER_STARTED  0x0001
-#define FLAG_TIMER_SHUTDOWN 0x0002
+#define FLAG_TIMER_STARTED  16
+#define FLAG_TIMER_SHUTDOWN 17
+#define FLAG_TIMER_PENDING  18
 
+#define _FLAG_TIMER_STARTED (1 << FLAG_TIMER_STARTED)
+#define _FLAG_TIMER_SHUTDOWN(1 << FLAG_TIMER_SHUTDOWN)
+#define _FLAG_TIMER_PENDING (1 << FLAG_TIMER_PENDING)
 
 typedef enum {
 RTCFG_MAIN_OFF,
@@ -63,8 +67,8 @@ struct rtcfg_device {
 rtdm_mutex_tdev_mutex;
 struct list_headevent_calls;
 rtdm_lock_t event_calls_lock;
-rtdm_task_t timer_task;
-unsigned intflags;
+rtdm_timer_ttimer;
+unsigned long   flags;
 unsigned intburstrate;
 #ifdef CONFIG_XENO_OPT_VFILE
 struct xnvfile_directoryproc_entry;
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
index ac9f78b..2a6a415 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
@@ -51,9 +51,11 @@
 #define RTCFG_ADDRSIZE_IP   4
 #define RTCFG_MAX_ADDRSIZE  RTCFG_ADDRSIZE_IP
 
-#define RTCFG_FLAG_STAGE_2_DATA 1
-#define RTCFG_FLAG_READY2
+#define RTCFG_FLAG_STAGE_2_DATA 0
+#define RTCFG_FLAG_READY1
 
+#define _RTCFG_FLAG_STAGE_2_DATA (1 << RTCFG_FLAG_STAGE_2_DATA)
+#define _RTCFG_FLAG_READY(1 << RTCFG_FLAG_READY)
 
 struct rtcfg_frm_head {
 #if defined(__LITTLE_ENDIAN_BITFIELD)
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
index e9f6e27..2da6d50 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
@@ -25,7 +25,10 @@
 #ifndef __RTCFG_TIMER_H_
 #define __RTCFG_TIMER_H_
 
+void rtcfg_timer(rtdm_timer_t *t);
 
-void rtcfg_timer(void *arg);
+void rtcfg_timer_run(void);
+
+void rtcfg_thread_signal(void);
 
 #endif /* __RTCFG_TIMER_H_ */
diff --git 

[Xenomai-git] Gilles Chanteperdrix : rtnet: adapt to RTDM task management changes

2015-10-01 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: bd971c3a9624987d76662b5c67a4ab10bdc51cd8
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=bd971c3a9624987d76662b5c67a4ab10bdc51cd8

Author: Gilles Chanteperdrix 
Date:   Thu Oct  1 02:10:29 2015 +0200

rtnet: adapt to RTDM task management changes

Replace rtcfg timer tasks with timers, polled in the rtcfg rx task.
Remove useless calls to rtdm_task_join_nrt.

---

 kernel/drivers/net/addons/proxy.c  |7 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_event.h  |   12 ++-
 .../drivers/net/stack/include/rtcfg/rtcfg_frame.h  |6 +-
 .../drivers/net/stack/include/rtcfg/rtcfg_timer.h  |5 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |1 -
 .../drivers/net/stack/rtcfg/rtcfg_client_event.c   |   70 +++---
 kernel/drivers/net/stack/rtcfg/rtcfg_conn_event.c  |   14 +--
 kernel/drivers/net/stack/rtcfg/rtcfg_event.c   |   48 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |   23 +++--
 kernel/drivers/net/stack/rtcfg/rtcfg_proc.c|2 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_timer.c   |   96 
 kernel/drivers/net/stack/rtmac/nomac/nomac_proto.c |8 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_module.c  |4 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_worker.c  |2 +-
 kernel/drivers/net/stack/rtnet_rtpc.c  |   13 +--
 kernel/drivers/net/stack/stack_mgr.c   |6 +-
 16 files changed, 187 insertions(+), 130 deletions(-)

diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 9b459eb..4887f77 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -103,7 +103,10 @@ static void rtnetproxy_tx_loop(void *arg)
 struct rtnet_device *rtdev;
 struct rtskb *rtskb;
 
-while (rtdm_event_wait(_tx_event) == 0) {
+while (!rtdm_task_should_stop()) {
+   if (rtdm_event_wait(_tx_event) < 0)
+   break;
+
while ((rtskb = rtskb_dequeue(_queue)) != NULL) {
rtdev = rtskb->rtdev;
rtdev_xmit_proxy(rtskb);
@@ -415,8 +418,8 @@ static void __exit rtnetproxy_cleanup_module(void)
 unregister_netdev(dev_rtnetproxy);
 free_netdev(dev_rtnetproxy);
 
+rtdm_task_destroy(_tx_task);
 rtdm_event_destroy(_tx_event);
-rtdm_task_join_nrt(_tx_task, 100);
 
 /* free the non-real-time signal */
 rtdm_nrtsig_destroy(_rx_signal);
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
index 44c9bbb..a4b7955 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_event.h
@@ -34,9 +34,13 @@
 #include 
 
 
-#define FLAG_TIMER_STARTED  0x0001
-#define FLAG_TIMER_SHUTDOWN 0x0002
+#define FLAG_TIMER_STARTED  16
+#define FLAG_TIMER_SHUTDOWN 17
+#define FLAG_TIMER_PENDING  18
 
+#define _FLAG_TIMER_STARTED (1 << FLAG_TIMER_STARTED)
+#define _FLAG_TIMER_SHUTDOWN(1 << FLAG_TIMER_SHUTDOWN)
+#define _FLAG_TIMER_PENDING (1 << FLAG_TIMER_PENDING)
 
 typedef enum {
 RTCFG_MAIN_OFF,
@@ -63,8 +67,8 @@ struct rtcfg_device {
 rtdm_mutex_tdev_mutex;
 struct list_headevent_calls;
 rtdm_lock_t event_calls_lock;
-rtdm_task_t timer_task;
-unsigned intflags;
+rtdm_timer_ttimer;
+unsigned long   flags;
 unsigned intburstrate;
 #ifdef CONFIG_XENO_OPT_VFILE
 struct xnvfile_directoryproc_entry;
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
index ac9f78b..2a6a415 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_frame.h
@@ -51,9 +51,11 @@
 #define RTCFG_ADDRSIZE_IP   4
 #define RTCFG_MAX_ADDRSIZE  RTCFG_ADDRSIZE_IP
 
-#define RTCFG_FLAG_STAGE_2_DATA 1
-#define RTCFG_FLAG_READY2
+#define RTCFG_FLAG_STAGE_2_DATA 0
+#define RTCFG_FLAG_READY1
 
+#define _RTCFG_FLAG_STAGE_2_DATA (1 << RTCFG_FLAG_STAGE_2_DATA)
+#define _RTCFG_FLAG_READY(1 << RTCFG_FLAG_READY)
 
 struct rtcfg_frm_head {
 #if defined(__LITTLE_ENDIAN_BITFIELD)
diff --git a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h 
b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
index e9f6e27..2da6d50 100644
--- a/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
+++ b/kernel/drivers/net/stack/include/rtcfg/rtcfg_timer.h
@@ -25,7 +25,10 @@
 #ifndef __RTCFG_TIMER_H_
 #define __RTCFG_TIMER_H_
 
+void rtcfg_timer(rtdm_timer_t *t);
 
-void rtcfg_timer(void *arg);
+void rtcfg_timer_run(void);
+
+void rtcfg_thread_signal(void);
 
 #endif /* __RTCFG_TIMER_H_ */
diff --git