1
0
Fork 0
mirror of https://gitlab.com/sortix/sortix.git synced 2023-02-13 20:55:38 -05:00

Refactor datatype declarations.

This commit is contained in:
Jonas 'Sortie' Termansen 2013-01-16 01:45:51 +01:00
parent ce66539ff7
commit fc8d64013d
16 changed files with 533 additions and 108 deletions

View file

@ -1,80 +0,0 @@
#ifndef _INTN_T_DECL
#define _INTN_T_DECL
/* Define basic signed types. */
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
/* Define basic unsigned types. */
typedef __uint8_t uint8_t;
typedef __uint16_t uint16_t;
typedef __uint32_t uint32_t;
typedef __uint64_t uint64_t;
/* The maximum width integers available on this platform. */
typedef __intmax_t intmax_t;
typedef __uintmax_t uintmax_t;
/* Define an integer able to hold the size of the largest continious memory */
/* region and define pointer safe integer types. */
@include(size_t.h)
@include(ssize_t.h)
typedef __intptr_t intptr_t;
typedef __uintptr_t uintptr_t;
typedef __ptrdiff_t ptrdiff_t;
#define INT8_MIN __INT8_MIN
#define INT16_MIN __INT16_MIN
#define INT32_MIN __INT32_MIN
#define INT64_MIN __INT64_MIN
#define INT8_MAX __INT8_MAX
#define INT16_MAX __INT16_MAX
#define INT32_MAX __INT32_MAX
#define INT64_MAX __INT64_MAX
#define UINT8_MAX __UINT8_MAX
#define UINT16_MAX __UINT16_MAX
#define UINT32_MAX __UINT32_MAX
#define UINT64_MAX __UINT64_MAX
#define INTMAX_MIN __INTMAX_MIN
#define INTMAX_MAX __INTMAX_MAX
#define UINTMAX_MAX __UINTMAX_MAX
#define CHAR_BIT __CHAR_BIT
#define SCHAR_MIN __SCHAR_MIN
#define SCHAR_MAX __SCHAR_MAX
#define UCHAR_MAX __UCHAR_MAX
#define CHAR_MIN __CHAR_MIN
#define CHAR_MAX __CHAR_MAX
#define WCHAR_MIN __WCHAR_MIN
#define WCHAR_MAX __WCHAR_MAX
#define SHRT_MIN __SHRT_MIN
#define SHRT_MAX __SHRT_MAX
#define USHRT_MAX __USHRT_MAX
#define WORD_BIT __WORD_BIT
#define INT_MIN __INT_MIN
#define INT_MAX __INT_MAX
#define UINT_MAX __UINT_MAX
#define LONG_BIT __LONG_BIT
#define LONG_MIN __LONG_MIN
#define LONG_MAX __LONG_MAX
#define ULONG_MAX __ULONG_MAX
#define LONG_MIN __LONG_MIN
#define LLONG_MAX __LLONG_MAX
#define ULLONG_MAX __ULLONG_MAX
#define SSIZE_MIN __SSIZE_MIN
#define SSIZE_MAX __SSIZE_MAX
#define SIZE_MAX __SIZE_MAX
#define INTPTR_MIN __INTPTR_MIN
#define INTPTR_MAX __INTPTR_MAX
#define UINTPTR_MAX __UINTPTR_MAX
#endif

View file

@ -1,4 +1,7 @@
#ifndef _LOCALE_T_DECL #ifndef _LOCALE_T_DECL
#define _LOCALT_T_DECL #define _LOCALT_T_DECL
/* TODO: figure out what this does and typedef it properly. This is just a
temporary assignment. */
typedef int __locale_t;
typedef __locale_t locale_t; typedef __locale_t locale_t;
#endif #endif

View file

