uKernel/include/stdint.h

90 lines
1.7 KiB
C

/* $Id$ */
/* Copyright (c) 2018 Pierre Pronchery <khorben@defora.org> */
/* This file is part of DeforaOS uKernel */
#ifndef UKERNEL_STDINT_H
# define UKERNEL_STDINT_H
/* types */
# ifdef __INT8_TYPE__
typedef __INT8_TYPE__ int8_t;
# else
typedef char int8_t;
# endif
# ifdef __INT16_TYPE__
typedef __INT16_TYPE__ int16_t;
# else
typedef short int int16_t;
# endif
# ifdef __INT32_TYPE__
typedef __INT32_TYPE__ int32_t;
# else
typedef int int32_t;
# endif
# ifdef __INT64_TYPE__
typedef __INT64_TYPE__ int64_t;
# else
typedef long long int64_t;
# endif
# ifdef __UINT8_TYPE__
typedef __UINT8_TYPE__ uint8_t;
# else
typedef unsigned char uint8_t;
# endif
# ifdef __UINT16_TYPE__
typedef __UINT16_TYPE__ uint16_t;
# else
typedef unsigned short uint16_t;
# endif
# ifdef __UINT32_TYPE__
typedef __UINT32_TYPE__ uint32_t;
# else
typedef unsigned int uint32_t;
# endif
# ifdef __UINT64_TYPE__
typedef __UINT64_TYPE__ uint64_t;
# else
typedef unsigned long long uint64_t;
# endif
# ifndef uintptr_t
# define uintptr_t uintptr_t
typedef unsigned long uintptr_t;
# endif
typedef unsigned long size_t;
/* constants */
# define INT8_MAX 0x7f
# define INT16_MAX 0x7fff
# define INT32_MAX 0x7fffffff
# define INT64_MAX 0x7fffffffffffffff
# define INT8_MIN (-INT8_MAX - 1)
# define INT16_MIN (-INT16_MAX - 1)
# define INT32_MIN (-INT32_MAX - 1)
# define INT64_MIN (-INT64_MAX - 1)
# define UINT8_MAX 0xff
# define UINT16_MAX 0xffff
# define UINT32_MAX 0xffffffff
# define UINT64_MAX 0xffffffffffffffff
# ifndef ULONG_MAX
# ifdef _LP64 /* FIXME probably sometimes wrong */
# define ULONG_MAX 0xffffffffffffffff
# else
# define ULONG_MAX 0xffffffff
# endif
# endif
# ifndef SIZE_MAX
# define SIZE_MAX ULONG_MAX
# endif
#endif /* !UKERNEL_STDINT_H */