source: src/libcfa/stdlib @ 6b6597c

aaron-thesisarm-ehcleanup-dtorsctordeferred_resndemanglergc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerresolv-newstringwith_gc
Last change on this file since 6b6597c was 6b6597c, checked in by Peter A. Buhr <pabuhr@…>, 6 years ago

user manual updates, extend I/O test, fix memset in stdlib, workaround for fstream

  • Property mode set to 100644
File size: 4.6 KB
Line 
1//
2// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
3//
4// The contents of this file are covered under the licence agreement in the
5// file "LICENCE" distributed with Cforall.
6//
7// stdlib --
8//
9// Author           : Peter A. Buhr
10// Created On       : Thu Jan 28 17:12:35 2016
11// Last Modified By : Peter A. Buhr
12// Last Modified On : Tue Apr 19 21:21:53 2016
13// Update Count     : 93
14//
15
16//---------------------------------------
17
18extern "C" {
19#include <stddef.h>                                                                             // size_t
20} // extern "C"
21
22//---------------------------------------
23
24extern "C" {
25#ifndef EXIT_FAILURE
26#define EXIT_FAILURE    1                                                               // failing exit status
27#define EXIT_SUCCESS    0                                                               // successful exit status
28#endif // ! EXIT_FAILURE
29void exit( int rc );
30void abort( void );
31} // extern "C"
32
33//---------------------------------------
34
35extern "C" {
36void * malloc( size_t );                                                                // use default C routine for void *
37} // extern "C"
38forall( otype T ) T * malloc( void );
39forall( otype T ) T * malloc( char fill );
40forall( otype T ) T * malloc( T * ptr, size_t size );
41forall( otype T ) T * malloc( T * ptr, size_t size, unsigned char fill );
42extern "C" {
43void * calloc( size_t nmemb, size_t size );                             // use default C routine for void *
44} // extern "C"
45forall( otype T ) T * calloc( size_t nmemb );
46extern "C" {
47void * realloc( void * ptr, size_t size );                              // use default C routine for void *
48} // extern "C"
49forall( otype T ) T * realloc( T * ptr, size_t size );
50forall( otype T ) T * realloc( T * ptr, size_t size, unsigned char fill );
51
52forall( otype T ) T * aligned_alloc( size_t alignment );
53forall( otype T ) T * memalign( size_t alignment );
54forall( otype T ) int posix_memalign( T ** ptr, size_t alignment );
55
56extern "C" {
57void * memset( void * ptr, int fill, size_t size );
58void free( void * ptr );
59} // extern "C"
60
61//---------------------------------------
62
63int ato( const char * ptr );
64unsigned int ato( const char * ptr );
65long int ato( const char * ptr );
66unsigned long int ato( const char * ptr );
67long long int ato( const char * ptr );
68unsigned long long int ato( const char * ptr );
69float ato( const char * ptr );
70double ato( const char * ptr );
71long double ato( const char * ptr );
72float _Complex ato( const char * ptr );
73double _Complex ato( const char * ptr );
74long double _Complex ato( const char * ptr );
75
76int strto( const char * sptr, char ** eptr, int base );
77unsigned int strto( const char * sptr, char ** eptr, int base );
78long int strto( const char * sptr, char ** eptr, int base );
79unsigned long int strto( const char * sptr, char ** eptr, int base );
80long long int strto( const char * sptr, char ** eptr, int base );
81unsigned long long int strto( const char * sptr, char ** eptr, int base );
82float strto( const char * sptr, char ** eptr );
83double strto( const char * sptr, char ** eptr );
84long double strto( const char * sptr, char ** eptr );
85float _Complex strto( const char * sptr, char ** eptr );
86double _Complex strto( const char * sptr, char ** eptr );
87long double _Complex strto( const char * sptr, char ** eptr );
88
89//---------------------------------------
90
91forall( otype T | { int ?<?( T, T ); } )
92T * bsearch( const T key, const T * arr, size_t dimension );
93
94forall( otype T | { int ?<?( T, T ); } )
95void qsort( const T * arr, size_t dimension );
96
97//---------------------------------------
98
99forall( otype T | { T ?/?( T, T ); T ?%?( T, T ); } )
100[ T, T ] div( T t1, T t2 );
101
102//---------------------------------------
103
104char abs( char );
105extern "C" {
106int abs( int );                                                                                 // use default C routine for int
107} // extern "C"
108long int abs( long int );
109long long int abs( long long int );
110float abs( float );
111double abs( double );
112long double abs( long double );
113float _Complex abs( float _Complex );
114double _Complex abs( double _Complex );
115long double _Complex abs( long double _Complex );
116
117//---------------------------------------
118
119float floor( float );
120extern "C" {
121double floor( double );                                                                 // use C routine for double
122} // extern "C"
123long double floor( long double );
124
125float ceil( float );
126extern "C" {
127double ceil( double );                                                                  // use C routine for double
128} // extern "C"
129long double ceil( long double );
130
131//---------------------------------------
132
133void rand48seed( long int s );
134char rand48();
135int rand48();
136unsigned int rand48();
137long int rand48();
138unsigned long int rand48();
139float rand48();
140double rand48();
141float _Complex rand48();
142double _Complex rand48();
143long double _Complex rand48();
144
145//---------------------------------------
146
147forall( otype T | { int ?<?( T, T ); } )
148T min( const T t1, const T t2 );
149
150forall( otype T | { int ?>?( T, T ); } )
151T max( const T t1, const T t2 );
152
153forall( otype T )
154void swap( T * t1, T * t2 );
155
156// Local Variables: //
157// mode: c //
158// tab-width: 4 //
159// End: //
Note: See TracBrowser for help on using the repository browser.