Mercurial > projects > ldc
diff druntime/import/core/stdc/stdlib.d @ 1458:e0b2d67cfe7c
Added druntime (this should be removed once it works).
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Tue, 02 Jun 2009 17:43:06 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/druntime/import/core/stdc/stdlib.d Tue Jun 02 17:43:06 2009 +0100 @@ -0,0 +1,93 @@ +/** + * D header file for C99. + * + * Copyright: Copyright Sean Kelly 2005 - 2009. + * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>. + * Authors: Sean Kelly + * Standards: ISO/IEC 9899:1999 (E) + * + * Copyright Sean Kelly 2005 - 2009. + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +module core.stdc.stdlib; + +private import core.stdc.config; +public import core.stdc.stddef; // for size_t, wchar_t + +extern (C): + +struct div_t +{ + int quot, + rem; +} + +struct ldiv_t +{ + int quot, + rem; +} + +struct lldiv_t +{ + long quot, + rem; +} + +enum EXIT_SUCCESS = 0; +enum EXIT_FAILURE = 1; +enum RAND_MAX = 32767; +enum MB_CUR_MAX = 1; + +double atof(in char* nptr); +int atoi(in char* nptr); +c_long atol(in char* nptr); +long atoll(in char* nptr); + +double strtod(in char* nptr, char** endptr); +float strtof(in char* nptr, char** endptr); +real strtold(in char* nptr, char** endptr); +c_long strtol(in char* nptr, char** endptr, int base); +long strtoll(in char* nptr, char** endptr, int base); +c_ulong strtoul(in char* nptr, char** endptr, int base); +ulong strtoull(in char* nptr, char** endptr, int base); + +int rand(); +void srand(uint seed); + +void* malloc(size_t size); +void* calloc(size_t nmemb, size_t size); +void* realloc(void* ptr, size_t size); +void free(void* ptr); + +void abort(); +void exit(int status); +int atexit(void function() func); +void _Exit(int status); + +char* getenv(in char* name); +int system(in char* string); + +void* bsearch(in void* key, in void* base, size_t nmemb, size_t size, int function(in void*, in void*) compar); +void qsort(void* base, size_t nmemb, size_t size, int function(in void*, in void*) compar); + +int abs(int j); +c_long labs(c_long j); +long llabs(long j); + +div_t div(int numer, int denom); +ldiv_t ldiv(c_long numer, c_long denom); +lldiv_t lldiv(long numer, long denom); + +int mblen(in char* s, size_t n); +int mbtowc(wchar_t* pwc, in char* s, size_t n); +int wctomb(char*s, wchar_t wc); +size_t mbstowcs(wchar_t* pwcs, in char* s, size_t n); +size_t wcstombs(char* s, in wchar_t* pwcs, size_t n); + +version( DigitalMars ) +{ + void* alloca(size_t size); // non-standard +}