[haiku-commits] haiku: hrev56154 - src/libs/compat/freebsd_network

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 3 Jun 2022 17:57:30 +0000 (UTC)

hrev56154 adds 3 changesets to branch 'master'
old head: 9a6815fbfa897d422b20c46f98ebf736f90c3ff4
new head: 3e9b842151944134c92982cefa9dfb741f925b33
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=3e9b84215194+%5E9a6815fbfa89

----------------------------------------------------------------------------

92d0fd610b56: freebsd_network: Fix definition of bus_dma_tag_create.
  
  Fixes the build under 32-bit.

04d2f987a6aa: freebsd_network: Put extern "C" in front of all public busdma 
functions.
  
  Should catch the problem the previous commit fixed earlier.

3e9b84215194: freebsd_network: bus_dmamap_load_mbuf_sg is always NOWAIT.
  
  This matches FreeBSD.

                              [ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]

----------------------------------------------------------------------------

1 file changed, 14 insertions(+), 13 deletions(-)
src/libs/compat/freebsd_network/bus_dma.cpp | 27 +++++++++++++------------

############################################################################

Commit:      92d0fd610b564d9b27298682a9d9e217bf73d88e
URL:         https://git.haiku-os.org/haiku/commit/?id=92d0fd610b56
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Fri Jun  3 17:55:50 2022 UTC

freebsd_network: Fix definition of bus_dma_tag_create.

Fixes the build under 32-bit.

----------------------------------------------------------------------------

diff --git a/src/libs/compat/freebsd_network/bus_dma.cpp 
b/src/libs/compat/freebsd_network/bus_dma.cpp
index b1bc9a7a06..70bd5d6f24 100644
--- a/src/libs/compat/freebsd_network/bus_dma.cpp
+++ b/src/libs/compat/freebsd_network/bus_dma.cpp
@@ -91,7 +91,7 @@ busdma_lock_mutex(void* arg, bus_dma_lock_op_t op)
 
 
 int
-bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, bus_size_t 
boundary,
+bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, bus_addr_t 
boundary,
        bus_addr_t lowaddr, bus_addr_t highaddr, bus_dma_filter_t* filter,
        void* filterarg, bus_size_t maxsize, int nsegments, bus_size_t maxsegsz,
        int flags, bus_dma_lock_t* lockfunc, void* lockfuncarg, bus_dma_tag_t* 
dmat)

############################################################################

Commit:      04d2f987a6aa3928442a1423f693a362bd341008
URL:         https://git.haiku-os.org/haiku/commit/?id=04d2f987a6aa
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Fri Jun  3 17:56:38 2022 UTC

freebsd_network: Put extern "C" in front of all public busdma functions.

Should catch the problem the previous commit fixed earlier.

----------------------------------------------------------------------------

diff --git a/src/libs/compat/freebsd_network/bus_dma.cpp 
b/src/libs/compat/freebsd_network/bus_dma.cpp
index 70bd5d6f24..bbfde5ab15 100644
--- a/src/libs/compat/freebsd_network/bus_dma.cpp
+++ b/src/libs/compat/freebsd_network/bus_dma.cpp
@@ -73,7 +73,7 @@ struct bus_dmamap {
 // #pragma mark - functions
 
 
-void
+extern "C" void
 busdma_lock_mutex(void* arg, bus_dma_lock_op_t op)
 {
        struct mtx* dmtx = (struct mtx*)arg;
@@ -90,7 +90,7 @@ busdma_lock_mutex(void* arg, bus_dma_lock_op_t op)
 }
 
 
-int
+extern "C" int
 bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, bus_addr_t 
boundary,
        bus_addr_t lowaddr, bus_addr_t highaddr, bus_dma_filter_t* filter,
        void* filterarg, bus_size_t maxsize, int nsegments, bus_size_t maxsegsz,
@@ -151,7 +151,7 @@ bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t 
alignment, bus_addr_t bounda
 }
 
 
-int
+extern "C" int
 bus_dma_tag_destroy(bus_dma_tag_t dmat)
 {
        if (dmat == NULL)
@@ -176,7 +176,7 @@ bus_dma_tag_destroy(bus_dma_tag_t dmat)
 }
 
 
