ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
platform/network.h
Go to the documentation of this file.
1#pragma once
2
16#include <stdint.h>
17
18#ifdef _WIN32
19#include <winsock2.h>
20#include <ws2tcpip.h>
21#else
22#include <netinet/in.h>
23#include <arpa/inet.h>
24#include <netdb.h>
25#endif
26
33#ifndef htonll
34#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
35#define htonll(x) (x)
36#define ntohll(x) (x)
37#elif defined(__GNUC__) || defined(__clang__)
38#define htonll(x) __builtin_bswap64(x)
39#define ntohll(x) __builtin_bswap64(x)
40#else
41static inline uint64_t htonll(uint64_t val) {
42 return ((val & 0x00000000000000FFULL) << 56) |
43 ((val & 0x000000000000FF00ULL) << 40) |
44 ((val & 0x0000000000FF0000ULL) << 24) |
45 ((val & 0x00000000FF000000ULL) << 8) |
46 ((val & 0x000000FF00000000ULL) >> 8) |
47 ((val & 0x0000FF0000000000ULL) >> 24) |
48 ((val & 0x00FF000000000000ULL) >> 40) |
49 ((val & 0xFF00000000000000ULL) >> 56);
50}
51#define ntohll(x) htonll(x)
52#endif
53#endif
54
unsigned long long uint64_t
Definition common.h:59