#ifndef __BPF_ENDIAN__ | |
#define __BPF_ENDIAN__ | |
#include <asm/byteorder.h> | |
#if __BYTE_ORDER == __LITTLE_ENDIAN | |
# define __bpf_ntohs(x) __builtin_bswap16(x) | |
# define __bpf_htons(x) __builtin_bswap16(x) | |
#elif __BYTE_ORDER == __BIG_ENDIAN | |
# define __bpf_ntohs(x) (x) | |
# define __bpf_htons(x) (x) | |
#else | |
# error "Fix your __BYTE_ORDER?!" | |
#endif | |
#define bpf_htons(x) \ | |
(__builtin_constant_p(x) ? \ | |
__constant_htons(x) : __bpf_htons(x)) | |
#define bpf_ntohs(x) \ | |
(__builtin_constant_p(x) ? \ | |
__constant_ntohs(x) : __bpf_ntohs(x)) | |
#endif |