Whamcloud - gitweb
- landing of b_hd_cleanup_merge to HEAD.
[fs/lustre-release.git] / lnet / klnds / gmlnd / gmlnd_cb.c
index e99d3ec..0ebf437 100644 (file)
 
 #include "gmnal.h"
 
-int gmnal_cb_recv(lib_nal_t *libnal, void *private, lib_msg_t *cookie, 
-                  unsigned int niov, struct iovec *iov, size_t mlen
-                  size_t rlen)
+ptl_err_t gmnal_cb_recv(lib_nal_t *libnal, void *private, lib_msg_t *cookie, 
+                  unsigned int niov, struct iovec *iov, size_t offset
+                  size_t mlen, size_t rlen)
 {
        gmnal_srxd_t    *srxd = (gmnal_srxd_t*)private;
        int             status = PTL_OK;
 
 
        CDEBUG(D_TRACE, "gmnal_cb_recv libnal [%p], private[%p], cookie[%p], "
-              "niov[%d], iov [%p], mlen["LPSZ"], rlen["LPSZ"]\n", 
-              libnal, private, cookie, niov, iov, mlen, rlen);
+              "niov[%d], iov [%p], offset["LPSZ"], mlen["LPSZ"], rlen["LPSZ"]\n", 
+              libnal, private, cookie, niov, iov, offset, mlen, rlen);
 
        switch(srxd->type) {
        case(GMNAL_SMALL_MESSAGE):
                CDEBUG(D_INFO, "gmnal_cb_recv got small message\n");
                status = gmnal_small_rx(libnal, private, cookie, niov, 
-                                        iov, mlen, rlen);
+                                        iov, offset, mlen, rlen);
        break;
        case(GMNAL_LARGE_MESSAGE_INIT):
                CDEBUG(D_INFO, "gmnal_cb_recv got large message init\n");
                status = gmnal_large_rx(libnal, private, cookie, niov, 
-                                        iov, mlen, rlen);
+                                        iov, offset, mlen, rlen);
        }
                
 
@@ -56,9 +56,9 @@ int gmnal_cb_recv(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
        return(status);
 }
 
-int gmnal_cb_recv_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie, 
-                        unsigned int kniov, ptl_kiov_t *kiov, size_t mlen
-                        size_t rlen)
+ptl_err_t gmnal_cb_recv_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie, 
+                        unsigned int kniov, ptl_kiov_t *kiov, size_t offset
+                        size_t mlen, size_t rlen)
 {
        gmnal_srxd_t    *srxd = (gmnal_srxd_t*)private;
        int             status = PTL_OK;
@@ -68,8 +68,8 @@ int gmnal_cb_recv_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
 
 
        CDEBUG(D_TRACE, "gmnal_cb_recv_pages libnal [%p],private[%p], "
-              "cookie[%p], kniov[%d], kiov [%p], mlen["LPSZ"], rlen["LPSZ"]\n",
-              libnal, private, cookie, kniov, kiov, mlen, rlen);
+              "cookie[%p], kniov[%d], kiov [%p], offset["LPSZ"], mlen["LPSZ"], rlen["LPSZ"]\n",
+              libnal, private, cookie, kniov, kiov, offset, mlen, rlen);
 
        if (srxd->type == GMNAL_SMALL_MESSAGE) {
                PORTAL_ALLOC(iovec, sizeof(struct iovec)*kniov);
@@ -99,7 +99,7 @@ int gmnal_cb_recv_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
                }
                CDEBUG(D_INFO, "calling gmnal_small_rx\n");
                status = gmnal_small_rx(libnal, private, cookie, kniov, 
-                                        iovec_dup, mlen, rlen);
+                                        iovec_dup, offset, mlen, rlen);
                for (i=0; i<kniov; i++) {
                        kunmap(kiov_dup->kiov_page);
                        kiov_dup++;
@@ -113,35 +113,35 @@ int gmnal_cb_recv_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
 }
 
 
-int gmnal_cb_send(lib_nal_t *libnal, void *private, lib_msg_t *cookie, 
+ptl_err_t gmnal_cb_send(lib_nal_t *libnal, void *private, lib_msg_t *cookie, 
                   ptl_hdr_t *hdr, int type, ptl_nid_t nid, ptl_pid_t pid, 
-                  unsigned int niov, struct iovec *iov, size_t len)
+                  unsigned int niov, struct iovec *iov, size_t offset, size_t len)
 {
 
        gmnal_data_t    *nal_data;
 
 
-       CDEBUG(D_TRACE, "gmnal_cb_send niov[%d] len["LPSZ"] nid["LPU64"]\n", 
-              niov, len, nid);
+       CDEBUG(D_TRACE, "gmnal_cb_send niov[%d] offset["LPSZ"] len["LPSZ"] nid["LPU64"]\n", 
+              niov, offset, len, nid);
        nal_data = libnal->libnal_data;
        
        if (GMNAL_IS_SMALL_MESSAGE(nal_data, niov, iov, len)) {
                CDEBUG(D_INFO, "This is a small message send\n");
                gmnal_small_tx(libnal, private, cookie, hdr, type, nid, pid, 
-                               niov, iov, len);
+                               niov, iov, offset,  len);
        } else {
                CDEBUG(D_ERROR, "Large message send it is not supported\n");
                lib_finalize(libnal, private, cookie, PTL_FAIL);
                return(PTL_FAIL);
                gmnal_large_tx(libnal, private, cookie, hdr, type, nid, pid, 
-                               niov, iov, len);
+                               niov, iov, offset, len);
        }
        return(PTL_OK);
 }
 
-int gmnal_cb_send_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie, 
+ptl_err_t gmnal_cb_send_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie, 
                         ptl_hdr_t *hdr, int type, ptl_nid_t nid, ptl_pid_t pid,
-                         unsigned int kniov, ptl_kiov_t *kiov, size_t len)
+                         unsigned int kniov, ptl_kiov_t *kiov, size_t offset, size_t len)
 {
 
        int     i = 0;
@@ -149,7 +149,8 @@ int gmnal_cb_send_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
        struct  iovec   *iovec = NULL, *iovec_dup = NULL;
        ptl_kiov_t      *kiov_dup = kiov;
 
-       CDEBUG(D_TRACE, "gmnal_cb_send_pages nid ["LPU64"] niov[%d] len["LPSZ"]\n", nid, kniov, len);
+       CDEBUG(D_TRACE, "gmnal_cb_send_pages nid ["LPU64"] niov[%d] offset["LPSZ"] len["LPSZ"]\n", 
+               nid, kniov, offset, len);
        nal_data = libnal->libnal_data;
        PORTAL_ALLOC(iovec, kniov*sizeof(struct iovec));
         iovec_dup = iovec;
@@ -170,7 +171,7 @@ int gmnal_cb_send_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
                         kiov++;
                }
                gmnal_small_tx(libnal, private, cookie, hdr, type, nid, 
-                               pid, kniov, iovec_dup, len);
+                               pid, kniov, iovec_dup, offset, len);
        } else {
                CDEBUG(D_ERROR, "Large message send it is not supported yet\n");
                return(PTL_FAIL);
@@ -187,7 +188,7 @@ int gmnal_cb_send_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
                         kiov++;
                }
                gmnal_large_tx(libnal, private, cookie, hdr, type, nid, 
-                               pid, kniov, iovec, len);
+                               pid, kniov, iovec, offset, len);
        }
        for (i=0; i<kniov; i++) {
                kunmap(kiov_dup->kiov_page);