1*b89261baSDavid van Moolenbroek /* 2*b89261baSDavid van Moolenbroek * Copyright (c) 1984 through 2008, William LeFebvre 3*b89261baSDavid van Moolenbroek * All rights reserved. 4*b89261baSDavid van Moolenbroek * 5*b89261baSDavid van Moolenbroek * Redistribution and use in source and binary forms, with or without 6*b89261baSDavid van Moolenbroek * modification, are permitted provided that the following conditions are met: 7*b89261baSDavid van Moolenbroek * 8*b89261baSDavid van Moolenbroek * * Redistributions of source code must retain the above copyright 9*b89261baSDavid van Moolenbroek * notice, this list of conditions and the following disclaimer. 10*b89261baSDavid van Moolenbroek * 11*b89261baSDavid van Moolenbroek * * Redistributions in binary form must reproduce the above 12*b89261baSDavid van Moolenbroek * copyright notice, this list of conditions and the following disclaimer 13*b89261baSDavid van Moolenbroek * in the documentation and/or other materials provided with the 14*b89261baSDavid van Moolenbroek * distribution. 15*b89261baSDavid van Moolenbroek * 16*b89261baSDavid van Moolenbroek * * Neither the name of William LeFebvre nor the names of other 17*b89261baSDavid van Moolenbroek * contributors may be used to endorse or promote products derived from 18*b89261baSDavid van Moolenbroek * this software without specific prior written permission. 19*b89261baSDavid van Moolenbroek * 20*b89261baSDavid van Moolenbroek * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21*b89261baSDavid van Moolenbroek * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22*b89261baSDavid van Moolenbroek * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23*b89261baSDavid van Moolenbroek * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24*b89261baSDavid van Moolenbroek * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25*b89261baSDavid van Moolenbroek * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26*b89261baSDavid van Moolenbroek * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27*b89261baSDavid van Moolenbroek * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28*b89261baSDavid van Moolenbroek * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29*b89261baSDavid van Moolenbroek * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30*b89261baSDavid van Moolenbroek * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31*b89261baSDavid van Moolenbroek */ 32*b89261baSDavid van Moolenbroek 33*b89261baSDavid van Moolenbroek /* 34*b89261baSDavid van Moolenbroek * Top users/processes display for Unix 35*b89261baSDavid van Moolenbroek */ 36*b89261baSDavid van Moolenbroek 37*b89261baSDavid van Moolenbroek /* prototypes for functions found in utils.c */ 38*b89261baSDavid van Moolenbroek 39*b89261baSDavid van Moolenbroek #ifndef _UTILS_H 40*b89261baSDavid van Moolenbroek #define _UTILS_H 41*b89261baSDavid van Moolenbroek 42*b89261baSDavid van Moolenbroek int atoiwi(char *); 43*b89261baSDavid van Moolenbroek char *itoa(int); 44*b89261baSDavid van Moolenbroek char *itoa_w(int, int); 45*b89261baSDavid van Moolenbroek char *itoa7(int); 46*b89261baSDavid van Moolenbroek int digits(int); 47*b89261baSDavid van Moolenbroek char *printable(char *); 48*b89261baSDavid van Moolenbroek char *strcpyend(char *, const char *); 49*b89261baSDavid van Moolenbroek char *homogenize(const char *); 50*b89261baSDavid van Moolenbroek int string_index(const char *, const char **); 51*b89261baSDavid van Moolenbroek char **argparse(char *, int *); 52*b89261baSDavid van Moolenbroek long percentages(int, int *, long *, long *, long *); 53*b89261baSDavid van Moolenbroek const char *errmsg(int); 54*b89261baSDavid van Moolenbroek char *format_percent(double); 55*b89261baSDavid van Moolenbroek char *format_time(long); 56*b89261baSDavid van Moolenbroek char *format_k(long); 57*b89261baSDavid van Moolenbroek char *string_list(const char **); 58*b89261baSDavid van Moolenbroek void time_get(struct timeval *); 59*b89261baSDavid van Moolenbroek void time_mark(struct timeval *); 60*b89261baSDavid van Moolenbroek void double2tv(struct timeval *, double); 61*b89261baSDavid van Moolenbroek unsigned int time_elapsed(void); 62*b89261baSDavid van Moolenbroek unsigned int diff_per_second(unsigned int, unsigned int); 63*b89261baSDavid van Moolenbroek void debug_set(int); 64*b89261baSDavid van Moolenbroek #ifdef DEBUG 65*b89261baSDavid van Moolenbroek #define dprintf xdprintf 66*b89261baSDavid van Moolenbroek void xdprintf(char *fmt, ...); 67*b89261baSDavid van Moolenbroek #else 68*b89261baSDavid van Moolenbroek #ifdef HAVE_C99_VARIADIC_MACROS 69*b89261baSDavid van Moolenbroek #define dprintf(...) 70*b89261baSDavid van Moolenbroek #else 71*b89261baSDavid van Moolenbroek #ifdef HAVE_GNU_VARIADIC_MACROS 72*b89261baSDavid van Moolenbroek #define dprintf(x...) 73*b89261baSDavid van Moolenbroek #else 74*b89261baSDavid van Moolenbroek #define dprintf if (0) 75*b89261baSDavid van Moolenbroek #endif 76*b89261baSDavid van Moolenbroek #endif 77*b89261baSDavid van Moolenbroek #endif 78*b89261baSDavid van Moolenbroek 79*b89261baSDavid van Moolenbroek #endif 80