@ -1,4 +1,7 @@
#ifndef _WCTRANS_T_DECL #ifndef _WCTRANS_T_DECL
#define _WCTRANS_T_DECL #define _WCTRANS_T_DECL
/* TODO: figure out what this does and typedef it properly. This is just a
temporary assignment. */
typedef unsigned int __wctrans_t;
typedef __wctrans_t wctrans_t; typedef __wctrans_t wctrans_t;
#endif #endif

View file

@ -1,4 +1,5 @@
#ifndef _WINT_T_DECL #ifndef _WINT_T_DECL
#define _WINT_T_DECL #define _WINT_T_DECL
typedef int __wint_t;
typedef __wint_t wint_t; typedef __wint_t wint_t;
#endif #endif

250
libc/include/__/stdint.h Normal file
View file

@ -0,0 +1,250 @@
/*******************************************************************************
Copyright(C) Jonas 'Sortie' Termansen 2011, 2013.
This file is part of the Sortix C Library.
The Sortix C Library is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
The Sortix C Library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the Sortix C Library. If not, see <http://www.gnu.org/licenses/>.
__/stdint.h
Integer types.
*******************************************************************************/
#ifndef INCLUDE____STDINT_H
#define INCLUDE____STDINT_H
#define _LIBC_HACK_FEATURE_NO_DECLARATIONS
#include <features.h>
#include <__/wordsize.h>
__BEGIN_DECLS
/* TODO: Make the compiler provide all this information using __ prefix. */
/* TODO: Use __XINTXX_TYPE__ constants when switching to gcc 4.7.x or newer. */
/* Signed constants. */
#define __INT8_C(c) c
#define __INT16_C(c) c
#define __INT32_C(c) c
#if __WORDSIZE == 64
#define __INT64_C(c) c ## L
#else
#define __INT64_C(c) c ## LL
#endif
/* Unsigned constants. */
#define __UINT8_C(c) c
#define __UINT16_C(c) c
#define __UINT32_C(c) c ## U
#if __WORDSIZE == 64
#define __UINT64_C(c) c ## UL
#else
#define __UINT64_C(c) c ## ULL
#endif
/* Maxmimal constants. */
#if __WORDSIZE == 64
#define __INTMAX_C(c) c ## L
#define __UINTMAX_C(c) c ## UL
#else
#define __INTMAX_C(c) c ## LL
#define __UINTMAX_C(c) c ## ULL
#endif
/* Define basic signed types. */
typedef signed char __int8_t;
typedef short int __int16_t;
typedef int __int32_t;
#if __WORDSIZE == 64
typedef long int __int64_t;
#else
typedef long long int __int64_t;
#endif
#define __INT8_MIN (-128)
#define __INT16_MIN (-32767-1)
#define __INT32_MIN (-2147483647-1)
#define __INT64_MIN (-__INT64_C(9223372036854775807)-1)
#define __INT8_MAX (127)
#define __INT16_MAX (32767)
#define __INT32_MAX (2147483647)
#define __INT64_MAX (__INT64_C(9223372036854775807))
/* Define basic unsigned types. */
typedef unsigned char __uint8_t;
typedef unsigned short int __uint16_t;
typedef unsigned int __uint32_t;
#if __WORDSIZE == 64
typedef unsigned long int __uint64_t;
#else
typedef unsigned long long int __uint64_t;
#endif
#define __UINT8_MAX (255)
#define __UINT16_MAX (65535)
#define __UINT32_MAX (4294967295U)
#define __UINT64_MAX (__UINT64_C(18446744073709551615))
/* Define small signed types. */
typedef signed char __int_least8_t;
typedef short int __int_least16_t;
typedef int __int_least32_t;
#if __WORDSIZE == 64
typedef long int __int_least64_t;
#else
typedef long long int __int_least64_t;
#endif
#define __INT_LEAST8_MIN (-128)
#define __INT_LEAST16_MIN (-32767-1)
#define __INT_LEAST32_MIN (-2147483647-1)
#define __INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1)
#define __INT_LEAST8_MAX (127)
#define __INT_LEAST16_MAX (32767)
#define __INT_LEAST32_MAX (2147483647)
#define __INT_LEAST64_MAX (__INT64_C(9223372036854775807))
/* Define small unsigned types. */
typedef unsigned char __uint_least8_t;
typedef unsigned short int __uint_least16_t;
typedef unsigned int __uint_least32_t;
#if __WORDSIZE == 64
typedef unsigned long int __uint_least64_t;
#else
typedef unsigned long long int __uint_least64_t;
#endif
#define __UINT_LEAST8_MAX (255)
#define __UINT_LEAST16_MAX (65535)
#define __UINT_LEAST32_MAX (4294967295U)
#define __UINT_LEAST64_MAX (__UINT64_C(18446744073709551615))
/* Define fast signed types. */
typedef signed char __int_fast8_t;
#if __WORDSIZE == 64
typedef long int __int_fast16_t;
typedef long int __int_fast32_t;
typedef long int __int_fast64_t;
#else
typedef int __int_fast16_t;
typedef int __int_fast32_t;
typedef long long int __int_fast64_t;
#endif
#define __INT_FAST8_MIN (-128)
#if __WORDSIZE == 64
#define __INT_FAST16_MIN (-9223372036854775807L-1)
#define __INT_FAST32_MIN (-9223372036854775807L-1)
#else
#define __INT_FAST16_MIN (-2147483647-1)
#define __INT_FAST32_MIN (-2147483647-1)
#endif
#define __INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1)
#define __INT_FAST8_MAX (127)
#if __WORDSIZE == 64
#define __INT_FAST16_MAX (9223372036854775807L)
#define __INT_FAST32_MAX (9223372036854775807L)
#else
#define __INT_FAST16_MAX (2147483647)
#define __INT_FAST32_MAX (2147483647)
#endif
#define __INT_FAST64_MAX (__INT64_C(9223372036854775807))
/* Define fast unsigned types. */
typedef unsigned char __uint_fast8_t;
#if __WORDSIZE == 64
typedef unsigned long int __uint_fast16_t;
typedef unsigned long int __uint_fast32_t;
typedef unsigned long int __uint_fast64_t;
#else
typedef unsigned int __uint_fast16_t;
typedef unsigned int __uint_fast32_t;
typedef unsigned long long int __uint_fast64_t;
#endif
#define __UINT_FAST8_MAX (255)
#if __WORDSIZE == 64
#define __UINT_FAST16_MAX (18446744073709551615UL)
#define __UINT_FAST32_MAX (18446744073709551615UL)
#else
#define __UINT_FAST16_MAX (4294967295U)
#define __UINT_FAST32_MAX (4294967295U)
#endif
#define __UINT_FAST64_MAX (__UINT64_C(18446744073709551615))
/* Define pointer-safe types. */
#if __WORDSIZE == 64
typedef long int __intptr_t;
typedef unsigned long int __uintptr_t;
#else
typedef int __intptr_t;
typedef unsigned int __uintptr_t;
#endif
#if __WORDSIZE == 64
#define __INTPTR_MIN (-9223372036854775807L-1)
#define __INTPTR_MAX (9223372036854775807L)
#define __UINTPTR_MAX (18446744073709551615UL)
#else
#define __INTPTR_MIN (-2147483647-1)
#define __INTPTR_MAX (2147483647)
#define __UINTPTR_MAX (4294967295U)
#endif
/* Define largest integer types. */
#if __WORDSIZE == 64
typedef long int __intmax_t;
typedef unsigned long int __uintmax_t;
#else
typedef long long int __intmax_t;
typedef long long unsigned int __uintmax_t;
#endif
#define __INTMAX_MIN (-__INT64_C(9223372036854775807)-1)
#define __INTMAX_MAX (__INT64_C(9223372036854775807))
#define __UINTMAX_MAX (__UINT64_C(18446744073709551615))
/* TODO: Should these come from a <__stddef.h>? */
#if __WORDSIZE == 64
#define __PTRDIFF_MIN (-9223372036854775807L-1)
#define __PTRDIFF_MAX (9223372036854775807L)
#else
#define __PTRDIFF_MIN (-2147483647-1)
#define __PTRDIFF_MAX (2147483647)
#endif
/* Note: The wchar_t related constants comes from another header. */
/* TODO: Should these come from a <__signal.h>? */
#define __SIG_ATOMIC_MIN (-2147483647-1)
#define __SIG_ATOMIC_MAX (2147483647)
/* TODO: Should these come from a <__stddef.h>? */
#if __WORDSIZE == 64
#define __SIZE_MAX (18446744073709551615UL)
#define __SSIZE_MIN (-9223372036854775807L-1)
#define __SSIZE_MAX (9223372036854775807L)
#else
#define __SIZE_MAX (4294967295U)
#define __SSIZE_MIN (-2147483647-1)
#define __SSIZE_MAX (2147483647)
#endif
__END_DECLS
#endif

