add htonll and ntohll

This commit is contained in:
Ryo Nakamura
2024-02-12 00:54:28 +09:00
parent f152236844
commit 4e895bb72e
4 changed files with 45 additions and 1 deletions

View File

@@ -22,6 +22,7 @@
#error unsupported platform
#endif
#include <config.h>
#include <platform.h>
#include <strerrno.h>
#include <print.h>
@@ -163,3 +164,5 @@ int sem_release(sem_t *sem)
}
#endif

View File

@@ -4,6 +4,7 @@
#include <pthread.h>
#include <semaphore.h>
#include <stdint.h>
int nr_cpus(void);
int set_thread_affinity(pthread_t tid, int core);
@@ -20,4 +21,28 @@ int setutimes(const char *path, struct timespec atime, struct timespec mtime);
sem_t *sem_create(int value);
int sem_release(sem_t *sem);
#ifdef HAVE_HTONLL
#include <arpa/inet.h> /* Apple has htonll and ntohll in arpa/inet.h */
#endif
/* copied from libssh: libssh/include/libssh/priv.h*/
#ifndef HAVE_HTONLL
# ifdef WORDS_BIGENDIAN
# define htonll(x) (x)
# else
# define htonll(x) \
(((uint64_t)htonl((x) & 0xFFFFFFFF) << 32) | htonl((x) >> 32))
# endif
#endif
#ifndef HAVE_NTOHLL
# ifdef WORDS_BIGENDIAN
# define ntohll(x) (x)
# else
# define ntohll(x) \
(((uint64_t)ntohl((x) & 0xFFFFFFFF) << 32) | ntohl((x) >> 32))
# endif
#endif
#endif /* _PLATFORM_H_ */