From 5da04d68376693a87af63f4b8db7067e7e6e5267 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 13 May 2019 09:31:17 +0200 Subject: Fix zero-copy mbuf support In 2017 there was a change in the mbuf API. --- rtemsbsd/include/rtems/bsd/zerocopy.h | 3 +-- rtemsbsd/rtems/rtems-kernel-mbuf.c | 3 +-- testsuite/zerocopy01/test_main.c | 6 +++--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/rtemsbsd/include/rtems/bsd/zerocopy.h b/rtemsbsd/include/rtems/bsd/zerocopy.h index b15333c4..339e7a42 100644 --- a/rtemsbsd/include/rtems/bsd/zerocopy.h +++ b/rtemsbsd/include/rtems/bsd/zerocopy.h @@ -53,8 +53,7 @@ struct mbuf *rtems_bsd_m_get(int how, short type); struct mbuf *rtems_bsd_m_gethdr(int how, short type); void rtems_bsd_m_extaddref(struct mbuf *m, void *buf, size_t size, - u_int *ref_cnt, void (*freef)(void *, void *), void *arg1, - void *arg2); + u_int *ref_cnt, m_ext_free_t *freef, void *arg1, void *arg2); void rtems_bsd_m_free(struct mbuf *m); diff --git a/rtemsbsd/rtems/rtems-kernel-mbuf.c b/rtemsbsd/rtems/rtems-kernel-mbuf.c index a1429d86..1d10b51f 100644 --- a/rtemsbsd/rtems/rtems-kernel-mbuf.c +++ b/rtemsbsd/rtems/rtems-kernel-mbuf.c @@ -55,8 +55,7 @@ rtems_bsd_m_gethdr(int how, short type) void rtems_bsd_m_extaddref(struct mbuf *m, void *buf, size_t size, - u_int *ref_cnt, void (*freef)(void *, void *), void *arg1, - void *arg2) + u_int *ref_cnt, m_ext_free_t *freef, void *arg1, void *arg2) { m_extaddref(m, buf, size, ref_cnt, freef, arg1, arg2); } diff --git a/testsuite/zerocopy01/test_main.c b/testsuite/zerocopy01/test_main.c index d23c746f..e528257f 100644 --- a/testsuite/zerocopy01/test_main.c +++ b/testsuite/zerocopy01/test_main.c @@ -82,10 +82,10 @@ struct buffer_control { static struct buffer_control buffer_control; static void -buffer_free(void *arg1, void *arg2) +buffer_free(struct mbuf *m) { - struct buffer_control *bc = arg1; - struct buffer *buf = arg2; + struct buffer_control *bc = m->m_ext.ext_arg1; + struct buffer *buf = m->m_ext.ext_arg2; rtems_status_code sc; rtems_interrupt_lock_context lock_context; rtems_id waiting_task; -- cgit v1.2.3