TARGETPATH=$(TRUNK)\bin\kernel\obj$(BUILD_ALT_DIR)\r
TARGETTYPE=DRIVER\r
\r
+!if $(FREEBUILD)\r
+ENABLE_EVENT_TRACING=1\r
+!else\r
#ENABLE_EVENT_TRACING=1\r
+!endif\r
\r
SOURCES= \\r
mthca_log.mc \\r
$(DDK_LIB_PATH)\wdmguid.lib\r
\r
\r
+#LINKER_FLAGS=/MAP /MAPINFO:LINES\r
\r
!IFDEF ENABLE_EVENT_TRACING\r
\r
C_DEFINES = $(C_DEFINES) -DEVENT_TRACING\r
\r
-RUN_WPP= -ext:.c.h $(SOURCES) -km \\r
+RUN_WPP= $(SOURCES) -km -ext: .c .h .C .H \\r
-scan:hca_debug.h \\r
-func:HCA_PRINT(LEVEL,FLAGS,(MSG,...)) \\r
-func:HCA_PRINT_EV(LEVEL,FLAGS,(MSG,...)) \\r
-func:HCA_PRINT_EXIT(LEVEL,FLAGS,(MSG,...)) \r
!ENDIF\r
\r
-\r
+MSC_OPTIMIZATION=/Oi\r
MSC_WARNING_LEVEL= /W4\r
#ifndef MT_ATOMIC_H
#define MT_ATOMIC_H
-// atomic
-typedef LONG atomic_t;
+#include "cl_atomic.h"
-static inline void atomic_inc(atomic_t *pval)
-{
- InterlockedIncrement(pval);
-}
+typedef atomic32_t atomic_t;
-static inline void atomic_dec(atomic_t *pval)
-{
- InterlockedDecrement(pval);
-}
+#define atomic_inc cl_atomic_inc
+#define atomic_dec cl_atomic_dec
-static inline atomic_t atomic_read(atomic_t *pval)
+static inline atomic_t atomic_read(atomic_t *pval)
{
- return (atomic_t)InterlockedOr (pval,0);
+ return *pval;
}
static inline void atomic_set(atomic_t *pval, long val)
{
- InterlockedExchange(pval, val);
+ *pval = (atomic_t)val;
}
/**
static inline int
atomic_inc_and_test(atomic_t *pval)
{
- LONG val = InterlockedIncrement(pval);
- return (val == 0);
+ return cl_atomic_inc(pval) == 0;
}
/**
static inline int
atomic_dec_and_test(atomic_t *pval)
{
- LONG val = InterlockedDecrement(pval);
- return (val == 0);
+ return cl_atomic_dec(pval) == 0;
}
-
#endif
#include "ib_verbs.h"
+#if defined(EVENT_TRACING)
+#ifdef offsetof
+#undef offsetof
+#endif
+#include "mt_uverbsmem.tmh"
+#endif
+
void ibv_umem_release(struct ib_device *dev, struct ib_umem *umem)
{
struct ib_umem_chunk *chunk, *tmp;
list_add_tail(&chunk->list, &mem->chunk_list);
/* fill the chunk */
- for (i=0; i < IB_UMEM_MAX_PAGE_CHUNK; i++) {
+ for (i=0; i < (int)IB_UMEM_MAX_PAGE_CHUNK; i++) {
/* map a one page */
ret = get_user_pages((struct mthca_dev *)dev, cur_base,
USE_MSVCRT=1\r
DLLENTRY=DllMain\r
\r
+!if $(FREEBUILD)\r
+ENABLE_EVENT_TRACING=1\r
+!else\r
#ENABLE_EVENT_TRACING=1\r
+!endif\r
\r
SOURCES= \\r
mlnx_uvp.rc \\r
$(TRUNK)\inc\user\complib; \\r
$(TRUNK)\inc; \\r
\r
-USER_C_FLAGS=$(USER_C_FLAGS) /DCL_NO_TRACK_MEM\r
+USER_C_FLAGS=$(USER_C_FLAGS) /DCL_NO_TRACK_MEM \r
\r
TARGETLIBS=\\r
$(SDK_LIB_PATH)\user32.lib \\r
$(TARGETPATH)\*\ibald.lib\r
!endif\r
\r
+#LINKER_FLAGS=/MAP /MAPINFO:LINES\r
\r
!IFDEF ENABLE_EVENT_TRACING\r
\r
C_DEFINES = $(C_DEFINES) -DEVENT_TRACING\r
\r
-RUN_WPP= -ext:.c.h $(SOURCES) \\r
+RUN_WPP= $(SOURCES) -ext:.c.h \\r
-scan:mlnx_uvp_debug.h \\r
- -func:UVP_PRINT(LEVEL,FLAGS,(MSG,...)) \r
+ -func:UVP_PRINT(LEVEL,FLAGS,(MSG,...)) \\r
+ -func:UVP_PRINT_EXIT(LEVEL,FLAGS,(MSG,...)) \r
!ENDIF\r
\r
MSC_WARNING_LEVEL= /W3\r
*/
#include <mt_l2w.h>
-
#include <opcode.h>
-
#include "mlnx_uvp.h"
-#include "mlnx_uvp_debug.h"
+#include "mlnx_uvp_doorbell.h"
+
#if defined(EVENT_TRACING)
#include "mlnx_uvp_cq.tmh"
#endif
-#include "mlnx_uvp_doorbell.h"
enum {
MTHCA_CQ_DOORBELL = 0x20
// end_wpp\r
\r
\r
-\r
#else\r
\r
#include <wmistr.h>\r
#if DBG\r
\r
#define UVP_PRINT(_level_,_flags_,_msg_) \\r
- if (_level_ <= g_mlnx_dbg_level && \\r
- ((_flags_ & g_mlnx_dbg_flags) == _flags_)){\\r
+ if ((_level_) <= g_mlnx_dbg_level && (_flags_) & g_mlnx_dbg_flags) {\\r
_UVP_PRINT("[UVP] %s():",__FUNCTION__);\\r
- if(_level_ == TRACE_LEVEL_ERROR) _UVP_PRINT ("***ERROR*** ");\\r
+ if((_level_) == TRACE_LEVEL_ERROR) _UVP_PRINT ("***ERROR*** ");\\r
_UVP_PRINT _msg_ ; \\r
}\r
\r
prev_wqe = qp->sq.last;
qp->sq.last = wqe;
opcode = conv_ibal_wr_opcode(wr);
+ if (opcode == MTHCA_OPCODE_INVALID) {
+ UVP_PRINT(TRACE_LEVEL_ERROR ,UVP_DBG_QP ,("SQ %06x opcode invalid\n",ibqp->qp_num));
+ ret = -EINVAL;
+ *bad_wr = wr;
+ goto out;
+ }
+
((struct mthca_next_seg *) wqe)->nda_op = 0;
((struct mthca_next_seg *) wqe)->ee_nds = 0;
qp->wrid[ind + qp->rq.max] = wr->wr_id;
- if (opcode == MTHCA_OPCODE_INVALID) {
- UVP_PRINT(TRACE_LEVEL_ERROR ,UVP_DBG_QP ,("SQ %06x opcode invalid\n",ibqp->qp_num));
- ret = -EINVAL;
- *bad_wr = wr;
- goto out;
- }
-
((struct mthca_next_seg *) prev_wqe)->nda_op =
cl_hton32(((ind << qp->sq.wqe_shift) +
qp->send_wqe_offset) |opcode);
#include "mlnx_uvp.h"
#include "mx_abi.h"
+#if defined(EVENT_TRACING)
+#include "mlnx_uvp_verbs.tmh"
+#endif
+
struct ibv_pd *mthca_alloc_pd(struct ibv_context *context, struct ibv_alloc_pd_resp *resp)
{
struct mthca_pd *pd;