-#if KQSW_CHECKSUM
-static inline kqsw_csum_t kqsw_csum (kqsw_csum_t sum, void *base, int nob)
-{
- unsigned char *ptr = (unsigned char *)base;
-
- while (nob-- > 0)
- sum += *ptr++;
-
- return (sum);
-}
-#endif
-
-static inline void kqswnal_rx_done (kqswnal_rx_t *krx)
-{
- LASSERT (atomic_read (&krx->krx_refcount) > 0);
- if (atomic_dec_and_test (&krx->krx_refcount))
- kqswnal_requeue_rx(krx);
-}
-
-#if MULTIRAIL_EKC
-
-#ifndef EP_RAILMASK_ALL
-# error "old (unsupported) version of EKC headers"
-#endif
-
-static inline int
-ep_nmd_merge (EP_NMD *merged, EP_NMD *a, EP_NMD *b)
-{
- if (EP_NMD_NODEID(a) != EP_NMD_NODEID(b)) /* not generated on the same node */
- return 0;
-
- if ((EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)) == 0) /* no common rails */
- return 0;
-
- if (b->nmd_addr == (a->nmd_addr + a->nmd_len)) {
- if (merged != NULL) {
- merged->nmd_addr = a->nmd_addr;
- merged->nmd_len = a->nmd_len + b->nmd_len;
- merged->nmd_attr = EP_NMD_ATTR(EP_NMD_NODEID(a), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b));
- }
- return 1;
- }
-
- if (a->nmd_addr == (b->nmd_addr + b->nmd_len)) {
- if (merged != NULL) {
- merged->nmd_addr = b->nmd_addr;
- merged->nmd_len = b->nmd_len + a->nmd_len;
- merged->nmd_attr = EP_NMD_ATTR(EP_NMD_NODEID(b), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b));
- }
- return 1;
- }
-
- return 0;
-}
-#else
-/* multirail defines these in <elan/epcomms.h> */
-#define EP_MSG_SVC_PORTALS_SMALL (0x10) /* Portals over elan port number (large payloads) */
-#define EP_MSG_SVC_PORTALS_LARGE (0x11) /* Portals over elan port number (small payloads) */
-/* NB small/large message sizes are GLOBAL constants */
-
-/* A minimal attempt to minimise inline #ifdeffing */
-
-#define EP_SUCCESS ESUCCESS
-#define EP_ENOMEM ENOMEM
-
-static inline EP_XMTR *
-ep_alloc_xmtr(EP_DEV *e)
-{
- return (ep_alloc_large_xmtr(e));
-}
-
-static inline EP_RCVR *
-ep_alloc_rcvr(EP_DEV *e, int svc, int nenv)
-{
- return (ep_install_large_rcvr(e, svc, nenv));
-}
-
-static inline void
-ep_free_xmtr(EP_XMTR *x)