View file

@ -75,7 +75,13 @@
/* Don't provide things from standard headers that is not implemented. */ /* Don't provide things from standard headers that is not implemented. */
/*#define __SORTIX_SHOW_UNIMPLEMENTED*/ /*#define __SORTIX_SHOW_UNIMPLEMENTED*/
#include <sortix/bits.h> #if !defined(_LIBC_HACK_FEATURE_NO_DECLARATIONS)
#include <sortix/bits.h>
#include <sys/__/types.h>
#endif
#undef _LIBC_HACK_FEATURE_NO_DECLARATIONS
#endif #endif

View file

@ -1,6 +1,6 @@
/******************************************************************************* /*******************************************************************************
Copyright(C) Jonas 'Sortie' Termansen 2011. Copyright(C) Jonas 'Sortie' Termansen 2011, 2013.
This file is part of the Sortix C Library. This file is part of the Sortix C Library.
@ -22,16 +22,140 @@
*******************************************************************************/ *******************************************************************************/
/* TODO: POSIX-1.2008 compliance is only partial */
#ifndef _STDINT_H #ifndef _STDINT_H
#define _STDINT_H 1 #define _STDINT_H 1
#include <features.h> #include <features.h>
#include <__/stdint.h>
__BEGIN_DECLS __BEGIN_DECLS
@include(intn_t.h) /* Only define these constant macros in C++ if requested. */
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) || \
defined(LIBC_LIBRARY) || defined(SORTIX_KERNEL) /* TODO: HACK! */
#define INT8_C(c) __INT8_C(c)
#define INT16_C(c) __INT16_C(c)
#define INT32_C(c) __INT32_C(c)
#define INT64_C(c) __INT64_C(c)
#define UINT8_C(c) __UINT8_C(c)
#define UINT16_C(c) __UINT16_C(c)
#define UINT32_C(c) __UINT32_C(c)
#define UINT64_C(c) __UINT64_C(c)
#define INTMAX_C(c) __INTMAX_C(c)
#define UINTMAX_C(c) __UINTMAX_C(c)
#endif
/* Only define these limit macros in C++ if requested. */
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) || \
defined(LIBC_LIBRARY) || defined(SORTIX_KERNEL) /* TODO: HACK! */
#define INT8_MIN __INT8_MIN
#define INT16_MIN __INT16_MIN
#define INT32_MIN __INT32_MIN
#define INT64_MIN __INT64_MIN
#define INT8_MAX __INT8_MAX
#define INT16_MAX __INT16_MAX
#define INT32_MAX __INT32_MAX
#define INT64_MAX __INT64_MAX
#define UINT8_MAX __UINT8_MAX
#define UINT16_MAX __UINT16_MAX
#define UINT32_MAX __UINT32_MAX
#define UINT64_MAX __UINT64_MAX
#define INT_LEAST8_MIN __INT_LEAST8_MIN
#define INT_LEAST16_MIN __INT_LEAST16_MIN
#define INT_LEAST32_MIN __INT_LEAST32_MIN
#define INT_LEAST64_MIN __INT_LEAST64_MIN
#define INT_LEAST8_MAX __INT_LEAST8_MAX
#define INT_LEAST16_MAX __INT_LEAST16_MAX
#define INT_LEAST32_MAX __INT_LEAST32_MAX
#define INT_LEAST64_MAX __INT_LEAST64_MAX
#define UINT_LEAST8_MAX __UINT_LEAST8_MAX
#define UINT_LEAST16_MAX __UINT_LEAST16_MAX
#define UINT_LEAST32_MAX __UINT_LEAST32_MAX
#define UINT_LEAST64_MAX __UINT_LEAST64_MAX
#define INT_FAST8_MIN __INT_FAST8_MIN
#define INT_FAST16_MIN __INT_FAST16_MIN
#define INT_FAST32_MIN __INT_FAST32_MIN
#define INT_FAST64_MIN __INT_FAST64_MIN
#define INT_FAST8_MAX __INT_FAST8_MAX
#define INT_FAST16_MAX __INT_FAST16_MAX
#define INT_FAST32_MAX __INT_FAST32_MAX
#define INT_FAST64_MAX __INT_FAST64_MAX
#define UINT_FAST8_MAX __UINT_FAST8_MAX
#define UINT_FAST16_MAX __UINT_FAST16_MAX
#define UINT_FAST32_MAX __UINT_FAST32_MAX
#define UINT_FAST64_MAX __UINT_FAST64_MAX
#define INTPTR_MIN __INTPTR_MIN
#define INTPTR_MAX __INTPTR_MAX
#define UINTPTR_MAX __UINTPTR_MAX
#define INTMAX_MIN __INTMAX_MIN
#define INTMAX_MAX __INTMAX_MAX
#define UINTMAX_MAX __UINTMAX_MAX
#define PTRDIFF_MIN __PTRDIFF_MIN
#define PTRDIFF_MAX __PTRDIFF_MAX
#define SIG_ATOMIC_MIN __SIG_ATOMIC_MIN
#define SIG_ATOMIC_MAX __SIG_ATOMIC_MAX
#define SIZE_MAX __SIZE_MAX
/* TODO: Should SSIZE_MIN and SSIZE_MAX be declared here? */
#define SSIZE_MIN __SSIZE_MIN
#define SSIZE_MAX __SSIZE_MAX
/* TODO: wchar_t related stuff is missing here. */
#endif
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
typedef __uint8_t uint8_t;
typedef __uint16_t uint16_t;
typedef __uint32_t uint32_t;
typedef __uint64_t uint64_t;
typedef __int_least8_t int_least8_t;
typedef __int_least16_t int_least16_t;
typedef __int_least32_t int_least32_t;
typedef __int_least64_t int_least64_t;
typedef __uint_least8_t uint_least8_t;
typedef __uint_least16_t uint_least16_t;
typedef __uint_least32_t uint_least32_t;
typedef __uint_least64_t uint_least64_t;
typedef __int_fast8_t int_fast8_t;
typedef __int_fast16_t int_fast16_t;
typedef __int_fast32_t int_fast32_t;
typedef __int_fast64_t int_fast64_t;
typedef __uint_fast8_t uint_fast8_t;
typedef __uint_fast16_t uint_fast16_t;
typedef __uint_fast32_t uint_fast32_t;
typedef __uint_fast64_t uint_fast64_t;
typedef __intptr_t intptr_t;
typedef __uintptr_t uintptr_t;
typedef __intmax_t intmax_t;
typedef __uintmax_t uintmax_t;
__END_DECLS __END_DECLS

