Wed Sep 19 08:42:52 2012 UTC ()
Define ISCSI_HTONLL6 and ISCSI_NTOHLL6 (6 byte network byte order accessor
macros) dependend on host endianess.
Spotted by mhitch, unfortunately not enough to fix iscsi-target problems
on sparc64.


(martin)
diff -r1.4 -r1.5 src/external/bsd/iscsi/dist/include/iscsiutil.h

cvs diff -r1.4 -r1.5 src/external/bsd/iscsi/dist/include/iscsiutil.h (expand / switch to unified diff)

--- src/external/bsd/iscsi/dist/include/iscsiutil.h 2012/03/15 04:06:54 1.4
+++ src/external/bsd/iscsi/dist/include/iscsiutil.h 2012/09/19 08:42:52 1.5
@@ -68,45 +68,62 @@ @@ -68,45 +68,62 @@
68 68
69#ifdef HAVE_SYS_SOCKET_H 69#ifdef HAVE_SYS_SOCKET_H
70#include <sys/socket.h> 70#include <sys/socket.h>
71#endif 71#endif
72 72
73#ifdef HAVE_FCNTL_H 73#ifdef HAVE_FCNTL_H
74#include <fcntl.h> 74#include <fcntl.h>
75#endif 75#endif
76 76
77#ifdef HAVE_SYSLOG_H 77#ifdef HAVE_SYSLOG_H
78#include <syslog.h> 78#include <syslog.h>
79#endif 79#endif
80 80
 81#ifdef HAVE_SYS_BYTEORDER_H
 82# include <sys/byteorder.h>
 83# if defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)
 84# undef _BIG_ENDIAN
 85# define _BIG_ENDIAN 4321
 86# define _BYTE_ORDER _BIG_ENDIAN
 87# elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)
 88# undef _LITTLE_ENDIAN
 89# define _LITTLE_ENDIAN 1234
 90# define _BYTE_ORDER _LITTLE_ENDIAN
 91# endif
 92#endif
 93
81/* 94/*
82 * 95 *
83 */ 96 */
84 97#if _BYTE_ORDER == 1234
85#define ISCSI_HTONLL6(x) (uint64_t) \ 98#define ISCSI_HTONLL6(x) (uint64_t) \
86 ( ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x0000ff0000000000uLL) >> 40)) \ 99 ( ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x0000ff0000000000uLL) >> 40)) \
87 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x000000ff00000000uLL) >> 24)) \ 100 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x000000ff00000000uLL) >> 24)) \
88 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x00000000ff000000uLL) >> 8)) \ 101 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x00000000ff000000uLL) >> 8)) \
89 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x0000000000ff0000uLL) << 8)) \ 102 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x0000000000ff0000uLL) << 8)) \
90 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x000000000000ff00uLL) << 24)) \ 103 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x000000000000ff00uLL) << 24)) \
91 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x00000000000000ffuLL) << 40))) 104 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x00000000000000ffuLL) << 40)))
92 105
93#define ISCSI_NTOHLL6(x) (uint64_t) \ 106#define ISCSI_NTOHLL6(x) (uint64_t) \
94 ( ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x0000ff0000000000uLL) >> 40)) \ 107 ( ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x0000ff0000000000uLL) >> 40)) \
95 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x000000ff00000000uLL) >> 24)) \ 108 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x000000ff00000000uLL) >> 24)) \
96 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x00000000ff000000uLL) >> 8)) \ 109 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x00000000ff000000uLL) >> 8)) \
97 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x0000000000ff0000uLL) << 8)) \ 110 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x0000000000ff0000uLL) << 8)) \
98 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x000000000000ff00uLL) << 24)) \ 111 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x000000000000ff00uLL) << 24)) \
99 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x00000000000000ffuLL) << 40))) 112 | ((uint64_t)( ((uint64_t)(x) & (uint64_t)0x00000000000000ffuLL) << 40)))
 113#else
 114#define ISCSI_HTONLL6(x) ((uint64_t)(x)&0x0000ffffffffffffuLL)
 115#define ISCSI_NTOHLL6(x) ((uint64_t)(x)&0x0000ffffffffffffuLL)
 116#endif
100 117
101/* 118/*
102 * Debugging Levels 119 * Debugging Levels
103 */ 120 */
104 121
105#define TRACE_NET_DEBUG 0x00000001 122#define TRACE_NET_DEBUG 0x00000001
106#define TRACE_NET_BUFF 0x00000002 123#define TRACE_NET_BUFF 0x00000002
107#define TRACE_NET_IOV 0x00000004 124#define TRACE_NET_IOV 0x00000004
108#define TRACE_NET_ALL (TRACE_NET_DEBUG|TRACE_NET_BUFF|TRACE_NET_IOV) 125#define TRACE_NET_ALL (TRACE_NET_DEBUG|TRACE_NET_BUFF|TRACE_NET_IOV)
109 126
110#define TRACE_ISCSI_DEBUG 0x00000010 127#define TRACE_ISCSI_DEBUG 0x00000010
111#define TRACE_ISCSI_CMD 0x00000020 128#define TRACE_ISCSI_CMD 0x00000020
112#define TRACE_ISCSI_ARGS 0x00000040 129#define TRACE_ISCSI_ARGS 0x00000040