winmad: add missing mad_osd.h
authorshefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 15 Jan 2009 18:25:44 +0000 (18:25 +0000)
committershefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 15 Jan 2009 18:25:44 +0000 (18:25 +0000)
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@1834 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

ulp/libibmad/include/infiniband/mad_osd.h [new file with mode: 0644]

diff --git a/ulp/libibmad/include/infiniband/mad_osd.h b/ulp/libibmad/include/infiniband/mad_osd.h
new file mode 100644 (file)
index 0000000..7c1e1c7
--- /dev/null
@@ -0,0 +1,104 @@
+/*\r
+ * Copyright (c) 2009 Intel Corporation. All rights reserved.\r
+ *\r
+ * This software is available to you under the OpenIB.org BSD license\r
+ * below:\r
+ *\r
+ *     Redistribution and use in source and binary forms, with or\r
+ *     without modification, are permitted provided that the following\r
+ *     conditions are met:\r
+ *\r
+ *      - Redistributions of source code must retain the above\r
+ *        copyright notice, this list of conditions and the following\r
+ *        disclaimer.\r
+ *\r
+ *      - Redistributions in binary form must reproduce the above\r
+ *        copyright notice, this list of conditions and the following\r
+ *        disclaimer in the documentation and/or other materials\r
+ *        provided with the distribution.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AWV\r
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ */
+#ifndef _MAD_OSD_H_
+#define _MAD_OSD_H_
+
+#include <windows.h>\r
+#include <winsock2.h>\r
+#include <ws2tcpip.h> \r
+\r
+typedef unsigned __int8                uint8_t;\r
+typedef unsigned __int16       uint16_t;\r
+typedef unsigned __int32       uint32_t;\r
+typedef unsigned __int64       uint64_t;\r
+\r
+#define PRId64 "I64d"\r
+#define PRIx64 "I64x"\r
+#define PRIo64 "I64o"\r
+#define PRIu64 "I64u"\r
+\r
+#define MAD_EXPORT     __declspec(dllexport)\r
+\r
+#if !defined( __cplusplus )\r
+#define inline __inline\r
+#endif\r
+\r
+#define bswap_64       _byteswap_uint64\r
+#define getpid()       GetCurrentProcessId()
+#define snprintf       _snprintf
+#define strtoull       _strtoui64\r
+#define __func__       __FUNCTION__
+#define random         rand
+#define srandom                srand
+
+static __inline
+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
+
+#endif /* _MAD_OSD_H_ */