View file

@ -0,0 +1,31 @@
/*******************************************************************************
Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013.
This file is part of the Sortix C Library.
The Sortix C Library is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
The Sortix C Library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the Sortix C Library. If not, see <http://www.gnu.org/licenses/>.
sys/__/types.h
Data types.
*******************************************************************************/
#ifndef INCLUDE_SYS____TYPES_H
#define INCLUDE_SYS____TYPES_H
#include <features.h>
#include <sortix/__/types.h>
#endif

View file

@ -26,6 +26,7 @@
#define INCLUDE_SYS_DISPLAY_H #define INCLUDE_SYS_DISPLAY_H
#include <features.h> #include <features.h>
#include <stddef.h>
#include <stdint.h> #include <stdint.h>
#include <sortix/display.h> #include <sortix/display.h>

View file

@ -28,6 +28,7 @@
#define INCLUDE_SYS_TYPES_H #define INCLUDE_SYS_TYPES_H
#include <features.h> #include <features.h>
#include <sys/__/types.h>
__BEGIN_DECLS __BEGIN_DECLS
@ -46,7 +47,6 @@ __BEGIN_DECLS
@include(nlink_t.h) @include(nlink_t.h)
@include(off_t.h) @include(off_t.h)
@include(pid_t.h) @include(pid_t.h)
/* TODO: pthread*_t */
@include(size_t.h) @include(size_t.h)
@include(ssize_t.h) @include(ssize_t.h)
@include(suseconds_t.h) @include(suseconds_t.h)
@ -56,6 +56,10 @@ __BEGIN_DECLS
@include(uid_t.h) @include(uid_t.h)
@include(useconds_t.h) @include(useconds_t.h)
#if !defined(SORTIX_KERNEL)
/* TODO: pthread*_t */
#endif
__END_DECLS __END_DECLS
#endif #endif

