Annotation of nono/lib/mybswap.h, revision 1.1.1.1

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2022 nono project
                      4: // Licensed under nono-license.txt
                      5: //
                      6: 
                      7: //
                      8: // bswap マクロの OS ごとに違う部分を吸収する
                      9: //
                     10: 
                     11: // bswapNN() 系は
                     12: // - NetBSD, FreeBSD では <sys/endian.h> に bswapNN()。
                     13: // - OpenBSD では <sys/endian.h> に swapNN() (bがない)。
                     14: // - Linux では <byteswap.h> に bswap_NN() (アンダースコアがある)。
                     15: // - OSX では <libkern/OSByteOrder.h> の OSSwap{Const,}IntNN()。
                     16: 
                     17: #pragma once
                     18: 
                     19: #include "config-nono.h"
                     20: 
                     21: #if defined(HAVE_BYTESWAP_H)
                     22: #include <byteswap.h>          // bswap_NN() on Linux
                     23: #endif
                     24: #if defined(HAVE_SYS_ENDIAN_H)
                     25: #include <sys/endian.h>                // bswapNN/swapNN on *BSD
                     26: #endif
                     27: 
                     28: // __builtin_bswap* がないような環境があったらその時考える
                     29: 
                     30: #if defined(HAVE_BSWAP16)
                     31: #elif defined(HAVE_BSWAP_16)
                     32: # define bswap16(x)    bswap_16(x)
                     33: #elif defined(HAVE_SWAP16)
                     34: # define bswap16(x)    swap16(x)
                     35: #elif defined(HAVE___BUILTIN_BSWAP16)
                     36: # define bswap16(x)    __builtin_bswap16(x)
                     37: #else
                     38: #error No bswap16 found
                     39: #endif
                     40: 
                     41: #if defined(HAVE_BSWAP32)
                     42: #elif defined(HAVE_BSWAP_32)
                     43: # define bswap32(x)    bswap_32(x)
                     44: #elif defined(HAVE_SWAP32)
                     45: # define bswap32(x)    swap32(x)
                     46: #elif defined(HAVE___BUILTIN_BSWAP32)
                     47: # define bswap32(x)    __builtin_bswap32(x)
                     48: #else
                     49: #error No bswap32 found
                     50: #endif
                     51: 
                     52: #if defined(HAVE_BSWAP64)
                     53: #elif defined(HAVE_BSWAP_64)
                     54: # define bswap64(x)    bswap_64(x)
                     55: #elif defined(HAVE_SWAP64)
                     56: # define bswap64(x)    swap64(x)
                     57: #elif defined(HAVE___BUILTIN_BSWAP64)
                     58: # define bswap64(x)    __builtin_bswap64(x)
                     59: #else
                     60: #error No bswap64 found
                     61: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.