*.bin\r
*.rej\r
*.orig\r
+obj
\ No newline at end of file
*/\r
\r
#include <arpa/inet.h>\r
+#include <stdlib.h>\r
+#include <stdio.h>\r
\r
static int inet_pton4(const char *src, struct in_addr *addr)\r
{\r
{\r
switch (af) {\r
case AF_INET:\r
- return inet_pton4(src, dst);\r
+ return inet_pton4(src, (struct in_addr *) dst);\r
case AF_INET6:\r
- return inet_pton6(src, dst);\r
+ return inet_pton6(src, (struct in6_addr *) dst);\r
default:\r
return -1;\r
}\r
}\r
+\r
+static const char *inet_ntop4(const void *src, char *dst, socklen_t cnt)\r
+{\r
+ struct sockaddr_in in;\r
+\r
+ in.sin_family = AF_INET;\r
+ memcpy(&in.sin_addr, src, 4);\r
+ if (getnameinfo((struct sockaddr *) &in,\r
+ (socklen_t) sizeof(struct sockaddr_in),\r
+ dst, cnt, NULL, 0, NI_NUMERICHOST))\r
+ return NULL;\r
+\r
+ return dst;\r
+}\r
+\r
+static const char *inet_ntop6(const void *src, char *dst, socklen_t cnt)\r
+{\r
+ struct sockaddr_in6 in6;\r
+ char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"];\r
+ int i, n = 0;\r
+\r
+ memset(&in6, 0, sizeof in6);\r
+ in6.sin6_family = AF_INET6;\r
+ memcpy(&in6.sin6_addr, src, sizeof(struct in_addr6));\r
+\r
+ /*\r
+ * If no ipv6 support return simple IPv6 format rule:\r
+ * A series of "0's in a 16bit block can be represented by "0" \r
+ */\r
+ if (getnameinfo((struct sockaddr *) &in6, (socklen_t) (sizeof in6),\r
+ dst, cnt, NULL, 0, NI_NUMERICHOST)) \r
+ {\r
+ \r
+ if (cnt < sizeof(tmp))\r
+ return NULL;\r
+\r
+ for (i = 0; i < 8; i++) \r
+ n += sprintf(tmp+n, "%s%x", i ? ":" : "",\r
+ ntohs(((unsigned short*) src)[i]));\r
+ tmp[n] = '\0';\r
+ strcpy(dst, tmp);\r
+ }\r
+ return dst;\r
+}\r
+\r
+const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt)\r
+{\r
+ switch (af) {\r
+ case AF_INET:\r
+ return inet_ntop4(src, dst, cnt);\r
+ case AF_INET6:\r
+ return inet_ntop6(src, dst, cnt);\r
+ default:\r
+ return NULL;\r
+ }\r
+}\r
#define IB_PORT_LINK_SPEED_ENABLED_MASK 0x0F\r
#define IB_PORT_PHYS_STATE_MASK 0xF0\r
#define IB_PORT_PHYS_STATE_SHIFT 4\r
+#define IB_PORT_PHYS_STATE_NO_CHANGE 0\r
+#define IB_PORT_PHYS_STATE_SLEEP 1\r
+#define IB_PORT_PHYS_STATE_POLLING 2\r
+#define IB_PORT_PHYS_STATE_DISABLED 3\r
+#define IB_PORT_PHYS_STATE_PORTCONFTRAIN 4\r
+#define IB_PORT_PHYS_STATE_LINKUP 5\r
+#define IB_PORT_PHYS_STATE_LINKERRRECOVER 6\r
+#define IB_PORT_PHYS_STATE_PHYTEST 7\r
#define IB_PORT_LNKDWNDFTSTATE_MASK 0x0F\r
\r
#define IB_PORT_CAP_RESV0 (CL_NTOH32(0x00000001))\r
{\r
INTERFACE InterfaceHeader;\r
ci_interface_t Verbs;\r
- void * p_hca_obj;\r
\r
} RDMA_INTERFACE_VERBS;\r
\r
\r
#include <ws2tcpip.h>\r
\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
#if WINVER < 0x600\r
int inet_pton(int af, const char *src, void *dst);\r
+const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt);\r
+#endif\r
+\r
+#ifdef __cplusplus\r
+}\r
#endif\r
\r
#endif /* _INET_H_ */\r
#include <string.h>\r
#include <windows.h>\r
#include <winsock2.h>\r
-#include <ws2tcpip.h> \r
+#include <ws2tcpip.h>\r
\r
typedef unsigned __int8 uint8_t;\r
typedef unsigned __int16 uint16_t;\r
\r
#define MAD_EXPORT __declspec(dllexport)\r
\r
-#define __attribute__(X)\r
+#define DEPRECATED\r
\r
#if !defined( __cplusplus )\r
#define inline __inline\r
#define random rand\r
#define srandom srand\r
\r
-static __inline\r
-const char * _inet_ntop(int family, const void *addr, char *dst, size_t len)\r
-{\r
- if (family == AF_INET)\r
- {\r
- struct sockaddr_in in;\r
- in.sin_family = AF_INET;\r
- memcpy(&in.sin_addr, addr, 4);\r
- if (getnameinfo((struct sockaddr *)&in,\r
- (socklen_t) (sizeof(struct sockaddr_in)),\r
- dst, len, NULL, 0, NI_NUMERICHOST))\r
- return NULL;\r
- }\r
- else if (family == AF_INET6)\r
- {\r
- struct sockaddr_in6 in6;\r
- memset(&in6, 0, sizeof in6);\r
- in6.sin6_family = AF_INET6;\r
- memcpy(&in6.sin6_addr, addr, sizeof(struct in_addr6));\r
-\r
- /* if no ipv6 support return simple IPv6 format rule:\r
- * A series of "0's in a 16bit block can be represented by "0" \r
- */\r
- if (getnameinfo((struct sockaddr *)&in6, (socklen_t) (sizeof in6),\r
- dst, len, NULL, 0, NI_NUMERICHOST)) \r
- {\r
- char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"];\r
- int i, n=0;\r
- \r
- if (len < sizeof(tmp))\r
- return NULL;\r
-\r
- for (i = 0; i < 8; i++) \r
- n += sprintf(tmp+n, "%s%x", \r
- i?":":"",\r
- ntohs(((unsigned short*)addr)[i]));\r
- tmp[n]='\0';\r
- strcpy(dst, tmp);\r
- }\r
- }\r
- return dst;\r
-}\r
-#define inet_ntop _inet_ntop\r
-\r
#endif /* _MAD_OSD_H_ */\r
DLLDEF = $(OBJ_PATH)\$O\ibmad_exports.def\r
\r
DLLENTRY = DllMain\r
-USE_MSVCRT=1\r
+USE_MSVCRT = 1\r
\r
SOURCES = \\r
ibmad_main.cpp \\r
vendor.c\r
\r
INCLUDES = ..\include\infiniband;\\r
- ..\..\libibmad\include;\\r
+ ..\include;\\r
..\..\libibverbs\include;\\r
..\..\libibumad\include;\\r
- ..\..\..\inc;..\..\..\inc\user;\r
+ ..\..\..\inc;\\r
+ ..\..\..\inc\user;\\r
+ ..\..\..\inc\user\linux;\r
\r
USER_C_FLAGS = $(USER_C_FLAGS) -DEXPORT_IBMAD_SYMBOLS\r
\r
\r
#include <windows.h>\r
\r
+#if WINVER < 0x600\r
+#include "..\..\..\..\etc\user\inet.c"\r
+#endif\r
+\r
BOOLEAN WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)\r
{\r
UNREFERENCED_PARAMETER(hInstance);\r
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <arpa/inet.h>
#include <infiniband/mad.h>
struct _ntc_144 {\r
ib_net16_t pad1;\r
ib_net16_t lid; // lid where capability mask changed\r
- uint8_t pad2;\r
- uint8_t local_changes;\r
+ ib_net16_t pad2;\r
ib_net32_t new_cap_mask; // new capability mask\r
- ib_net16_t change_flgs;\r
} PACK_SUFFIX ntc_144;\r
\r
struct _ntc_145 {\r
} PACK_SUFFIX ib_mad_notice_attr_t;\r
#include <complib/cl_packoff.h>\r
\r
-/**\r
- * Trap 259 masks\r
- */\r
-#define TRAP_259_MASK_SL (CL_HTON32(0xF0000000))\r
-#define TRAP_259_MASK_QP (CL_HTON32(0x00FFFFFF))\r
-\r
-/**\r
- * Trap 144 masks\r
- */\r
-#define TRAP_144_MASK_OTHER_LOCAL_CHANGES 0x01\r
-#define TRAP_144_MASK_SM_PRIORITY_CHANGE (CL_HTON16(0x0008))\r
-#define TRAP_144_MASK_LINK_SPEED_ENABLE_CHANGE (CL_HTON16(0x0004))\r
-#define TRAP_144_MASK_LINK_WIDTH_ENABLE_CHANGE (CL_HTON16(0x0002))\r
-#define TRAP_144_MASK_NODE_DESCRIPTION_CHANGE (CL_HTON16(0x0001))\r
-\r
/****f* IBA Base: Types/ib_notice_is_generic\r
* NAME\r
* ib_notice_is_generic\r