From: Christian Mauderer <christian.maude...@embedded-brains.de> --- cpukit/libnetworking/Makefile.am | 1 + cpukit/libnetworking/net/if.c | 5 ++-- cpukit/libnetworking/preinstall.am | 4 +++ cpukit/libnetworking/rtems/rtems_net_if.h | 49 +++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 cpukit/libnetworking/rtems/rtems_net_if.h
diff --git a/cpukit/libnetworking/Makefile.am b/cpukit/libnetworking/Makefile.am index 659be45..cf14ef0 100644 --- a/cpukit/libnetworking/Makefile.am +++ b/cpukit/libnetworking/Makefile.am @@ -144,6 +144,7 @@ include_rtems_HEADERS += rtems/ftpfs.h include_rtems_HEADERS += rtems/mkrootfs.h include_rtems_HEADERS += rtems/rtems_mii_ioctl.h include_rtems_HEADERS += rtems/rtems_socket.h +include_rtems_HEADERS += rtems/rtems_net_if.h libnetworking_a_SOURCES += rtems/sghostname.c \ rtems/rtems_glue.c rtems/rtems_malloc_mbuf.c rtems/rtems_syscall.c \ diff --git a/cpukit/libnetworking/net/if.c b/cpukit/libnetworking/net/if.c index d0da62a..1c4823a 100644 --- a/cpukit/libnetworking/net/if.c +++ b/cpukit/libnetworking/net/if.c @@ -50,6 +50,7 @@ #include <sys/sysctl.h> #include <net/if.h> +#include <rtems/rtems_net_if.h> #include <net/if_dl.h> #include <net/if_types.h> #include <net/if_var.h> @@ -660,11 +661,11 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct proc *p) * RTEMS additions for setting/getting `tap' function */ case SIOCSIFTAP: - ifp->if_tap = ifr->ifr_tap; + ifp->if_tap = ((struct rtems_ifreq *)ifr)->ifr_tap; return 0; case SIOCGIFTAP: - ifr->ifr_tap = ifp->if_tap; + ((struct rtems_ifreq *)ifr)->ifr_tap = ifp->if_tap; return 0; } return (0); diff --git a/cpukit/libnetworking/preinstall.am b/cpukit/libnetworking/preinstall.am index fb788e9..a92eb67 100644 --- a/cpukit/libnetworking/preinstall.am +++ b/cpukit/libnetworking/preinstall.am @@ -290,6 +290,10 @@ $(PROJECT_INCLUDE)/rtems/rtems_socket.h: rtems/rtems_socket.h $(PROJECT_INCLUDE) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems_socket.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems_socket.h +$(PROJECT_INCLUDE)/rtems/rtems_net_if.h: rtems/rtems_net_if.h $(PROJECT_INCLUDE)/rtems/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems_net_if.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems_net_if.h + $(PROJECT_INCLUDE)/sys/$(dirstamp): @$(MKDIR_P) $(PROJECT_INCLUDE)/sys @: > $(PROJECT_INCLUDE)/sys/$(dirstamp) diff --git a/cpukit/libnetworking/rtems/rtems_net_if.h b/cpukit/libnetworking/rtems/rtems_net_if.h new file mode 100644 index 0000000..96b108e --- /dev/null +++ b/cpukit/libnetworking/rtems/rtems_net_if.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2016 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * <rt...@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#ifndef RTEMS_NET_H +#define RTEMS_NET_H + +#include <rtems.h> +#include <net/if.h> +#include <net/if_var.h> + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* + * Forward structure declarations for function prototypes. + */ +struct mbuf; +struct ether_header; +struct ifnet; + +union rtems_ifrequ { + struct ifreq ifreq; + struct rtems_ifreq { + char ifr_name[IFNAMSIZ]; + union { + int (*ifru_tap)(struct ifnet *, + struct ether_header *, struct mbuf *); + } ifr_ifru; +#define ifr_tap ifr_ifru.ifru_tap /* tap function */ + } rtems_ifrequ; +}; + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* RTEMS_NET_H */ -- 1.8.4.5 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel