From 7ef8a7379f7f7d09e71ccae2a0b688c3cd80423f Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Fri, 8 Feb 2019 18:42:39 -0500 Subject: merge sources into single tree --- src/stddef/NULL.c | 17 +++++++++++++++++ src/stddef/offsetof.c | 17 +++++++++++++++++ src/stddef/ptrdiff_t.c | 24 ++++++++++++++++++++++++ src/stddef/size_t.c | 24 ++++++++++++++++++++++++ src/stddef/wchar_t.c | 17 +++++++++++++++++ 5 files changed, 99 insertions(+) create mode 100644 src/stddef/NULL.c create mode 100644 src/stddef/offsetof.c create mode 100644 src/stddef/ptrdiff_t.c create mode 100644 src/stddef/size_t.c create mode 100644 src/stddef/wchar_t.c (limited to 'src/stddef') diff --git a/src/stddef/NULL.c b/src/stddef/NULL.c new file mode 100644 index 00000000..330b6b6e --- /dev/null +++ b/src/stddef/NULL.c @@ -0,0 +1,17 @@ +#include +#define NULL ((void*)0) + +/** null pointer **/ + +/*** +is an invalid pointer. It is used as a sentinel value in many standard +library functions. +***/ + +/* +UNDEFINED(Dereferencing THIS()) +IMPLEMENTATION(The value of THIS(), DEFINITION((void*)0)) +*/ +/* +STDC(1) +*/ diff --git a/src/stddef/offsetof.c b/src/stddef/offsetof.c new file mode 100644 index 00000000..c5bf733b --- /dev/null +++ b/src/stddef/offsetof.c @@ -0,0 +1,17 @@ +#include +#define offsetof(type, member) ((size_t)((void*)&(((type*)0)->##member))) + +/** get offset of a structure member **/ + +/*** +determines the offset, in bytes, of a specified field in a TYPE(struct). +***/ + +/* +PROTOTYPE(size_t offsetof(type, member);) +RETURN_SUCCESS(the offset of ARGUMENT(member) in ARGUMENT(type)) +UNDEFINED(ARGUMENT(member) is a bit-field) +*/ +/* +STDC(1) +*/ diff --git a/src/stddef/ptrdiff_t.c b/src/stddef/ptrdiff_t.c new file mode 100644 index 00000000..1bbd99c8 --- /dev/null +++ b/src/stddef/ptrdiff_t.c @@ -0,0 +1,24 @@ +#include +#ifdef __LLP64__ +# if ! defined __STDC_VERSION__ || __STDC_VERSION__ < 199909L +typedef __int64 ptrdiff_t; +# else +typedef long long int ptrdiff_t; +# endif +#else +typedef long int ptrdiff_t; +#endif + +/** pointer arithmetic type **/ + +/*** +is a signed integral type which results when subtracting one pointer +from another. +***/ + +/* +TYPEDEF(signed integer) +*/ +/* +STDC(1) +*/ diff --git a/src/stddef/size_t.c b/src/stddef/size_t.c new file mode 100644 index 00000000..5435d006 --- /dev/null +++ b/src/stddef/size_t.c @@ -0,0 +1,24 @@ +#include +#ifdef __LLP64__ +# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199909L +typedef unsigned __int64 size_t; +# else +typedef unsigned long long int size_t; +# endif +#else +typedef unsigned long int size_t; +#endif + +/** memory size type **/ + +/*** +is an unsigned integer type that is the result of using the +OPERATOR(sizeof) operator. +***/ + +/* +TYPEDEF(unsigned integer) +*/ +/* +STDC(1) +*/ diff --git a/src/stddef/wchar_t.c b/src/stddef/wchar_t.c new file mode 100644 index 00000000..dc4955fa --- /dev/null +++ b/src/stddef/wchar_t.c @@ -0,0 +1,17 @@ +#include +typedef int wchar_t; + +/** wide character type **/ + +/*** +is an integer type used to represent wide characters. Using a THIS(), +every character in the current locale can be represented by a single variable. +The null character will always have the value LITERAL(0). +***/ + +/* +TYPEDEF(integer) +*/ +/* +STDC(1) +*/ -- cgit v1.2.1