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