summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/include/rtems/bsd
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-06-21 14:35:19 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-23 09:24:06 +0200
commite846288593f42b90aa4b726badafc747a5ecdbf4 (patch)
tree40518df299a5a185f981a22477aefb3d7c6372a9 /rtemsbsd/include/rtems/bsd
parentdpaa: Get c45 ids (diff)
downloadrtems-libbsd-e846288593f42b90aa4b726badafc747a5ecdbf4.tar.bz2
Add rtems_bsd_set_if_input()
Diffstat (limited to 'rtemsbsd/include/rtems/bsd')
-rw-r--r--rtemsbsd/include/rtems/bsd/zerocopy.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/rtemsbsd/include/rtems/bsd/zerocopy.h b/rtemsbsd/include/rtems/bsd/zerocopy.h
index 2916c5ba..b15333c4 100644
--- a/rtemsbsd/include/rtems/bsd/zerocopy.h
+++ b/rtemsbsd/include/rtems/bsd/zerocopy.h
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2015 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2015, 2017 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -61,6 +61,29 @@ void rtems_bsd_m_free(struct mbuf *m);
int rtems_bsd_sendto(int socket, struct mbuf *m, int flags,
const struct sockaddr *dest_addr);
+struct ifnet;
+
+typedef void (*rtems_bsd_if_input_init)(struct ifnet *, void *);
+
+typedef void (*rtems_bsd_if_input)(struct ifnet *, struct mbuf *);
+
+/**
+ * @brief Sets the interface input handler of the specified network interface.
+ *
+ * @param ifname The network interface name.
+ * @param init Initialization routine called right before the new interface
+ * input handler is registered in the context of the executing thread.
+ * @param if_input The new interface input handler.
+ * @param arg The interface input handler argument available via struct
+ * ifnet::if_input_arg.
+ *
+ * @retval NULL An error occurred.
+ * @retval other The old interface input handler.
+ */
+rtems_bsd_if_input rtems_bsd_set_if_input(const char *ifname,
+ rtems_bsd_if_input_init init, rtems_bsd_if_input if_input,
+ void *arg);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */