Module: xenomai-gch
Branch: next
Commit: 4b994f166b21cab58a5e15c94fb92c559e126ca8
URL:    
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=4b994f166b21cab58a5e15c94fb92c559e126ca8

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Sat Oct 31 20:53:09 2015 +0100

cobalt/corectl: allow retrieving RTnet configuration

---

 include/cobalt/uapi/corectl.h |   17 +++++++++++++++++
 kernel/cobalt/posix/syscall.c |   30 ++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)

diff --git a/include/cobalt/uapi/corectl.h b/include/cobalt/uapi/corectl.h
index 9466743..159bfbc 100644
--- a/include/cobalt/uapi/corectl.h
+++ b/include/cobalt/uapi/corectl.h
@@ -32,6 +32,7 @@
 #   define _CC_COBALT_DEBUG_POSIX_SYNCHRO      64
 #   define _CC_COBALT_DEBUG_LEGACY             128
 #   define _CC_COBALT_DEBUG_TRACE_RELAX                256
+#   define _CC_COBALT_DEBUG_NET                        512
 
 #define _CC_COBALT_GET_POLICIES                4
 #   define _CC_COBALT_SCHED_FIFO       1
@@ -46,6 +47,22 @@
 #define _CC_COBALT_START_CORE          7
 #define _CC_COBALT_STOP_CORE           8
 
+#define _CC_COBALT_GET_NET_CONFIG      9
+#   define _CC_COBALT_NET              0x00000001
+#   define _CC_COBALT_NET_ETH_P_ALL    0x00000002
+#   define _CC_COBALT_NET_IPV4         0x00000004
+#   define _CC_COBALT_NET_ICMP         0x00000008
+#   define _CC_COBALT_NET_NETROUTING   0x00000010
+#   define _CC_COBALT_NET_ROUTER       0x00000020
+#   define _CC_COBALT_NET_UDP          0x00000040
+#   define _CC_COBALT_NET_AF_PACKET    0x00000080
+#   define _CC_COBALT_NET_TDMA         0x00000100
+#   define _CC_COBALT_NET_NOMAC                0x00000200
+#   define _CC_COBALT_NET_CFG          0x00000400
+#   define _CC_COBALT_NET_CAP          0x00000800
+#   define _CC_COBALT_NET_PROXY                0x00001000
+
+
 enum cobalt_run_states {
        COBALT_STATE_DISABLED,
        COBALT_STATE_RUNNING,
diff --git a/kernel/cobalt/posix/syscall.c b/kernel/cobalt/posix/syscall.c
index 7f2e1c6..49fd5c7 100644
--- a/kernel/cobalt/posix/syscall.c
+++ b/kernel/cobalt/posix/syscall.c
@@ -408,6 +408,8 @@ static int get_conf_option(int option, void __user *u_buf, 
size_t u_bufsz)
                        val |= _CC_COBALT_DEBUG_LEGACY;
                if (IS_ENABLED(CONFIG_XENO_OPT_DEBUG_TRACE_RELAX))
                        val |= _CC_COBALT_DEBUG_TRACE_RELAX;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_RTNET_CHECKED))
+                       val |= _CC_COBALT_DEBUG_NET;
                break;
        case _CC_COBALT_GET_WATCHDOG:
 #ifdef CONFIG_XENO_OPT_WATCHDOG
@@ -417,6 +419,34 @@ static int get_conf_option(int option, void __user *u_buf, 
size_t u_bufsz)
        case _CC_COBALT_GET_CORE_STATUS:
                val = realtime_core_state();
                break;
+       case _CC_COBALT_GET_NET_CONFIG:
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET))
+                       val |= _CC_COBALT_NET;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_ETH_P_ALL))
+                       val |= _CC_COBALT_NET_ETH_P_ALL;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_RTIPV4))
+                       val |= _CC_COBALT_NET_IPV4;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_RTIPV4_ICMP))
+                       val |= _CC_COBALT_NET_ICMP;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_RTIPV4_NETROUTING))
+                       val |= _CC_COBALT_NET_NETROUTING;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_RTIPV4_ROUTE))
+                       val |= _CC_COBALT_NET_ROUTER;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_RTIPV4_UDP))
+                       val |= _CC_COBALT_NET_UDP;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_RTPACKET))
+                       val |= _CC_COBALT_NET_AF_PACKET;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_TDMA))
+                       val |= _CC_COBALT_NET_TDMA;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_NOMAC))
+                       val |= _CC_COBALT_NET_NOMAC;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_RTCFG))
+                       val |= _CC_COBALT_NET_CFG;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_ADDON_RTCAP))
+                       val |= _CC_COBALT_NET_CAP;
+               if (IS_ENABLED(CONFIG_XENO_DRIVERS_NET_ADDON_PROXY))
+                       val |= _CC_COBALT_NET_PROXY;
+               break;
        default:
                return -EINVAL;
        }


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://xenomai.org/mailman/listinfo/xenomai-git

Reply via email to