/*
** EPITECH PROJECT, 2018
** task01
** File description:
** I do task
*/

#ifndef __MY_STDDEF_H__
# define __MY_STDDEF_H__

#ifndef __WORDSIZE
# if defined __x86_x64__ && !defined __ILP32__
#  define __WORDSIZE 64
# else
#  define __WORDSIZE 32
#  define __WORDSIZE32_SIZE_ULONG 0
#  define __WORDSIZE32_PTRDIFF_ULONG 0
# endif
#endif

#ifndef NULL
# define NULL (void*)0
#endif

#define MY_CHAR_BITS 8
#define MY_UCHAR_MIN 0
#define MY_UCHAR_MAX 0xff
#define MY_SCHAR_MIN (-0x7f - 1)
#define MY_SCHAR_MAX 0x7f

#define MY_SHORT_BITS 16
#define MY_USHORT_MIN 0
#define MY_USHORT_MAX 0xffff
#define MY_SHORT_MIN (-0x7fff - 1)
#define MY_SHORT_MAX 0x7fff

#define MY_INT_BITS 32
#define MY_UINT_MIN 0
#define MY_UINT_MAX 0xffffffff
#define MY_INT_MIN (-0x7fffffff - 1)
#define MY_INT_MAX 0x7fffffff

#if __WORDSIZE == 64
#define MY_LONG_BITS 64
#define MY_ULONG_MIN 0
#define MY_ULONG_MAX 0xffffffffffffffff
#define MY_LONG_MIN (-0x7fffffffffffffff - 1)
#define MY_LONG_MAX 0x7fffffffffffffff
#define MY_LLONG_BITS 64
#define MY_ULLONG_MIN 0
#define MY_ULLONG_MAX 0xffffffffffffffff
#define MY_LLONG_MIN (-0x7fffffffffffffff - 1)
#define MY_LLONG_MAX 0x7fffffffffffffff
#define MY_PTRDIFF_BITS 64
#define MY_PTRDIFF_MIN 0
#define MY_PRTDIFF_MAX 0xffffffffffffffff
#else
#define MY_LONG_BITS 32
#define MY_ULONG_MIN 0
#define MY_ULONG_MAX 0xffffffff
#define MY_LONG_MIN (-0x7fffffff - 1)
#define MY_LONG_MAX 0x7fffffff
#define MY_LLONG_BITS 32
#define MY_ULLONG_MIN 0
#define MY_ULLONG_MAX 0xffffffff
#define MY_LLONG_MIN (-0x7fffffff - 1)
#define MY_LLONG_MAX 0x7fffffff
#define MY_PTRDIFF_BITS 32
#define MY_PTRDIFF_MIN 0
#define MY_PTRDIFF_MAX 0xffffffff
#endif


#ifndef _BITS_STDINT_INTN_H
# define _BITS_STDINT_INTN_H
#include <bits/types.h>
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef signed short int16_t;
typedef unsigned short uint16_t;
typedef signed int int32_t;
typedef unsigned int uint32_t;
# if __WORDSIZE == 64
typedef signed long long int int64_t;
typedef unsigned long long int uint64_t;
# else
__extension__ typedef signed long long int int64_t;
__extension__ typedef unsigned long long int uint64_t;
# endif
#endif

#ifndef _STDINT_H
typedef signed long long int intmax_t;
typedef unsigned long long int uintmax_t;
#endif

#ifndef __PTRDIFF_T
# define __PTRDIFF_T
typedef unsigned long ptrdiff_t;
#endif

#ifndef __FILE_defined
# define _FILE_defined 1
struct _IO_FILE;
typedef struct _IO_FILE FILE;
#endif

#ifndef __SIZE_T
# define __SIZE_T
typedef unsigned int size_t;
#endif

#ifndef __ssize_t_defined
# define __ssize_t_defined
typedef signed int ssize_t;
#endif

#endif 
