|
22 | 22 |
|
23 | 23 | #ifdef __APPLE__
|
24 | 24 | #include <libkern/OSByteOrder.h>
|
| 25 | +#elif __linux__ |
| 26 | +#include <endian.h> |
| 27 | +#define OSLittleEndian __LITTLE_ENDIAN |
| 28 | +#define OSBigEndian __BIG_ENDIAN |
| 29 | +#define OSSwapLittleToHostInt16 le16toh |
| 30 | +#define OSSwapBigToHostInt16 be16toh |
| 31 | +#define OSSwapHostToLittleInt16 htole16 |
| 32 | +#define OSSwapHostToBigInt16 htobe16 |
25 | 33 | #endif
|
26 | 34 |
|
27 | 35 | #if defined(__LITTLE_ENDIAN__)
|
|
30 | 38 | #elif defined(__BIG_ENDIAN__)
|
31 | 39 | #define DISPATCH_DATA_FORMAT_TYPE_UTF16_HOST DISPATCH_DATA_FORMAT_TYPE_UTF16BE
|
32 | 40 | #define DISPATCH_DATA_FORMAT_TYPE_UTF16_REV DISPATCH_DATA_FORMAT_TYPE_UTF16LE
|
| 41 | +#else |
| 42 | +#error Unsupported Endianness |
33 | 43 | #endif
|
34 | 44 |
|
35 | 45 | enum {
|
@@ -197,29 +207,19 @@ _dispatch_transform_detect_utf(dispatch_data_t data)
|
197 | 207 | static uint16_t
|
198 | 208 | _dispatch_transform_swap_to_host(uint16_t x, int32_t byteOrder)
|
199 | 209 | {
|
200 |
| -#ifdef __LINUX_PORT_HDD__ |
201 |
| - LINUX_PORT_ERROR(); |
202 |
| - return x; |
203 |
| -#else |
204 | 210 | if (byteOrder == OSLittleEndian) {
|
205 |
| - return OSSwapLittleToHostInt16(x); |
| 211 | + return OSSwapLittleToHostInt16(x); |
206 | 212 | }
|
207 | 213 | return OSSwapBigToHostInt16(x);
|
208 |
| -#endif |
209 | 214 | }
|
210 | 215 |
|
211 | 216 | static uint16_t
|
212 | 217 | _dispatch_transform_swap_from_host(uint16_t x, int32_t byteOrder)
|
213 | 218 | {
|
214 |
| -#ifdef __LINUX_PORT_HDD__ |
215 |
| - LINUX_PORT_ERROR(); |
216 |
| - return x; |
217 |
| -#else |
218 | 219 | if (byteOrder == OSLittleEndian) {
|
219 | 220 | return OSSwapHostToLittleInt16(x);
|
220 | 221 | }
|
221 | 222 | return OSSwapHostToBigInt16(x);
|
222 |
| -#endif |
223 | 223 | }
|
224 | 224 |
|
225 | 225 | #pragma mark -
|
@@ -531,45 +531,25 @@ _dispatch_transform_from_utf16(dispatch_data_t data, int32_t byteOrder)
|
531 | 531 | static dispatch_data_t
|
532 | 532 | _dispatch_transform_from_utf16le(dispatch_data_t data)
|
533 | 533 | {
|
534 |
| -#ifdef __LINUX_PORT_HDD__ |
535 |
| - LINUX_PORT_ERROR(); |
536 |
| - return NULL; |
537 |
| -#else |
538 | 534 | return _dispatch_transform_from_utf16(data, OSLittleEndian);
|
539 |
| -#endif |
540 | 535 | }
|
541 | 536 |
|
542 | 537 | static dispatch_data_t
|
543 | 538 | _dispatch_transform_from_utf16be(dispatch_data_t data)
|
544 | 539 | {
|
545 |
| -#ifdef __LINUX_PORT_HDD__ |
546 |
| - LINUX_PORT_ERROR(); |
547 |
| - return NULL; |
548 |
| -#else |
549 | 540 | return _dispatch_transform_from_utf16(data, OSBigEndian);
|
550 |
| -#endif |
551 | 541 | }
|
552 | 542 |
|
553 | 543 | static dispatch_data_t
|
554 | 544 | _dispatch_transform_to_utf16le(dispatch_data_t data)
|
555 | 545 | {
|
556 |
| -#ifdef __LINUX_PORT_HDD__ |
557 |
| - LINUX_PORT_ERROR(); |
558 |
| - return NULL; |
559 |
| -#else |
560 | 546 | return _dispatch_transform_to_utf16(data, OSLittleEndian);
|
561 |
| -#endif |
562 | 547 | }
|
563 | 548 |
|
564 | 549 | static dispatch_data_t
|
565 | 550 | _dispatch_transform_to_utf16be(dispatch_data_t data)
|
566 | 551 | {
|
567 |
| -#ifdef __LINUX_PORT_HDD__ |
568 |
| - LINUX_PORT_ERROR(); |
569 |
| - return NULL; |
570 |
| -#else |
571 | 552 | return _dispatch_transform_to_utf16(data, OSBigEndian);
|
572 |
| -#endif |
573 | 553 | }
|
574 | 554 |
|
575 | 555 | #pragma mark -
|
|
0 commit comments