Changes in libcfa/src/stdlib.hfa [aabb846:856fe3e]
- File:
-
- 1 edited
-
libcfa/src/stdlib.hfa (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/stdlib.hfa
raabb846 r856fe3e 9 9 // Author : Peter A. Buhr 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 // Last Modified By : Andrew Beach12 // Last Modified On : Tue Jun 2 16:47:00202013 // Update Count : 4 5111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed May 13 17:23:51 2020 13 // Update Count : 435 14 14 // 15 15 … … 20 20 21 21 #include <stdlib.h> // *alloc, strto*, ato* 22 #include <heap.hfa>23 22 24 23 // Reduce includes by explicitly defining these routines. 25 24 extern "C" { 26 void * memalign( size_t alignment, size_t size ); // malloc.h 27 void * pvalloc( size_t size ); // malloc.h 25 void * aalloc( size_t dim, size_t elemSize ); // CFA heap 26 void * resize( void * oaddr, size_t size ); // CFA heap 27 void * memalign( size_t align, size_t size ); // malloc.h 28 void * amemalign( size_t align, size_t dim, size_t elemSize ); // CFA heap 29 void * cmemalign( size_t align, size_t noOfElems, size_t elemSize ); // CFA heap 30 size_t malloc_size( void * addr ); // CFA heap 31 size_t malloc_usable_size( void * ptr ); // malloc.h 28 32 void * memset( void * dest, int fill, size_t size ); // string.h 29 33 void * memcpy( void * dest, const void * src, size_t size ); // string.h 30 34 } // extern "C" 35 36 void * resize( void * oaddr, size_t nalign, size_t size ); // CFA heap 37 void * realloc( void * oaddr, size_t nalign, size_t size ); // CFA heap 31 38 32 39 //--------------------------------------- … … 84 91 return posix_memalign( (void **)ptr, align, sizeof(T) ); // C posix_memalign 85 92 } // posix_memalign 86 87 T * valloc( void ) {88 return (T *)valloc( sizeof(T) ); // C valloc89 } // valloc90 91 T * pvalloc( void ) {92 return (T *)pvalloc( sizeof(T) ); // C pvalloc93 } // pvalloc94 93 } // distribution 95 94 … … 229 228 // Cforall allocation/deallocation and constructor/destructor, non-array types 230 229 forall( dtype T | sized(T), ttype Params | { void ?{}( T &, Params ); } ) T * new( Params p ); 231 forall( dtype T | { void ^?{}( T & ); } ) void delete( T * ptr );232 forall( dtype T, ttype Params | { void ^?{}( T & ); void delete( Params ); } ) void delete( T * ptr, Params rest );230 forall( dtype T | sized(T) | { void ^?{}( T & ); } ) void delete( T * ptr ); 231 forall( dtype T, ttype Params | sized(T) | { void ^?{}( T & ); void delete( Params ); } ) void delete( T * ptr, Params rest ); 233 232 234 233 // Cforall allocation/deallocation and constructor/destructor, array types … … 301 300 extern "C" { // override C version 302 301 void srandom( unsigned int seed ); 303 long int random( void ); // GENERATES POSITIVE AND NEGATIVE VALUES 304 // For positive values, use unsigned int, e.g., unsigned int r = random() % 100U; 302 long int random( void ); 305 303 } // extern "C" 306 304 … … 309 307 long int random( long int u ) { if ( u < 0 ) return random( u, 0 ); else return random( 0, u ); } // [0,u) 310 308 unsigned long int random( void ) { return lrand48(); } 309 unsigned long int random( unsigned long int l, unsigned long int u ) { if ( u < l ) [u, l] = [l, u]; return lrand48() % (u - l) + l; } // [l,u) 311 310 unsigned long int random( unsigned long int u ) { return lrand48() % u; } // [0,u) 312 unsigned long int random( unsigned long int l, unsigned long int u ) { if ( u < l ) [u, l] = [l, u]; return lrand48() % (u - l) + l; } // [l,u)313 311 314 312 char random( void ) { return (unsigned long int)random(); }
Note:
See TracChangeset
for help on using the changeset viewer.