/* SPDX-License-Identifier: GPL-2.0-or-later * Copyright 2001-2002 NaN Holding BV. All rights reserved. */ /** \file * \ingroup bli * * A platform-independent definition of [u]intXX_t * Plus the accompanying header include for htonl/ntohl * * This file includes to define [u]intXX_t types, where * XX can be 8, 16, 32 or 64. Unfortunately, not all systems have this * file. * - Windows uses __intXX compiler-builtin types. These are signed, * so we have to flip the signs. * For these rogue platforms, we make the typedefs ourselves. */ #pragma once #ifdef __cplusplus extern "C" { #endif #if defined(__linux__) || defined(__GNU__) || defined(__NetBSD__) || defined(__OpenBSD__) || \ defined(__FreeBSD_kernel__) || defined(__HAIKU__) /* Linux-i386, Linux-Alpha, Linux-PPC */ # include /* XXX */ # ifndef UINT64_MAX # define UINT64_MAX 18446744073709551615 typedef uint8_t u_int8_t; typedef uint16_t u_int16_t; typedef uint32_t u_int32_t; typedef uint64_t u_int64_t; # endif #elif defined(__APPLE__) # include /* MSVC >= 2010 */ #elif defined(_MSC_VER) # include #else /* FreeBSD, Solaris */ # include # include #endif /* ifdef platform for types */ #include #include /* size_t define */ #ifndef __cplusplus /* The standard header is missing on some systems. */ # if defined(__APPLE__) || defined(__NetBSD__) typedef unsigned int char32_t; # else # include # endif #endif typedef unsigned int uint; typedef unsigned short ushort; typedef unsigned long ulong; typedef unsigned char uchar; #ifdef __cplusplus } #endif