Annotation of nono/lib/mybswap.h, revision 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.