diff options
| author | Jakob Kaivo <jkk@ung.org> | 2019-02-08 18:42:39 -0500 |
|---|---|---|
| committer | Jakob Kaivo <jkk@ung.org> | 2019-02-08 18:42:39 -0500 |
| commit | 7ef8a7379f7f7d09e71ccae2a0b688c3cd80423f (patch) | |
| tree | 092ab0aed1769117fd7b28b8592f6f96b0e0d5af /src/stddef | |
| parent | 6acf19370e8adff79cd83b257d3f04aeaf2a59dd (diff) | |
merge sources into single tree
Diffstat (limited to 'src/stddef')
| -rw-r--r-- | src/stddef/NULL.c | 17 | ||||
| -rw-r--r-- | src/stddef/offsetof.c | 17 | ||||
| -rw-r--r-- | src/stddef/ptrdiff_t.c | 24 | ||||
| -rw-r--r-- | src/stddef/size_t.c | 24 | ||||
| -rw-r--r-- | src/stddef/wchar_t.c | 17 |
5 files changed, 99 insertions, 0 deletions
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 <stddef.h> +#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 <stddef.h> +#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(<var>type</var>, <var>member</var>);) +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 <stddef.h> +#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 <stddef.h> +#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 <stddef.h> +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) +*/ |