-int
+extern "C" int
 bus_dmamap_create(bus_dma_tag_t dmat, int flags, bus_dmamap_t* mapp)
 {
        *mapp = (bus_dmamap_t)calloc(sizeof(**mapp), 1);
@@ -229,7 +229,7 @@ _prepare_bounce_buffer(bus_dmamap_t map, bus_size_t 
reqsize, int flags)
 }
 
 
-int
+extern "C" int
 bus_dmamap_destroy(bus_dma_tag_t dmat, bus_dmamap_t map)
 {
        if (map == NULL)
@@ -245,7 +245,7 @@ bus_dmamap_destroy(bus_dma_tag_t dmat, bus_dmamap_t map)
 }
 
 
-int
+extern "C" int
 bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags,
        bus_dmamap_t* mapp)
 {
@@ -301,7 +301,7 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int 
flags,
 }
 
 
-void
+extern "C" void
 bus_dmamem_free(bus_dma_tag_t dmat, void* vaddr, bus_dmamap_t map)
 {
        kernel_contigfree(vaddr, dmat->maxsize, M_DEVBUF);
@@ -388,7 +388,7 @@ _bus_load_buffer(bus_dma_tag_t dmat, void* buf, bus_size_t 
buflen,
 }
 
 
-int
+extern "C" int
 bus_dmamap_load(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
        bus_size_t buflen, bus_dmamap_callback_t *callback,
        void *callback_arg, int flags)
@@ -428,7 +428,7 @@ bus_dmamap_load(bus_dma_tag_t dmat, bus_dmamap_t map, void 
*buf,
 }
 
 
-int
+extern "C" int
 bus_dmamap_load_mbuf_sg(bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf* mb,
        bus_dma_segment_t* segs, int* _nsegs, int flags)
 {
@@ -469,7 +469,7 @@ bus_dmamap_load_mbuf_sg(bus_dma_tag_t dmat, bus_dmamap_t 
map, struct mbuf* mb,
 }
 
 
-int
+extern "C" int
 bus_dmamap_load_mbuf(bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf* mb,
        bus_dmamap_callback2_t* callback, void* callback_arg, int flags)
 {
@@ -486,7 +486,7 @@ bus_dmamap_load_mbuf(bus_dma_tag_t dmat, bus_dmamap_t map, 
struct mbuf* mb,
 }
 
 
-void
+extern "C" void
 bus_dmamap_unload(bus_dma_tag_t dmat, bus_dmamap_t map)
 {
        if (map == NULL)
@@ -498,7 +498,7 @@ bus_dmamap_unload(bus_dma_tag_t dmat, bus_dmamap_t map)
 }
 
 
-void
+extern "C" void
 bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
 {
        if (map == NULL)

############################################################################

Revision:    hrev56154
Commit:      3e9b842151944134c92982cefa9dfb741f925b33
URL:         https://git.haiku-os.org/haiku/commit/?id=3e9b84215194
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Fri Jun  3 17:57:10 2022 UTC

freebsd_network: bus_dmamap_load_mbuf_sg is always NOWAIT.

This matches FreeBSD.

----------------------------------------------------------------------------

diff --git a/src/libs/compat/freebsd_network/bus_dma.cpp 
b/src/libs/compat/freebsd_network/bus_dma.cpp
index bbfde5ab15..050fdaea95 100644
--- a/src/libs/compat/freebsd_network/bus_dma.cpp
+++ b/src/libs/compat/freebsd_network/bus_dma.cpp
@@ -440,6 +440,7 @@ bus_dmamap_load_mbuf_sg(bus_dma_tag_t dmat, bus_dmamap_t 
map, struct mbuf* mb,
        int nsegs = 0, error = 0;
        bool first = true;
        bus_addr_t lastaddr = 0;
+       flags |= BUS_DMA_NOWAIT;
 
        for (struct mbuf* m = mb; m != NULL && error == 0; m = m->m_next) {
                if (m->m_len <= 0)


Other related posts:

  • » [haiku-commits] haiku: hrev56154 - src/libs/compat/freebsd_network - waddlesplash