[Xenomai-git] Gilles Chanteperdrix : lib/cobalt: allow getting/ setting affinity in pthread_attr_ex_t
Module: xenomai-gch Branch: next Commit: 6e26e8ac789b511cb4bdd6434cdd358da4038717 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=6e26e8ac789b511cb4bdd6434cdd358da4038717 Author: Gilles ChanteperdrixDate: Wed Nov 4 01:34:59 2015 +0100 lib/cobalt: allow getting/setting affinity in pthread_attr_ex_t --- include/cobalt/pthread.h |7 +++ lib/cobalt/attr.c| 12 2 files changed, 19 insertions(+) diff --git a/include/cobalt/pthread.h b/include/cobalt/pthread.h index 386c337..1d229de 100644 --- a/include/cobalt/pthread.h +++ b/include/cobalt/pthread.h @@ -164,6 +164,13 @@ int pthread_attr_getpersonality_ex(const pthread_attr_ex_t *attr_ex, int pthread_attr_setpersonality_ex(pthread_attr_ex_t *attr_ex, int personality); + +int pthread_attr_getaffinity_ex(pthread_attr_ex_t *attr_ex, + size_t size, cpu_set_t *cpuset); + +int pthread_attr_setaffinity_ex(pthread_attr_ex_t *attr_ex, + size_t size, const cpu_set_t *cpuset); + #ifdef __cplusplus } #endif diff --git a/lib/cobalt/attr.c b/lib/cobalt/attr.c index 586de92..657771b 100644 --- a/lib/cobalt/attr.c +++ b/lib/cobalt/attr.c @@ -131,6 +131,18 @@ int pthread_attr_setscope_ex(pthread_attr_ex_t *attr_ex, return pthread_attr_setscope(_ex->std, scope); } +int pthread_attr_getaffinity_ex(pthread_attr_ex_t *attr_ex, + size_t size, cpu_set_t *cpuset) +{ + return pthread_attr_getaffinity_np(_ex->std, size, cpuset); +} + +int pthread_attr_setaffinity_ex(pthread_attr_ex_t *attr_ex, + size_t size, const cpu_set_t *cpuset) +{ + return pthread_attr_setaffinity_np(_ex->std, size, cpuset); +} + int pthread_attr_getpersonality_ex(const pthread_attr_ex_t *attr_ex, int *personality) { ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : testsuite/smokey: add RTnet raw packets test
Module: xenomai-gch Branch: next Commit: 3806b25fe27f47dff18778f5cadec432fc28676f URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=3806b25fe27f47dff18778f5cadec432fc28676f Author: Gilles ChanteperdrixDate: Sun Nov 1 19:14:40 2015 +0100 testsuite/smokey: add RTnet raw packets test --- configure.ac |1 + testsuite/smokey/Makefile.am |1 + testsuite/smokey/net_common/setup.c |7 +- testsuite/smokey/net_packet_raw/Makefile.am | 10 +++ testsuite/smokey/net_packet_raw/packet_raw.c | 122 ++ 5 files changed, 135 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index c277e50..bc11612 100644 --- a/configure.ac +++ b/configure.ac @@ -901,6 +901,7 @@ AC_CONFIG_FILES([ \ testsuite/smokey/leaks/Makefile \ testsuite/smokey/net_udp/Makefile \ testsuite/smokey/net_packet_dgram/Makefile \ + testsuite/smokey/net_packet_raw/Makefile \ testsuite/smokey/net_common/Makefile \ testsuite/smokey/fpu-stress/Makefile \ testsuite/clocktest/Makefile \ diff --git a/testsuite/smokey/Makefile.am b/testsuite/smokey/Makefile.am index 1a0364a..dd1d601 100644 --- a/testsuite/smokey/Makefile.am +++ b/testsuite/smokey/Makefile.am @@ -12,6 +12,7 @@ COBALT_SUBDIRS = \ iddp\ leaks \ net_packet_dgram\ + net_packet_raw \ net_udp \ net_common \ posix-clock \ diff --git a/testsuite/smokey/net_common/setup.c b/testsuite/smokey/net_common/setup.c index a315d2e..2dd79dc 100644 --- a/testsuite/smokey/net_common/setup.c +++ b/testsuite/smokey/net_common/setup.c @@ -251,16 +251,11 @@ static int find_peer(const char *intf, void *vpeer) for(;;) { err = fscanf(f, "%s\t%s\t%s\t%s\n", hash, dest, mac, dev); - if (err == 0) { + if (err == EOF) { smokey_warning("No peer found\n"); err = -ENOENT; goto err; } - if (err < 0) { - err = -errno; - smokey_warning("fscanf: %s", strerror(-err)); - goto err; - } if (err < 4) { smokey_warning("Error parsing" " /proc/rtnet/ipv4/host_route\n"); diff --git a/testsuite/smokey/net_packet_raw/Makefile.am b/testsuite/smokey/net_packet_raw/Makefile.am new file mode 100644 index 000..6a6372a --- /dev/null +++ b/testsuite/smokey/net_packet_raw/Makefile.am @@ -0,0 +1,10 @@ +noinst_LIBRARIES = libnet_packet_raw.a + +libnet_packet_raw_a_SOURCES = \ + packet_raw.c + +libnet_packet_raw_a_CPPFLAGS = \ + @XENO_USER_CFLAGS@ \ + -I$(srcdir)/../net_common \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/kernel/drivers/net/stack/include diff --git a/testsuite/smokey/net_packet_raw/packet_raw.c b/testsuite/smokey/net_packet_raw/packet_raw.c new file mode 100644 index 000..a7302ca --- /dev/null +++ b/testsuite/smokey/net_packet_raw/packet_raw.c @@ -0,0 +1,122 @@ +/* + * RTnet AF_PACKET test + * + * Copyright (C) 2015 Gilles Chanteperdrix + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include "smokey_net.h" + +smokey_test_plugin(net_packet_raw, + SMOKEY_ARGLIST( + SMOKEY_STRING(rtnet_driver), + SMOKEY_STRING(rtnet_interface), + SMOKEY_INT(rtnet_rate), + SMOKEY_INT(rtnet_duration), + ), + "Check RTnet driver, using raw packets, measuring round trip time\n" + "\tand packet losses,\n" + "\tthe rtnet_driver parameter allows choosing the network driver\n" + "\tthe rtnet_interface parameter allows choosing the network interface\n" + "\tthe rtnet_rate parameter allows choosing the packet rate\n" + "\tthe rtnet_duration parameter allows choosing the test duration\n" + "\tA server on the network must run the smokey_rtnet_server program." +); + +struct raw_packet_client { + struct smokey_net_client base; + struct ethhdr header; +}; + +static int +packet_raw_create_socket(struct smokey_net_client *bclient) +{ + struct raw_packet_client *client = (struct raw_packet_client *)bclient; + struct ifreq ifr; + int err, sock; + + sock = smokey_check_errno( + __RT(socket(PF_PACKET, SOCK_RAW, htons(ETH_P_802_EX1 + 1; + if (sock < 0) + return sock; + + memcpy(client->header.h_dest, bclient->ll_peer.sll_addr, 6); + ifr.ifr_ifindex = bclient->ll_peer.sll_ifindex; + err = smokey_check_errno( + __RT(ioctl(sock, SIOCGIFNAME, ))); + if (err < 0) + goto err; +
[Xenomai-git] Gilles Chanteperdrix : testsuite/smokey: add RTnet testsuite
Module: xenomai-gch Branch: next Commit: 74bd22c6c498ea6c797bea555b97c43063f5753c URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=74bd22c6c498ea6c797bea555b97c43063f5753c Author: Gilles ChanteperdrixDate: Sun Oct 11 16:05:18 2015 +0200 testsuite/smokey: add RTnet testsuite Starting with UDP and raw sockets. Measuring round trip time and checking for lost packets. --- configure.ac |6 +- testsuite/smokey/Makefile.am |5 +- testsuite/smokey/net_common/Makefile.am | 25 ++ testsuite/smokey/net_common/client.c | 286 testsuite/smokey/net_common/server.c | 178 testsuite/smokey/net_common/setup.c | 517 ++ testsuite/smokey/net_common/smokey_net.h | 51 +++ testsuite/smokey/net_common/smokey_net_server.c | 214 + testsuite/smokey/net_common/smokey_net_server.h | 31 ++ testsuite/smokey/net_packet_dgram/Makefile.am| 10 + testsuite/smokey/net_packet_dgram/packet_dgram.c | 81 testsuite/smokey/net_udp/Makefile.am | 10 + testsuite/smokey/net_udp/udp.c | 75 13 files changed, 1487 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 89c2911..c277e50 100644 --- a/configure.ac +++ b/configure.ac @@ -879,8 +879,8 @@ AC_CONFIG_FILES([ \ lib/smokey/Makefile \ lib/trank/Makefile \ testsuite/Makefile \ + testsuite/clocktest/Makefile \ testsuite/latency/Makefile \ - testsuite/switchtest/Makefile \ testsuite/smokey/Makefile \ testsuite/smokey/arith/Makefile \ testsuite/smokey/sched-quota/Makefile \ @@ -899,8 +899,12 @@ AC_CONFIG_FILES([ \ testsuite/smokey/timerfd/Makefile \ testsuite/smokey/tsc/Makefile \ testsuite/smokey/leaks/Makefile \ + testsuite/smokey/net_udp/Makefile \ + testsuite/smokey/net_packet_dgram/Makefile \ + testsuite/smokey/net_common/Makefile \ testsuite/smokey/fpu-stress/Makefile \ testsuite/clocktest/Makefile \ + testsuite/switchtest/Makefile \ testsuite/xeno-test/Makefile \ utils/Makefile \ utils/hdb/Makefile \ diff --git a/testsuite/smokey/Makefile.am b/testsuite/smokey/Makefile.am index 023cd47..1a0364a 100644 --- a/testsuite/smokey/Makefile.am +++ b/testsuite/smokey/Makefile.am @@ -11,6 +11,9 @@ COBALT_SUBDIRS = \ fpu-stress \ iddp\ leaks \ + net_packet_dgram\ + net_udp \ + net_common \ posix-clock \ posix-cond \ posix-fork \ @@ -28,7 +31,7 @@ COBALT_SUBDIRS = \ MERCURY_SUBDIRS = DIST_SUBDIRS = $(COBALT_SUBDIRS) $(MERCURY_SUBDIRS) - + if XENO_COBALT wrappers = $(XENO_POSIX_WRAPPERS) SUBDIRS = $(COBALT_SUBDIRS) diff --git a/testsuite/smokey/net_common/Makefile.am b/testsuite/smokey/net_common/Makefile.am new file mode 100644 index 000..614c709 --- /dev/null +++ b/testsuite/smokey/net_common/Makefile.am @@ -0,0 +1,25 @@ +bin_PROGRAMS = smokey_net_server + +noinst_LIBRARIES = libnet_common.a +noinst_HEADERS = smokey_net.h + +AM_CPPFLAGS = \ + @XENO_USER_CFLAGS@ \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/kernel/drivers/net/stack/include + +libnet_common_a_SOURCES = \ + client.c \ + server.c \ + setup.c + +smokey_net_server_SOURCES = \ + smokey_net_server.c + +smokey_net_server_LDFLAGS = @XENO_AUTOINIT_LDFLAGS@ + +smokey_net_server_LDADD = \ + libnet_common.a \ + $(top_builddir)/lib/@XENO_CORE_LIB@ \ + @XENO_USER_LDADD@ \ + -lpthread -lrt diff --git a/testsuite/smokey/net_common/client.c b/testsuite/smokey/net_common/client.c new file mode 100644 index 000..0932825 --- /dev/null +++ b/testsuite/smokey/net_common/client.c @@ -0,0 +1,286 @@ +#include +#include + +#include +#include +#include +#include +#include + +#include "smokey_net.h" + +static int duration = 10; +static int rate = 1000; +static const char *driver = "rt_loopback"; +static const char *intf; +static pthread_t tid; +static unsigned long long glost, glate; + +static int rcv_packet(struct smokey_net_client *client, int sock, unsigned seq, + struct timespec *next_shot, bool last) +{ + static unsigned long long gmin = ~0ULL, gmax = 0, gsum = 0, gcount = 0; + static unsigned long long min = ~0ULL, max = 0, sum = 0, count = 0, + lost = 0, late = 0; + static struct timespec last_print; + struct smokey_net_payload payload; + struct timeval timeout; + struct timespec now; + char packet[256]; + long long diff; + fd_set set; + int err; + + FD_ZERO(); + FD_SET(sock, ); + + err = smokey_check_errno( + __RT(clock_gettime(CLOCK_MONOTONIC, ))); +
[Xenomai-git] Gilles Chanteperdrix : cobalt/corectl: allow retrieving RTnet configuration
Module: xenomai-gch Branch: next Commit: 4b994f166b21cab58a5e15c94fb92c559e126ca8 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=4b994f166b21cab58a5e15c94fb92c559e126ca8 Author: Gilles ChanteperdrixDate: 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_RELAX256 +# define _CC_COBALT_DEBUG_NET512 #define _CC_COBALT_GET_POLICIES4 # 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 0x0001 +# define _CC_COBALT_NET_ETH_P_ALL0x0002 +# define _CC_COBALT_NET_IPV4 0x0004 +# define _CC_COBALT_NET_ICMP 0x0008 +# define _CC_COBALT_NET_NETROUTING 0x0010 +# define _CC_COBALT_NET_ROUTER 0x0020 +# define _CC_COBALT_NET_UDP 0x0040 +# define _CC_COBALT_NET_AF_PACKET0x0080 +# define _CC_COBALT_NET_TDMA 0x0100 +# define _CC_COBALT_NET_NOMAC0x0200 +# define _CC_COBALT_NET_CFG 0x0400 +# define _CC_COBALT_NET_CAP 0x0800 +# define _CC_COBALT_NET_PROXY0x1000 + + 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
[Xenomai-git] Gilles Chanteperdrix : lib/cobalt: allow getting/ setting affinity in pthread_attr_ex_t
Module: xenomai-gch Branch: next Commit: daf79287d2655381ecc932fcb41175dd736ea8c9 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=daf79287d2655381ecc932fcb41175dd736ea8c9 Author: Gilles ChanteperdrixDate: Wed Nov 4 01:34:59 2015 +0100 lib/cobalt: allow getting/setting affinity in pthread_attr_ex_t --- include/cobalt/pthread.h |7 +++ lib/cobalt/attr.c| 12 2 files changed, 19 insertions(+) diff --git a/include/cobalt/pthread.h b/include/cobalt/pthread.h index 386c337..1d229de 100644 --- a/include/cobalt/pthread.h +++ b/include/cobalt/pthread.h @@ -164,6 +164,13 @@ int pthread_attr_getpersonality_ex(const pthread_attr_ex_t *attr_ex, int pthread_attr_setpersonality_ex(pthread_attr_ex_t *attr_ex, int personality); + +int pthread_attr_getaffinity_ex(pthread_attr_ex_t *attr_ex, + size_t size, cpu_set_t *cpuset); + +int pthread_attr_setaffinity_ex(pthread_attr_ex_t *attr_ex, + size_t size, const cpu_set_t *cpuset); + #ifdef __cplusplus } #endif diff --git a/lib/cobalt/attr.c b/lib/cobalt/attr.c index 586de92..657771b 100644 --- a/lib/cobalt/attr.c +++ b/lib/cobalt/attr.c @@ -131,6 +131,18 @@ int pthread_attr_setscope_ex(pthread_attr_ex_t *attr_ex, return pthread_attr_setscope(_ex->std, scope); } +int pthread_attr_getaffinity_ex(pthread_attr_ex_t *attr_ex, + size_t size, cpu_set_t *cpuset) +{ + return pthread_attr_getaffinity_np(_ex->std, size, cpuset); +} + +int pthread_attr_setaffinity_ex(pthread_attr_ex_t *attr_ex, + size_t size, const cpu_set_t *cpuset) +{ + return pthread_attr_setaffinity_np(_ex->std, size, cpuset); +} + int pthread_attr_getpersonality_ex(const pthread_attr_ex_t *attr_ex, int *personality) { ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : drivers/rtnet: upgrade igb driver
Module: xenomai-gch Branch: for-3.0.x Commit: b3e18b6d4015f4c445143c4b28bdc09110e4c6e5 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=b3e18b6d4015f4c445143c4b28bdc09110e4c6e5 Author: Gilles ChanteperdrixDate: Sat Oct 10 17:59:51 2015 +0200 drivers/rtnet: upgrade igb driver --- kernel/drivers/net/drivers/igb/Makefile| 15 +- kernel/drivers/net/drivers/igb/e1000_82575.c | 2729 --- kernel/drivers/net/drivers/igb/e1000_82575.h | 220 +- kernel/drivers/net/drivers/igb/e1000_defines.h | 659 ++- kernel/drivers/net/drivers/igb/e1000_hw.h | 414 +- kernel/drivers/net/drivers/igb/e1000_i210.c| 902 kernel/drivers/net/drivers/igb/e1000_i210.h| 93 + kernel/drivers/net/drivers/igb/e1000_mac.c | 820 ++-- kernel/drivers/net/drivers/igb/e1000_mac.h | 83 +- kernel/drivers/net/drivers/igb/e1000_mbx.c | 443 ++ kernel/drivers/net/drivers/igb/e1000_mbx.h | 73 + kernel/drivers/net/drivers/igb/e1000_nvm.c | 425 +- kernel/drivers/net/drivers/igb/e1000_nvm.h | 70 +- kernel/drivers/net/drivers/igb/e1000_phy.c | 1504 -- kernel/drivers/net/drivers/igb/e1000_phy.h | 138 +- kernel/drivers/net/drivers/igb/e1000_regs.h| 252 +- kernel/drivers/net/drivers/igb/igb.h | 640 ++- kernel/drivers/net/drivers/igb/igb_ethtool.c | 2033 kernel/drivers/net/drivers/igb/igb_hwmon.c | 249 + kernel/drivers/net/drivers/igb/igb_main.c | 6179 +++- 20 files changed, 11210 insertions(+), 6731 deletions(-) Diff: http://git.xenomai.org/?p=xenomai-gch.git;a=commitdiff;h=b3e18b6d4015f4c445143c4b28bdc09110e4c6e5 ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : rtnet/ioctl: allow checking link state
Module: xenomai-gch Branch: for-3.0.x Commit: ba315472fef528ce82cf2bfe852c99092f0046c7 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=ba315472fef528ce82cf2bfe852c99092f0046c7 Author: Gilles ChanteperdrixDate: Sat Oct 10 19:37:50 2015 +0200 rtnet/ioctl: allow checking link state Use the IFF_RUNNING bit in the flags returned by the SIOCGIFFLAGS ioctl, like Linux SIOCGIFFLAGS ioctl. --- kernel/drivers/net/stack/include/rtdev.h |4 kernel/drivers/net/stack/rtdev.c |2 +- kernel/drivers/net/stack/rtnet_chrdev.c |7 +++ kernel/drivers/net/stack/socket.c|8 +++- utils/net/rtifconfig.c |2 +- 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/kernel/drivers/net/stack/include/rtdev.h b/kernel/drivers/net/stack/include/rtdev.h index 67a8ffd..c1c0b4e 100644 --- a/kernel/drivers/net/stack/include/rtdev.h +++ b/kernel/drivers/net/stack/include/rtdev.h @@ -55,6 +55,10 @@ enum rtnet_link_state { __RTNET_LINK_STATE_PRESENT, __RTNET_LINK_STATE_NOCARRIER, }; +#define RTNET_LINK_STATE_XOFF (1 << __RTNET_LINK_STATE_XOFF) +#define RTNET_LINK_STATE_START (1 << __RTNET_LINK_STATE_START) +#define RTNET_LINK_STATE_PRESENT (1 << __RTNET_LINK_STATE_PRESENT) +#define RTNET_LINK_STATE_NOCARRIER (1 << __RTNET_LINK_STATE_NOCARRIER) /*** * rtnet_device diff --git a/kernel/drivers/net/stack/rtdev.c b/kernel/drivers/net/stack/rtdev.c index f7e1f41..5eb73ce 100644 --- a/kernel/drivers/net/stack/rtdev.c +++ b/kernel/drivers/net/stack/rtdev.c @@ -644,7 +644,7 @@ int rtdev_open(struct rtnet_device *rtdev) ret = rtdev->open(rtdev); if ( !ret ) { - rtdev->flags |= (IFF_UP | IFF_RUNNING); + rtdev->flags |= IFF_UP; set_bit(__RTNET_LINK_STATE_START, >link_state); } else rtdev_dereference(rtdev); diff --git a/kernel/drivers/net/stack/rtnet_chrdev.c b/kernel/drivers/net/stack/rtnet_chrdev.c index d3f617c..f06ff2a 100644 --- a/kernel/drivers/net/stack/rtnet_chrdev.c +++ b/kernel/drivers/net/stack/rtnet_chrdev.c @@ -210,6 +210,13 @@ static int rtnet_core_ioctl(struct rtnet_device *rtdev, unsigned int request, cmd.args.info.broadcast_ip = rtdev->broadcast_ip; cmd.args.info.mtu = rtdev->mtu; cmd.args.info.flags= rtdev->flags; +if ((cmd.args.info.flags & IFF_UP) + && (rtdev->link_state + & (RTNET_LINK_STATE_PRESENT + | RTNET_LINK_STATE_NOCARRIER)) +== RTNET_LINK_STATE_PRESENT) +cmd.args.info.flags |= IFF_RUNNING; + memcpy(cmd.args.info.dev_addr, rtdev->dev_addr, MAX_ADDR_LEN); mutex_unlock(>nrt_lock); diff --git a/kernel/drivers/net/stack/socket.c b/kernel/drivers/net/stack/socket.c index 64a2a2e..7dacb25 100644 --- a/kernel/drivers/net/stack/socket.c +++ b/kernel/drivers/net/stack/socket.c @@ -242,7 +242,7 @@ int rt_socket_if_ioctl(struct rtdm_fd *fd, int request, void *arg) for (i = 1; i <= MAX_RT_DEVICES; i++) { rtdev = rtdev_get_by_index(i); if (rtdev != NULL) { - if ((rtdev->flags & IFF_RUNNING) == 0) { + if ((rtdev->flags & IFF_UP) == 0) { rtdev_dereference(rtdev); continue; } @@ -288,6 +288,12 @@ int rt_socket_if_ioctl(struct rtdm_fd *fd, int request, void *arg) case SIOCGIFFLAGS: ifr->ifr_flags = rtdev->flags; +if ((ifr->ifr_flags & IFF_UP) + && (rtdev->link_state + & (RTNET_LINK_STATE_PRESENT + | RTNET_LINK_STATE_NOCARRIER)) +== RTNET_LINK_STATE_PRESENT) +ifr->ifr_flags |= IFF_RUNNING; break; case SIOCGIFHWADDR: diff --git a/utils/net/rtifconfig.c b/utils/net/rtifconfig.c index 2024afe..8117e12 100644 --- a/utils/net/rtifconfig.c +++ b/utils/net/rtifconfig.c @@ -290,7 +290,7 @@ void do_display(int print_flags) ret = ioctl(f, IOC_RT_IFINFO, ); if (ret == 0) { if (((print_flags & PRINT_FLAG_INACTIVE) != 0) || -((cmd.args.info.flags & IFF_RUNNING) != 0)) +((cmd.args.info.flags & IFF_UP) != 0)) print_dev(); } else if (errno != ENODEV) { perror("ioctl"); ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : cobalt/kernel: fixup for v3.19+ (trace_seq)
Module: xenomai-3 Branch: next Commit: c3639b53a165d4633d446822794144d264c04dbe URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=c3639b53a165d4633d446822794144d264c04dbe Author: Philippe GerumDate: Tue Nov 3 13:11:25 2015 +0100 cobalt/kernel: fixup for v3.19+ (trace_seq) --- kernel/cobalt/include/asm-generic/xenomai/wrappers.h |7 +++ kernel/cobalt/trace/cobalt-posix.h |2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/cobalt/include/asm-generic/xenomai/wrappers.h b/kernel/cobalt/include/asm-generic/xenomai/wrappers.h index d0c3952..c742202 100644 --- a/kernel/cobalt/include/asm-generic/xenomai/wrappers.h +++ b/kernel/cobalt/include/asm-generic/xenomai/wrappers.h @@ -62,10 +62,17 @@ #if LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0) #include +#include #undef alloc_netdev #define alloc_netdev(sizeof_priv, name, name_assign_type, setup) \ alloc_netdev_mqs(sizeof_priv, name, setup, 1, 1) + +static inline unsigned char * +trace_seq_buffer_ptr(struct trace_seq *s) +{ + return s->buffer + s->len; +} #endif #if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0) diff --git a/kernel/cobalt/trace/cobalt-posix.h b/kernel/cobalt/trace/cobalt-posix.h index 536108d..d87582f 100644 --- a/kernel/cobalt/trace/cobalt-posix.h +++ b/kernel/cobalt/trace/cobalt-posix.h @@ -92,7 +92,7 @@ DECLARE_EVENT_CLASS(syscall_exit, #define cobalt_print_sched_params(__policy, __p_ex)\ ({ \ - const char *__ret = p->buffer + p->len; \ + const unsigned char *__ret = trace_seq_buffer_ptr(p); \ switch (__policy) { \ case SCHED_QUOTA: \ trace_seq_printf(p, "priority=%d, group=%d",\ ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git