mirror of git://anongit.mindrot.org/openssh.git
htole64() etc for systems without endian.h
This commit is contained in:
parent
0c3927c45f
commit
ef7c26cd2f
|
@ -2008,7 +2008,6 @@ AC_CHECK_FUNCS([ \
|
||||||
strtoll \
|
strtoll \
|
||||||
strtoul \
|
strtoul \
|
||||||
strtoull \
|
strtoull \
|
||||||
swap32 \
|
|
||||||
sysconf \
|
sysconf \
|
||||||
tcgetpgrp \
|
tcgetpgrp \
|
||||||
timegm \
|
timegm \
|
||||||
|
|
26
defines.h
26
defines.h
|
@ -646,6 +646,32 @@ struct winsize {
|
||||||
# endif /* WORDS_BIGENDIAN */
|
# endif /* WORDS_BIGENDIAN */
|
||||||
#endif /* BYTE_ORDER */
|
#endif /* BYTE_ORDER */
|
||||||
|
|
||||||
|
#ifndef HAVE_ENDIAN_H
|
||||||
|
# define openssh_swap32(v) \
|
||||||
|
(uint32_t)(((uint32_t)(v) & 0xff) << 24 | \
|
||||||
|
((uint32_t)(v) & 0xff00) << 8 | \
|
||||||
|
((uint32_t)(v) & 0xff0000) >> 8 | \
|
||||||
|
((uint32_t)(v) & 0xff000000) >> 24)
|
||||||
|
# define openssh_swap64(v) \
|
||||||
|
(__uint64_t)((((__uint64_t)(v) & 0xff) << 56) | \
|
||||||
|
((__uint64_t)(v) & 0xff00ULL) << 40 | \
|
||||||
|
((__uint64_t)(v) & 0xff0000ULL) << 24 | \
|
||||||
|
((__uint64_t)(v) & 0xff000000ULL) << 8 | \
|
||||||
|
((__uint64_t)(v) & 0xff00000000ULL) >> 8 | \
|
||||||
|
((__uint64_t)(v) & 0xff0000000000ULL) >> 24 | \
|
||||||
|
((__uint64_t)(v) & 0xff000000000000ULL) >> 40 | \
|
||||||
|
((__uint64_t)(v) & 0xff00000000000000ULL) >> 56)
|
||||||
|
# ifdef WORDS_BIGENDIAN
|
||||||
|
# define le32toh(v) (openssh_swap32(v))
|
||||||
|
# define le64toh(v) (openssh_swap64(v))
|
||||||
|
# define htole64(v) (openssh_swap64(v))
|
||||||
|
# else
|
||||||
|
# define le32toh(v) ((uint32_t)v)
|
||||||
|
# define le64toh(v) ((uint64_t)v)
|
||||||
|
# define htole64(v) ((uint64_t)v)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Function replacement / compatibility hacks */
|
/* Function replacement / compatibility hacks */
|
||||||
|
|
||||||
#if !defined(HAVE_GETADDRINFO) && (defined(HAVE_OGETADDRINFO) || defined(HAVE_NGETADDRINFO))
|
#if !defined(HAVE_GETADDRINFO) && (defined(HAVE_OGETADDRINFO) || defined(HAVE_NGETADDRINFO))
|
||||||
|
|
Loading…
Reference in New Issue