View file

@ -29,9 +29,10 @@
#define _UNISTD_H 1 #define _UNISTD_H 1
#include <features.h> #include <features.h>
#include <__/stdint.h>
#if defined(_SORTIX_SOURCE) #if defined(_SORTIX_SOURCE)
#include <stdint.h>
#include <stdarg.h> #include <stdarg.h>
#include <stdint.h>
#include <sortix/fork.h> #include <sortix/fork.h>
#endif #endif
#include <sortix/seek.h> #include <sortix/seek.h>
@ -77,9 +78,6 @@ __BEGIN_DECLS
@include(off_t.h) @include(off_t.h)
@include(pid_t.h) @include(pid_t.h)
@include(useconds_t.h) @include(useconds_t.h)
#if defined(_SORTIX_SOURCE) || defined(_SORTIX_ALWAYS_SBRK)
@include(intn_t.h)
#endif
#if defined(_WANT_ENVIRON) #if defined(_WANT_ENVIRON)
extern char** environ; extern char** environ;
@ -195,12 +193,12 @@ size_t readall(int fd, void* buf, size_t count);
size_t readleast(int fd, void* buf, size_t least, size_t max); size_t readleast(int fd, void* buf, size_t least, size_t max);
pid_t sfork(int flags); pid_t sfork(int flags);
pid_t tfork(int flags, tforkregs_t* regs); pid_t tfork(int flags, tforkregs_t* regs);
int uptime(uintmax_t* usecssinceboot); int uptime(__uintmax_t* usecssinceboot);
size_t writeall(int fd, const void* buf, size_t count); size_t writeall(int fd, const void* buf, size_t count);
size_t writeleast(int fd, const void* buf, size_t least, size_t max); size_t writeleast(int fd, const void* buf, size_t least, size_t max);
#endif #endif
#if defined(_SORTIX_SOURCE) || defined(_SORTIX_ALWAYS_SBRK) #if defined(_SORTIX_SOURCE) || defined(_SORTIX_ALWAYS_SBRK)
void* sbrk(intptr_t increment); void* sbrk(__intptr_t increment);
#endif #endif
__END_DECLS __END_DECLS

