1*40d01547SDavid du Colombier #include "l.h" 2*40d01547SDavid du Colombier #include <sys/types.h> 3*40d01547SDavid du Colombier #include <sys/stat.h> 4*40d01547SDavid du Colombier #include <sys/times.h> 5*40d01547SDavid du Colombier #undef getwd 6*40d01547SDavid du Colombier #include <unistd.h> /* For sysconf() and _SC_CLK_TCK */ 7*40d01547SDavid du Colombier 8*40d01547SDavid du Colombier void* mysbrk(usize size)9*40d01547SDavid du Colombiermysbrk(usize size) 10*40d01547SDavid du Colombier { 11*40d01547SDavid du Colombier return (void*)sbrk(size); 12*40d01547SDavid du Colombier } 13*40d01547SDavid du Colombier 14*40d01547SDavid du Colombier double cputime(void)15*40d01547SDavid du Colombiercputime(void) 16*40d01547SDavid du Colombier { 17*40d01547SDavid du Colombier 18*40d01547SDavid du Colombier struct tms tmbuf; 19*40d01547SDavid du Colombier double ret_val; 20*40d01547SDavid du Colombier 21*40d01547SDavid du Colombier /* 22*40d01547SDavid du Colombier * times() only fails if &tmbuf is invalid. 23*40d01547SDavid du Colombier */ 24*40d01547SDavid du Colombier (void)times(&tmbuf); 25*40d01547SDavid du Colombier /* 26*40d01547SDavid du Colombier * Return the total time (in system clock ticks) 27*40d01547SDavid du Colombier * spent in user code and system 28*40d01547SDavid du Colombier * calls by both the calling process and its children. 29*40d01547SDavid du Colombier */ 30*40d01547SDavid du Colombier ret_val = (double)(tmbuf.tms_utime + tmbuf.tms_stime + 31*40d01547SDavid du Colombier tmbuf.tms_cutime + tmbuf.tms_cstime); 32*40d01547SDavid du Colombier /* 33*40d01547SDavid du Colombier * Convert to seconds. 34*40d01547SDavid du Colombier */ 35*40d01547SDavid du Colombier ret_val *= sysconf(_SC_CLK_TCK); 36*40d01547SDavid du Colombier return ret_val; 37*40d01547SDavid du Colombier 38*40d01547SDavid du Colombier } 39*40d01547SDavid du Colombier 40*40d01547SDavid du Colombier int fileexists(char * name)41*40d01547SDavid du Colombierfileexists(char *name) 42*40d01547SDavid du Colombier { 43*40d01547SDavid du Colombier struct stat sb; 44*40d01547SDavid du Colombier 45*40d01547SDavid du Colombier return stat(name, &sb) >= 0; 46*40d01547SDavid du Colombier } 47