View file

@ -30,6 +30,7 @@
#include <sortix/fcntl.h> #include <sortix/fcntl.h>
#include <assert.h> #include <assert.h>
#include <errno.h> #include <errno.h>
#include <limits.h>
#include <string.h> #include <string.h>
#include "process.h" #include "process.h"

View file

@ -0,0 +1,67 @@
/*******************************************************************************
Copyright(C) Jonas 'Sortie' Termansen 2013.
This file is part of Sortix.
Sortix is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.
Sortix is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public License along with
Sortix. If not, see <http://www.gnu.org/licenses/>.
sortix/__/types.h
Data types.
*******************************************************************************/
#ifndef INCLUDE_SORTIX____TYPES_H
#define INCLUDE_SORTIX____TYPES_H
#include <features.h>
#include <__/stdint.h>
#include <__/wordsize.h>
__BEGIN_DECLS
typedef int __id_t;
typedef int __gid_t;
typedef int __uid_t;
typedef int __pid_t;
typedef unsigned int __mode_t;
typedef __intmax_t __off_t;
#define __OFF_MIN __INTMAX_MIN
#define __OFF_MAX __INTMAX_MAX
typedef unsigned int __useconds_t;
typedef __intmax_t __blksize_t;
typedef __intmax_t __blkcnt_t;
typedef unsigned int __nlink_t;
typedef __uintmax_t __ino_t;
typedef __uintptr_t __dev_t;
typedef __intmax_t __clock_t;
typedef int __clockid_t;
typedef long __time_t; /* TODO: Increase on 32-bit systems! */
typedef long __suseconds_t;
#if __WORDSIZE == 64
typedef long int __ssize_t;
#else
typedef int __ssize_t;
#endif
#if defined(SORTIX_KERNEL) || defined(LIBC_LIBRARY)
#define OFF_MIN __OFF_MIN
#endif
#if defined(SORTIX_KERNEL) || defined(LIBC_LIBRARY)
#define OFF_MAX __OFF_MAX
#endif
__END_DECLS
#endif

View file

@ -23,24 +23,9 @@
*******************************************************************************/ *******************************************************************************/
#if !defined(PLATFORM_X86) && !defined(PLATFORM_X64) #if !defined(PLATFORM_X86) && !defined(PLATFORM_X64)
#if defined(__LP64__) #if defined(__x86_64__)
#define PLATFORM_X64 #define PLATFORM_X64
#else #else
#define PLATFORM_X86 #define PLATFORM_X86
#endif #endif
#endif #endif
#if defined(PLATFORM_X86)
#include "x86/bits.h"
#elif defined(PLATFORM_X64)
#include "x64/bits.h"
#else
#warning Unsupported platform
#endif
#if (defined(SORTIX_KERNEL) || defined(LIBC_LIBRARY)) && !defined(OFF_MIN)
#define OFF_MIN __OFF_MIN
#endif
#if (defined(SORTIX_KERNEL) || defined(LIBC_LIBRARY)) && !defined(OFF_MAX)
#define OFF_MAX __OFF_MAX
#endif

View file

@ -0,0 +1,30 @@
/*******************************************************************************
Copyright(C) Jonas 'Sortie' Termansen 2013.
This file is part of Sortix.
Sortix is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.
Sortix is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public License along with
Sortix. If not, see <http://www.gnu.org/licenses/>.
sortix/types.h
Data types.
*******************************************************************************/
#ifndef INCLUDE_SORTIX_TYPES_H
#define INCLUDE_SORTIX_TYPES_H
#include <sys/types.h>
#endif

View file

@ -27,6 +27,7 @@
#include <string.h> #include <string.h>
#include <errno.h> #include <errno.h>
#include <error.h> #include <error.h>
#include <limits.h>
#if !defined(VERSIONSTR) #if !defined(VERSIONSTR)
#define VERSIONSTR "unknown version" #define VERSIONSTR "unknown version"